Поиск, регламентные задания
8.2. Регламентные задания
В информационных базах 1С:Предприятие 8 существует немало регулярно повторяемых последовательностей действий, которые вполне можно было бы доверить автоматике. Например, это обмен данными с другими информационными системами, резервное копирование информации, обновление поисковых индексов и так далее. Для реализации выполнения подобных работ в 1С:Предприятие предусмотрен механизм регламентных заданий. Реализуем периодически выполняющееся задание. Для этого создадим новый объект конфигурации РегламентноеЗадание (ветвь Общие ) с именем ПроверкаРегламентныхЗаданий, рис. 8.8.
Регламентное задание нуждается в настройке. В частности, нам нужно задать метод, который оно будет выполнять (свойство Метод ) и настроить расписание (Ссылка Расписание ).
В качестве метода, который будет выполняться регламентным заданием, может выступать процедура неглобального общего модуля, которая может быть исполнена на сервере. Для задания такой процедуры создадим новый общий модуль ( Общие модули в ветви Общие ), назовем его МодульДляЗадания, установим флажок Сервер, рис. 8.9.
Откроем код модуля и введем туда следующий код:
Процедура ПроверкаЗадания() Экспорт Сообщить("Задание работает, сейчас "+ТекущаяДата()); КонецПроцедуры
Теперь укажем данную процедуру в настройках задания, в поле Имя метода, и перейдем к редактированию расписания. Расписание запуска настраивается с помощью нескольких вкладок окна Расписание, итоговый результат отображается в нижней части окна. На вкладке Общее установим в поле Повторять каждые - значение 1 дн., рис. 8.10.
На вкладке Дневное мы можем настроить дневное расписание выполнения задания. Установим параметр Повторять через в значение 30 сек, то есть задание будет повторяться каждые 30 секунд после запуска, рис. 8.11.
На вкладке Недельное можно задать расписание запуска по неделям, на вкладке Месячное - расписание по месяцам.
Ограничимся в настройках расписания вышеприведенными изменениями, закроем окно нажатием на кнопку ОК.
Мы работаем с информационной базой в файловом режиме. Если бы мы работали с серверным вариантом, то, для того, чтобы задание было запущено и выполнялось в соответствии с расписанием, нам нужно было бы лишь установить флажок Предопределенное в форме свойств задания. Для файлового варианта нам понадобятся некоторые дополнительные усилия (флажок Предопределенное мы так же установим).
А именно, создадим обработку с именем ОбработкаЗаданий. Создадим форму обработки без командных панелей, удалим кнопку Выполнить, добавим на нее надпись "Обработка заданий. Закрыть для завершения", а в модуль обработки добавим следующий код:
Процедура ОбработкаЗаданий() ВыполнитьОбработкуЗаданий(); КонецПроцедуры ПодключитьОбработчикОжидания("ОбработкаЗаданий", 5);
В этом коде мы подключаем обработчик ожидания формы. Он использует указанную при его вызове процедуру в качестве обработчика ожидания. Эта процедура будет вызываться каждый раз по истечению указанного при подключении интервала времени (в секундах).
В процедуре ОбработкаЗаданий() содержится вызов ВыполнитьОбработкуЗаданий() - этот метод глобального контекста может применяться только в файловом варианте работы базы (в серверном за обработку заданий отвечают другие механизмы), он вызывает обработку текущих заданий, которые выполняются в соответствии со своими расписаниями. На рис. 8.12 вы можете видеть окно программы с открытой формой обработки, ответственной за выполнение заданий. Как можно судить из окна служебных сообщений, наше регламентное задание выполняется каждые 30 секунд.
Для того, чтобы обеспечить обработку регламентных заданий в файловом варианте работы, нужно держать открытым отдельный сеанс, в котором выполняется обработчик ожидания подобный описанному выше.
8.3. Выводы
В этой лекции мы познакомились с организацией полнотекстового поиска в базе данных 1С:Предприятие 8. Механизмы полнотекстового поиска по умолчанию присутствуют в системе. Все, что нужно сделать для их практического использования - создать пользовательский интерфейс и позаботиться о периодическом обновлении поискового индекса. Так же здесь мы рассмотрели особенности работы с регламентными заданиями, которые позволяют автоматизировать часто выполняемые действия, исполняя их в соответствии с расписанием.