Содержание:
1. Варианты подключения Обработчика ожидания
2. Ограничение механизма обработчика ожидания
Обработчик ожидания (формы клиентского приложения) – это процедура модуля формы с директивой компиляции &НаКлиенте, вызываемая с указанным интервалом механизмом платформы 1С, который включается с помощью метода формы клиентского приложения ПодключитьОбработчикОжидания.
Вызов метода доступен в тонком клиенте, веб-клиенте, толстом клиенте.
Параметры:
<ИмяПроцедуры> (обязательный) Тип: Строка. Имя процедуры, подключаемой в качестве обработчика ожидания.
<Интервал> (обязательный) Тип: Число. Интервал времени в секундах с точностью до 1/10 секунды, через который будет осуществляться вызов процедуры (положительное число). Если указано значение меньше 1, то значение третьего параметра должно быть равно Истина.
<Однократно> (необязательный) Тип: Булево. Признак однократного выполнения обработчика ожидания.
Истина – указанный обработчик ожидания будет выполнен один раз. Значение по умолчанию: Ложь.
1. Варианты подключения Обработчика ожидания
Варианты подключения:
Вариант 1. Требуется однократный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте, отложенный на определенное время.
Вариант 2. Требуется регулярный вызов выполнения какой-либо процедуры с директивой компиляции &НаКлиенте с указанной периодичностью.
2. Ограничение механизма обработчика ожидания
Ограничение механизма обработчика ожидания. Сразу оговоримся, что вызов и выполнение процедуры, подключенной через метод ПодключитьОбработчикОжидания, как однократный, так и регулярный, механизмом платформы 1С происходит только в период ожидания системы. Поэтому использовать данный механизм платформы 1С как таймер, либо другой аналогичный инструмент, выполняющий функцию точного отсчета времени при выполнении кода, не следует.
Как было сказано выше, в качестве обработчика ожидания (формы клиентского приложения) можно подключить процедуру модуля формы с директивой компиляции &НаКлиенте.
Но если требуется выполнение с помощью данного механизма платформы 1С какой-либо процедуры с директивой компиляции, отличной от директивы &НаКлиенте (например, процедуры модуля данной формы или любой доступной экспортной процедуры конфигурации), то можно просто осуществлять вызов такой процедуры из процедуры-обработчика ожидания. Это справедливо и для случая, когда требуется осуществлять через данный механизм платформы 1С вызов какой-либо функции модуля данной формы или любой доступной экспортной функции конфигурации.
Вызов процедуры-обработчика ожидания прекращается с закрытием формы, в которой был подключен обработчик ожидания, либо при вызове метода формы клиентского приложения ОтключитьОбработчикОжидания, в который в качестве параметра передается имя подключенной ранее процедуры-обработчика ожидания.
Подключение процедуры-обработчика ожидания для однократного выполнения через указанный интервал:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Подключение процедуры-обработчика ожидания для однократного выполнения через интервал в 30 секунд.
ПодключитьОбработчикОжидания("НашаПроцедураОбработчикОждидания", 30, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НашаПроцедураОбработчикОждидания()
// Вызов процедуры с директивой компиляции, отличной от директивы &НаКлиенте,
// через процедуру-обработчик ожидания.
ПроцедураВызываемаяИзОбработчикаОжиданияВыполняемаяНаСервере();
// Вызов функции, через процедуру-обработчик ожидания.
ФункцияВызываемаяИзОбработчикаОжидания();
КонецПроцедуры
Подключение процедуры-обработчика ожидания для регулярного выполнения через указанный интервал:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Подключение процедуры-обработчика ожидания для регулярного выполнения через интервал в 30 секунд.
ПодключитьОбработчикОжидания("НашаПроцедураОбработчикОждидания", 30);
КонецПроцедуры
&НаКлиенте
Процедура НашаПроцедураОбработчикОждидания()
// Вызов процедуры с директивой компиляции, отличной от директивы &НаКлиенте,
// через процедуру-обработчик ожидания.
ПроцедураВызываемаяИзОбработчикаОжиданияВыполняемаяНаСервере();
// Вызов функции, через процедуру-обработчик ожидания.
ФункцияВызываемаяИзОбработчикаОжидания();
КонецПроцедуры
Специалист компании «Кодерлайн»
Аскер Жансуев.