powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / 1с 8. Как программно определить какое окно активно?
21 сообщений из 21, страница 1 из 1
1с 8. Как программно определить какое окно активно?
    #37178741
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите.
Как программно определить какое окно активно в данный момент. 1С запущено в режиме "обычное приложение".
Спасибо.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178749
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прямого метода нет, а зачем?
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178775
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно в форме обработать внешнее событие, но только в том случае если форма активна.
Использовал метод формы:
ВводДоступен()
Описание: Определяет, возможен ли ввод данных в форму. Может быть использован для того, чтобы определить, активизирована ли текущая форма.

Но он всегда возвращает Ложь и обработка внешнего события не происходит.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178779
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем? Чтобы выгнать пользователя?
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178790
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При записи документа посылается оповещение. В форме происходит обновление дерева документов. Если форма на заднем плане (неактивна) то хотелось бы лишний раз не обновлять дерево, всё равно пользователь не видит.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178808
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрец,
не посылайте широковещательное оповещение, явно вызовите метод нужной формы (передав ее как параметр, например)
или: проверяйте у формы что ЭтотОбъект=ОповещающийОбъектПриЗаписи
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178821
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf,

Если чесно не понял.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178845
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрец,
документ записывается из формы? у формы есть событие ПослеЗаписи как пример, вот там и вызывайте своё обновление
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178862
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне для всех форм документов добавлять процедуру?
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178888
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрец,
а вы где вызываете оповещение и как вызываете? через Оповестить ?
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178906
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Подписка на событие "ПриЗаписи", для всех видов документов. Оповестить().
В нужных формах (два вида) подхватываю это оповещение.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178921
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮрецДа.
Подписка на событие "ПриЗаписи", для всех видов документов. Оповестить().
В нужных формах (два вида) подхватываю это оповещение.
А теперь внимание: если запись произойдет на сервере то как у вас сработает Оповестить()?
у него как бы доступность:
Тонкий клиент, веб-клиент, толстый клиент
и вам трудно это написать для двух видов? я то реально думал для всех
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178962
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп.
1. Оповестить() я повесил на работу на клиенте (конечно).
2. У меня есть две формы в которых выводится дерево документов. В это дерево документов попадают практически все виды документов (считай что "Структура подчиненности" из типовой торговли). При создании нового документа из этих форм, произойдет автоматическое обновление дерева и новые документы в него попадут. Т.е. пользователю удобно. Он из структуры подчиненности документов может создать на основании и сразу видит как документ попадает в структуру.
Но часто пользователи создают документы в обычном режиме, и при этом происходит обновление структуры подчиненности, даже если это окно находится на втором плане (не активно). Вот это я и хотел отработать. Т.е. если документ создается из дерева документов то нужно обновить это дерево, а если документ создается обычно, то дерево не обновлять.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178968
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оповестить для этого и предназначено.

Момент второй - поставьте автообновление 30 секунд - и все само в том окне обновится
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178982
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как же на клиенте, если подписка может работать и на сервере?
вот если будет вызов сервера, то у вас загнется оно
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37178994
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сМомент второй - поставьте автообновление 30 секунд - и все само в том окне обновится
Ну для пользователя будет шоком. Он создает из дерева документов новій документ (вводит на основании), проводит этот документ, а он не попадает в дерево. Половина пользователей подумает, что документ не записался и снова его создадут.

У меня щас механизм работает отлажено, т.е. всё отрабатывается и показывается пользователю как нужно. Я просто хотел ускорить работу, оптимизировать. не обновлять дерево документов если но не активно. Банально не могу в 1С определить активно окно щас или нет на метод ВводДоступен() всегда идет Ложь, даже если окно активно (по крайней мере визуально в 1С).
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37179153
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafвот если будет вызов сервера, то у вас загнется оно
Да я принудительно указал исполнять на клиенте #ЕслиКлиент. Всё отлично пашет в серверном варианте.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37179248
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 Пользователей нужно обучать. Я бы им кнопку обновить(ф5) добавил бы.

2. ВводДоступен - чтобы работал - вешаешь его в обработчик ожидания в этой форме - тогда он нормально бует работать.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37179296
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с1 Пользователей нужно обучать. Я бы им кнопку обновить(ф5) добавил бы.
Эта кнопочка там есть с самого начала. Но опять же не удобно пользователям при записи документа еще и кнопочку нажать. В журнале документов такое же делать не нужно.
Программист 1с2. ВводДоступен - чтобы работал - вешаешь его в обработчик ожидания в этой форме - тогда он нормально бует работать.
Вот как раз в этой форме и в обработчике ОбработкаОповещения() он всегда возвращает Ложь. Даже если документ проводится из этого активного окна.
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37180020
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2.... хм - уверены? Код бросите?
...
Рейтинг: 0 / 0
1с 8. Как программно определить какое окно активно?
    #37180483
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с2.... хм - уверены? Код бросите?
Извиняюсь.
1. В нете нашел что ВводДоступен() при отладке всегда выдает Ложь. В коде проверил - работает.
2. У меня есть форма дерева документов из неё можно вводить документы на основании. Именно форма дерева документов и должна обновляться при создании документа (добавлять в дерево записанный документ). Когда я ввожу документ на основании и провожу его, то ВводДоступен() в форме дерева документов выдает Ложь так как активным еще является созданный документ. Т.е. форма дерева не является еще активной и этот метод и возвращает Ложь.

Оставил как есть. Вопрос снимается.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1с 8. Как программно определить какое окно активно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]