Загрузка...

5.07. Действие Таймер

При помощи Таймера можно запустить на выполнение некий набор действий маршрута, а сам таймер может сработать в заданное время. После срабатывания таймер может переместить документ на заданную точку маршрута и (или) записать свой идентификатор в какое-либо поле документа. Таким образом, действия, которые будут настроены для запуска в заданное время, можно разместить в отдельной точке маршрута, на которую будет выполнен переход, но можно обойтись и вообще без перемещения - записать идентификатор Таймера в любое поле, а затем, к примеру, через контекст Изменения (у поля, в которое будет записываться идентификатор Таймера, должен быть установлен атрибут "При изменении поля запустить контекст маршрута Изменение") зафиксировать (это нужно, если подписок на изменение полей более одной и нужно иметь возможность отличить ситуацию, когда изменится другое поле) идентификатор измененного поля (через действие Запись), сравнить этот идентификатор с тем полем, куда должен записаться идентификатор Таймера (действие Условие) и при положительном результате сравнения выполнить те действия, которые должны быть запущены по таймеру.

Для осуществления функциональных возможностей, описанных выше и не только, действие Таймер предоставляет в распоряжения администратора следующие параметры:

  • Действие над таймером: запуск таймера, остановка таймера, остановка всех таймеров документа. Первый вариант используется по умолчанию и позволяет установить Таймер, второй позволяет отключить ранее установленный Таймер по его идентификатору, а третий позволяет отключить вообще любые активные Таймеры в текущем документе вне зависимости от их идентификаторов.
  • Время срабатывания. Это время должно находиться в каком-либо поле документа, которое указывается в данном параметре. Время срабатывания можно определить, к примеру, через методы поля (например, у поля Время есть методы которые позволяют получить будущую дату).
  • Идентификатор таймера. Идентификатор следует устанавливать в двух случаях: когда может понадобиться возможность отмены запуска данного Таймера или при необходимости записи этого идентификатора в какое-нибудь поле документа для последующей обработки. Идентификатор таймера берется из поля документа, при выборе этого поля появляется параметр "Записать идентификатор таймера в поле"; это может быть любое значение (числовое, строковое и пр.).
  • Записать идентификатор таймера в поле. Параметр доступен только в том случае, если выбрано поле для идентификатора таймера. Запись идентификатора таймера в поле будет осуществлено в момент запуска Таймера. Через такую запись можно запустить набор действий в маршруте (скажем, через контекст Изменение), а можно просто использовать в качестве своеобразной отложенной записи (например, если документ останется на текущей точке маршрута более, чем на сутки, можно записать в некое поле сообщение о нарушении сроков выполнения). Если не указано поле для идентификатора, идентификатор сформируется автоматически.
  • Документ. Таймер можно быть запущен как для текущего документа, так и для любого документа по ссылке из какого-либо поля текущего документа (это поле должно содержать один или несколько идентификаторов документов, перечисленных через запятую; если идентификаторов несколько, будет запущено несколько Таймеров - по одному для каждого документа).
  • Перейти на точку. Таймер может выполнить перемещение документа на заданную точку маршрута. 

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

Действие Таймер может быть запущено из маршрута и кнопок документов и журналов. Для работы Таймер необходим работающий сервис Демон.