Опубликован: 14.07.2011 | Доступ: свободный | Студентов: 2617 / 458 | Оценка: 4.58 / 4.41 | Длительность: 03:18:00
Лекция 8:

Поиск, регламентные задания

8.2. Регламентные задания

В информационных базах 1С:Предприятие 8 существует немало регулярно повторяемых последовательностей действий, которые вполне можно было бы доверить автоматике. Например, это обмен данными с другими информационными системами, резервное копирование информации, обновление поисковых индексов и так далее. Для реализации выполнения подобных работ в 1С:Предприятие предусмотрен механизм регламентных заданий. Реализуем периодически выполняющееся задание. Для этого создадим новый объект конфигурации РегламентноеЗадание (ветвь Общие ) с именем ПроверкаРегламентныхЗаданий, рис. 8.8.

Новое регламентное задание

Рис. 8.8. Новое регламентное задание

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

В качестве метода, который будет выполняться регламентным заданием, может выступать процедура неглобального общего модуля, которая может быть исполнена на сервере. Для задания такой процедуры создадим новый общий модуль ( Общие модули в ветви Общие ), назовем его МодульДляЗадания, установим флажок Сервер, рис. 8.9.

Новый модуль для процедуры, реализующей регламентное задание

Рис. 8.9. Новый модуль для процедуры, реализующей регламентное задание

Откроем код модуля и введем туда следующий код:

Процедура ПроверкаЗадания() Экспорт
	Сообщить("Задание работает, сейчас "+ТекущаяДата());	
КонецПроцедуры

Теперь укажем данную процедуру в настройках задания, в поле Имя метода, и перейдем к редактированию расписания. Расписание запуска настраивается с помощью нескольких вкладок окна Расписание, итоговый результат отображается в нижней части окна. На вкладке Общее установим в поле Повторять каждые - значение 1 дн., рис. 8.10.

Окно настройки расписания, вкладка Общее

Рис. 8.10. Окно настройки расписания, вкладка Общее

На вкладке Дневное мы можем настроить дневное расписание выполнения задания. Установим параметр Повторять через в значение 30 сек, то есть задание будет повторяться каждые 30 секунд после запуска, рис. 8.11.

Окно настройки расписания, вкладка Дневное

Рис. 8.11. Окно настройки расписания, вкладка Дневное

На вкладке Недельное можно задать расписание запуска по неделям, на вкладке Месячное - расписание по месяцам.

Ограничимся в настройках расписания вышеприведенными изменениями, закроем окно нажатием на кнопку ОК.

Мы работаем с информационной базой в файловом режиме. Если бы мы работали с серверным вариантом, то, для того, чтобы задание было запущено и выполнялось в соответствии с расписанием, нам нужно было бы лишь установить флажок Предопределенное в форме свойств задания. Для файлового варианта нам понадобятся некоторые дополнительные усилия (флажок Предопределенное мы так же установим).

А именно, создадим обработку с именем ОбработкаЗаданий. Создадим форму обработки без командных панелей, удалим кнопку Выполнить, добавим на нее надпись "Обработка заданий. Закрыть для завершения", а в модуль обработки добавим следующий код:

Процедура ОбработкаЗаданий()
	ВыполнитьОбработкуЗаданий();
КонецПроцедуры
ПодключитьОбработчикОжидания("ОбработкаЗаданий", 5);

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

В процедуре ОбработкаЗаданий() содержится вызов ВыполнитьОбработкуЗаданий() - этот метод глобального контекста может применяться только в файловом варианте работы базы (в серверном за обработку заданий отвечают другие механизмы), он вызывает обработку текущих заданий, которые выполняются в соответствии со своими расписаниями. На рис. 8.12 вы можете видеть окно программы с открытой формой обработки, ответственной за выполнение заданий. Как можно судить из окна служебных сообщений, наше регламентное задание выполняется каждые 30 секунд.

Форма обработки, ответственной за вызов метода ОбработкаЗаданий()

Рис. 8.12. Форма обработки, ответственной за вызов метода ОбработкаЗаданий()

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

8.3. Выводы

В этой лекции мы познакомились с организацией полнотекстового поиска в базе данных 1С:Предприятие 8. Механизмы полнотекстового поиска по умолчанию присутствуют в системе. Все, что нужно сделать для их практического использования - создать пользовательский интерфейс и позаботиться о периодическом обновлении поискового индекса. Так же здесь мы рассмотрели особенности работы с регламентными заданиями, которые позволяют автоматизировать часто выполняемые действия, исполняя их в соответствии с расписанием.

Евгений Орлов
Евгений Орлов
Кундуз Сабаева
Кундуз Сабаева

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.НачислениеЗарплаты.МодульОбъекта(45)}: Деление на 0
        Движение.Результат= Движение.ИсходныеДанные*Факт[0].РабочийДень/План[0].РабочийДень;