Универсальное регламентное задание

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

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

Создадим регламентное задание «Выполнение обработки».

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

Назначим процедуру, которая будет срабатывать при запуске регламентного задания: МодульРегламентныхЗаданий.РегламентноеЗаданиеВыполнениеОбработки.

Сама процедура имеет вид:

Процедура РегламентноеЗаданиеВыполнениеОбработки(Ключ) Экспорт

       ПараметрыРегламентныхЗаданий.ВыполнитьОбработкуСПараметрами(Ключ);

КонецПроцедуры

 

Создаем справочник для регламентных заданий

Наше регламентное задание может порождать множество фоновых процессов – по одному на каждую обработку. У каждого задания в платформе 1С8 есть ключ. Но метод регламентного задания не знает ключ фонового задания, поэтому нужно использовать параметры фонового задания. В результате мы можем видеть фоновое задание в консоли заданий, но не можем вручную из этой консоли создать фоновое задание, т.к. задания с параметрами вручную не создаются.

Справочник «Параметры регламентных заданий»:

Реквизиты:

·         КодПередЗапуском – неограниченная строка – код на языке 1С, который нужно выполнить перед запуском.

·         Обработка из конфигурации – строка (100)  - идентификатор обработки из конфигурации

·         Обработка из справочника – строка (100)  - ссылка на элемент справочника «Внешние обработки», если такой имеется в конфигурации

·         Выполнять через приложение 1С – булево - будет создано отдельное приложение 1С и в нем будет запущено регламентное задание. Создано для 8.1, где не все методы приложения доступны на сервере, где работает регламентное задание.

·         КодЗапуска - – неограниченная строка – код на языке 1С, который будет выполняться при запуске регламентного задания.

Создадим форму элемента:

По нажатию на кнопку «Создать регл. задание» программно создается регламентное задание с ключом-кодом:

Процедура ОсновныеДействияФормыСоздатьРеглЗадание(Кнопка)

       Перем Задание;

      

       Ключ = СокрЛП(Код);

       Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание("ВыполнениеОбработки");

       Задание.Наименование = Ключ;

       Задание.Ключ = Ключ;

      

       Параметры = Новый Массив();

       Параметры.Добавить(Ключ);

       Задание.Параметры = Параметры;

       Задание.Записать();

КонецПроцедуры

 

Запуск регламентного задания

Каждое созданное нами регламентное задание имеет ключ:

Этот ключ соответствует коду справочника «Параметры регламентных заданий», по нему осуществляется поиск при старте задания. Если элемент справочника не найдено, задание не выполняется.

Далее, если задан код КодПередЗапуском то будет выполнен этот код. Далее, если переменная Выполнять примет значение ложь, то задание не будет выполнено. При анализе доступна переменная Параметры, где хранится ссылка на найденный элемент справочника «Параметры регламентных заданий».

В зависимости от выбранных значений реквизитов или запустится код на языке 1С, или запустится обработка из конфигурации, или обработка из типового справочника «Внешние обработки».

Для 1С81 предусмотрено выполнение в новом приложении – чтобы можно было использовать код, доступный только на клиенте, в том числе и использование внешних обработок. Для этого нужно установить галочку «Выполнять через приложение 1С». Иначе регламентное задание будет выполняться на сервере.

Рекомендую устанавливать пользователя в поле «Пользователь» у вновь созданного регламентного задания, чтобы задание выполнялось под определенными правами. Рекомендую такому пользователю давать полные права. У меня используется пользователь «robot».

Расписание регламентного задания создается по гиперссылке «Расписание» из формы регламентного задания. Можно использовать обработку «Консоль регламентных заданий».

Скачать