Back to top

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

Опубликовано e-1c@mail.ru - пт, 06/02/2017 - 12:27

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

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

  1. ПодключитьОбработчикОжидания
  2. ОтключитьОбработчикОжидания

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

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

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

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

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
          ПодключитьОбработчикОжидания(«ОбработатьОжидание», 60, Ложь);
КонецПроцедуры
 
&НаКлиенте
Процедура ОбработатьОжидание()
          ОбработатьОжиданиеНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ОбработатьОжиданиеНаСервере()
          Сообщить(«Не забудьте перепровести все документы за декабрь 2016 года»);
КонецПроцедуры

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