1С подключитьобработчикожидания управляемые формы

При работе форм иногда возникает необходимость выполнить длительное действие в ответ на какое-либо событие, полученное от пользователя (например: отображение остатков товаров на складах при позиционировании в списке справочника Товары). Однако, длительная операция, выполняемая в ответ на часто возникающее событие (например: на событие ПриАктивизацииСтроки списка), может серьезно осложнить работу с формой или даже сделать ее невозможной.

Решением данной проблемы может служить перенос выполнения длительной операции в явно вызываемое действие (например: перенос действия в обработчик события Выбор ). Это позволит избавиться от задержек, связанных со случайным инициированием события, однако, данное решение требует явного действия от пользователя, что может негативно сказаться на скорости работы с формой.

Альтернативным способом решения проблемы может служить отложенное выполнение длительного действия в обработчике ожидания.

Пример: обновление информации об остатках товаров на складах при позиционировании в списке справочника Товары.

В данном примере в обработчике события ПриАктивизацииСтроки производится подключение обработчика ожидания ОбработкаОжидания() , в котором собственно и производится сбор информации об остатках товаров. Подключение обработчика выполняется таким образом, чтобы действие выполнилось приблизительно через 0.5 секунды после вхождения системы в состояние ожидания. Подключенный обработчик ожидания будет вызван один раз, а затем отключен до следующей обработки события ПриАктивизацииСтроки – это достигается установкой в значение Истина третьего параметра метода ПодключитьОбработчикОжидания() .

Примечание:
В обработчике ожидания не следует выполнять действия, инициирующие событие, в котором выполняется подключения данного обработчика, в противном случае система войдет в состояние постоянной обработки ожидания.

Обработчик ожидания- это некоторый механизм, напоминающий собой фоновый процесс и выполняющийся только на стороне клиента. Основная задача — это запустить некий процесс, как однократно, так и через определенный промежуток времени. Обработчик ожидания выполняет свои действия в выделенном потоке, не мешая пользователю. Таким образом он прекрасно подходит для выполнения программного кода через определенный промежуток времени.

Читайте также:  Установка гитар риг 5

Для реализации нам необходимо использовать две процедуры:

ПодключитьОбработчикОжидания( , , ) – Подключает вызов указанной процедуры 1С через определённый интервал времени.

НаименованиеПроцедуры— Имя экспортной процедуры без параметров, которая должна располагаться на стороне клиента . (Строка)
Интервал — Интервал в секундах (точность до 0,1) через который будет осуществляться вызов процедуры. (Число)
Однократно — Однократное или многократное исполнение подключаемой процедуры. (Булево)

ОтключитьОбработчикОжидания( ) – Отключает вызов указанной процедуры 1С.

НаименованиеПроцедуры— имя отключаемой процедуры.

Как уже ранее сообщал, обработчик ожидания доступен только на клиенте. Его вызов будет продолжаться до тех пор, пока пользователь не закроет форму или не будет вызвана процедура ОтключитьОбработчикОжидания.

Пример. Допустим мы создали некую форму, которая сразу же после открытия будет напоминать нам, что необходимо перепровести документы за декабрь.

Повтор выполнения кода будет осуществляться каждые 60 секунд. Для прекращения пользователю необходимо закрыть форму, либо можно добавить кнопку и «повестить» на нее процедуру ОтключитьОбработчикОжидания.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Работа с приложением в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также:  Сумма первой и последней цифры числа паскаль

Нажмите одну из кнопок, чтобы поделиться:

Оцените статью
Добавить комментарий

Adblock detector