Каталог решений - Подсистема регулярных заданий

Подсистема регулярных заданий

Подсистема регулярных заданий

В наличии

Подсистема регулярных заданий предназначена для выполнения произвольных алгоритмов (задач) по заранее сформированным графикам с учетом производственного календаря.

Категория:

Описание

Назначение подсистемы

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

К минусам регламентных заданий можно отнести:

  • отсутствие возможности учитывать при настройке расписания выполнения производственный календарь. Допустим, в соответствии с логикой бизнес процесса, задача должна выполняться по определенным рабочим дням недели, с учетом праздников и нерабочих периодов. А в случае, если дата выполнения задачи выпадает на праздничный день, то необходимо перенести выполнение задачи на предыдущий рабочий день.
  • отсутствие возможности гибко управлять запуском выполнения задач на пользовательском уровне в режиме 1С:Предприятия. Например, бизнес пользователю требуется отменить выполнение задачи в определенный день. С помощью механизма настройки расписания регламентных заданий это будет сделать достаточно сложно.
  • высокая трудоемкость подключения к механизму регламентных заданий справочников, реализующих выполнение периодических задач. Особенно, если требуется не просто подключить справочник к регламентным заданиям, но о обеспечить сопутствующую "обвязку" — вывести журнал работы задачи, дату/время последнего запуска, дату/время последнего успешного запуска и т. д. (в качестве примера см. справочник РассылкиОтчетов из состава БСП) При этом все это придется повторить при настройке других аналогичных справочников.

Разработанная подсистема решает перечисленные выше проблемы при работе со штатным механизмом регламентных заданий.

Подсистема регулярных заданий (далее подсистема) предназначена для выполнения произвольных алгоритмов (задач) по заранее сформированным графикам с учетом производственного календаря. С помощью данной подсистемы возможно подключение различных справочников прикладного решения, предназначенных для выполнение некоторых периодических задач, к графикам  их выполнения.

Подсистема использует подсистему "Календарные графики" из состава БСП.

Описание работы с подсистемой

Рассмотрим настройку регулярных заданий на примере, входящего в состав подсистемы, справочника "Задачи регулярных заданий" (далее Задачи). Данный справочник содержит один реквизит — АлгоритмЗадачи, содержащий произвольный текст кода на встроенном языке. При запуске задачи осуществляется выполнение этого кода через метод Выполнить().

Внешний вид формы списка справочника, подключенного к подсистеме, показан следующем на скриншоте.

 

 

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

Кнопки командной панели:

  • "Выполнить задачу" запускается выполнение задачи в ручном режиме.
  • Создать на основании — Регулярное задание. Задача включается в состав регулярного задания.
  • "График работы" — открывается форма редактирования графика работы регулярного задания.

Для настройки выполнения задачи в соответствии с сформированным графиком, необходимо создать на основании элемента справочника объект "Регулярное задание" (пункт меню Создать на основании — Регулярное задание).

Внешний вид формы элемента справочника "Регулярные задания" показан на следующем скриншоте

 

 

Рассмотрим подробнее элементы управления формы

  • Наименование — указывается наименование регулярного задания
  • Активно — признак активности задания
  • Период заполнения графика — указывается период заполнения графика выполнения задания. Если период не указан, то заполнение графика будет выполнятся с текущей даты до даты, рассчитанной в соответствии с горизонтом планирования, либо, если горизонт планирования не указан до конца заполнения Производственного календаря
  • Производственный календарь — указывается ссылка на производственный календарь, данные которого будут учитываться при составлении графика выполнения задания
  • Способ заполнения графика — возможно 2 варианта "По неделям", "По месяцам".  В первом варианте указываются дни недели, в которые задание должно быть выполнено, во втором — дни месяца (например, каждое 25-е число месяца)
  • Шаблон заполнения — указываются дни (недели или месяца) и время, когда задание должно быть выполнено
  • Учитывать праздники — если установлено, то из состава дней, когда задание должно быть выполнено, будут исключаться дни выпадающие на праздники
  • Переносить дату выполнения на последний рабочий день — если установлено и дата запуска задания выпадает на не рабочий день, то запуск задания переносится на ближайший предшествующий рабочий день
  • Учитывать нерабочие периоды — если установлено, то из состава дней, когда задание должно быть выполнено, будут исключаться дни выпадающие на нерабочие периоды (Нерабочие периоды загружаются из классификатора, также есть возможность установить нерабочие периоды в ручную в регистре сведений "Периоды нерабочих дней производственного календаря")
  • Горизонт планирования — указывается период в месяцах, на который график должен быть заполнен вперед. График автоматически дозаполняется на указанный период регламентным заданием "Планировщик выполнения регулярных заданий".
  • Количество повторов — указывается количество повторов выполнения задания при аварийном завершении процесса выполнения задания
  • В табличной части справочника указываются задачи, которые должны быть выполнены регулярным заданием
  • Последовательное выполнение задач — если установлено, то задачи регламентного задания будут выполняться последовательно, иначе задачи выполняются параллельно (каждая задача выполняется в отдельном фоновом задании)

После заполнения параметров формирования графика выполнения задания можно перейти на страницу результатов заполнения графика по кнопке "Результат заполнения графика"

 

 

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

Предусмотрены следующие возможности по ручной корректировке графика выполнения заданий:

  • создание новой записи графика работы
  • отмена существующей записи графика
  • копирование записи графика (перемещение записи мышкой с нажатой клавишей Ctrl)
  • перемещение записи графика (перемещение записи мышкой)

По кнопке "Заполнить по шаблону" есть возможность отмены ручных корректировок графика.

Из формы элемента справочника Регулярных заданий можно перейти к просмотру записей графика работы

 

 

Каждая запись графика работы может находится в одном из следующих состояний (состояния отображаются в виде пиктограмм в форме списка графика)

  • Запланировано — запланировано выполнение задания
  • Просрочено — задание по каким-то причинам не было запущено на выполнение в запланированное время
  • Выполнено — задание выполнено
  • Отменено — выполнение запланированное задание отменено пользователем
  • Выполняется — задание выполняется в текущий момент
  • Выполнено с ошибкой — задание выполнено с ошибкой

Внешний вид формы списка справочника Регулярных заданий показан на следующем скриншоте

 

 

Из формы элемента справочника Задач есть возможность перейти к связанной с этим элементом информации

  • открыть форму списка справочника Регулярных заданий
  • открыть форму списка графиков работ связанных с задачей Регулярных заданий
  • открыть журнал работы
 
Состав подсистемы

Подсистема включает в себя следующие объекты метаданных:

 

Объект метаданныхКомментарий
Подсистема.РегулярныеЗаданияСама подсистема
ОбщийМодуль.РегулярныеЗаданияОсновной общий модуль подсистемы
ОбщийМодуль.РегулярныеЗаданияКлиентКлиентский общий модуль подсистемы
ОбщийМодуль.РегулярныеЗаданияОбщегоНазначенияВспомогательные процедуры общего назначения
Роль.ЧтениеРегулярныхЗаданийРоль для доступа на просмотр к объектам подсистемы
Роль.ДобавлениеИзменениеРегулярныхЗаданийРоль для доступа на редактирование объектов подсистемы
РегламентноеЗадание.КонтроллерВыполненияРегулярныхЗаданийОсновное регламентное задание, выполняющееся каждую минуту, и обеспечивающее запуск заданий по графикам и контроль их выполнения
РегламентноеЗадание.ПланировщикВыполненияРегулярныхЗаданийРегламентное задание, формирующее графики выполнения регулярных заданий в соответствии с настройками
ОпределяемыйТип.ЗадачиРегулярныхЗаданийОпределяемый тип, содержащий ссылки на справочники задач, подключенных к подсистеме
ОбщаяКоманда.РегулярныеЗаданияОткрытьФормуСпискаОбщая команда для открытия формы списка справочника Регулярных заданий из форм элементов справочников задач с установленным отбором по задаче
ОбщаяКоманда.РегулярныеЗаданияВводНаОснованииОбщая команда для ввода на основании элементов справочников задач регулярных заданий
ОбщаяКоманда.ВыполнитьЗадачуРегулярногоЗаданияОбщая команда для ручного запуска выполнения задач, подключенных к подсистеме
ОбщаяКоманда.ГрафикиРаботыРегулярныхЗаданийОткрытьФормуСпискаОбщая команда для открытия формы списка регистра "ГрафикиРаботыРегулярныхЗаданий" из форм элементов справочников задач с установленным отбором по задаче
ОбщаяФорма.ЗадачиРегулярныхЗаданийОбщая форма списков справочников задач
Справочник.РегулярныеЗаданияСправочник регулярных заданий
Справочник.ЗадачиРегулярныхЗаданийСправочник задач регулярных заданий
Перечисление.СпособыЗаполненияГрафиковРегулярныхЗаданий
  • ПоНеделям
  • ПоМесяцам
Перечисление.СостоянияРегулярныхЗаданий
  • Запланировано
  • Выполняется
  • Выполнено
  • ВыполненоСОшибкой
  • Отменено
  • Просрочено
Перечисление.ВидыСобытийЖурналаРаботыРегулярныхЗаданий
  • Запуск
  • Завершение
  • Информация
  • Ошибка
  • Предупреждение
РегистрСведений.ГрафикиРаботыРегулярныхЗаданийРегистр сведений, хранящий графики выполнения регулярных заданий
РегистрСведений.СостоянияВыполненияРегулярныхЗаданийРегистр сведений, хранящий информацию о состоянии выполнения регулярных заданий и задач
РегистрСведений.ЖурналРаботыРегулярныхЗаданийРегистр сведений, хранящий журнал работы регулярных заданий и задач
РегистрСведений.ЖурналРаботыРегулярныхЗаданийРегистр сведений, хранящий пользовательские настройки форм списков справочников задач, подключенных к подсистеме

 

Внедрение подсистемы в прикладное решение

Для подключения справочника, предназначенного для выполнения некой регулярной задачи (алгоритма), к подсистеме необходимо

  • определить в модуле менеджера справочника экспортную функцию ВыполнитьЗадачуРегулярногоЗадания(Задача, ДатаЗапуска = ""), реализующую алгоритм выполнения задачи. 
    Функция возвращает структуру с ключом БылиОшибки (= истина, если в процессе выполнения задачи возникли ошибки).
Функция ВыполнитьЗадачуРегулярногоЗадания(Задача, ДатаЗапуска = "") Экспорт
	
	РезультатВыполнения = Новый Структура("БылиОшибки", Ложь);
	//алгоритм выполнения задачи
	...
	РегулярныеЗадания.ЗаписьЖурналаРаботы(Задача, Перечисления.ВидыСобытийЖурналаРаботыРегулярныхЗаданий.Информация, "Текст сообщения", ДатаЗапуска);
	...
	Возврат РезультатВыполнения;
КонецФункции
  • включить в определяемый тип ЗадачиРегулярныхЗаданий ссылку на подключаемый к подсистеме справочник 
  • изменить тип измерения ЗаданиеЗадача регистра сведений СостоянияВыполненияРегулярныхЗаданий (добавить в список типов измерения ссылку на включаемый в подсистему справочник)
  • изменить тип измерения ЗаданиеЗадача регистра сведений ЖурналРаботыРегулярныхЗаданий (добавить в список типов измерения ссылку на включаемый в подсистему справочник)
  • добавить команду справочника ЗадачиРегулярныхЗаданийОткрытьФормуСписка (Группа — Панель навигации.Обычное)
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	//Вставить содержимое обработчика.
	ПараметрыФормы = Новый Структура("ТипЗадач, ЗаголовокФормы", <ИмяСправочника>, <ЗаголовокФормыСписка>);
	ОткрытьФорму("ОбщаяФорма.ЗадачиРегулярныхЗаданий", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, <ИмяСправочника>, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
КонецПроцедуры
  • вывести добавленную команду в командный интерфейс подсистемы, из которой будет открываться форма списка справочника
Дополнительная информация

Тестирование подсистемы проводилось на версии платформы 8.3.19.1229. При разработке использовалась Библиотека стандартных подсистем версии 3.1.7

Подсистема выкладывается в условно бесплатный доступ (все-таки "5 копеек" заплатить придется), так как автор разработки наивно полагает, что, если подсистема вызовет интерес у сообщества 1С, то участники сообщества примут активное участие в развитии данного функционала.

has been added to your cart:
Оформление заказа