gifts2017

Запуск внешних обработок по расписанию.

Опубликовал Max (fotov) в раздел Администрирование - Сервисные утилиты

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

Конфигурация. состоит из подключаемого обработчика ожидания, который раз в 5 минут проверяет регистр расписаний и по необходимости запускает обработки. Запуск происходит у любого пользователя, у которого проставлена соответствующая роль. Для того чтобы не городить огород с расписанием - механизм расписаний перенесён на саму обработку - обработка дложна возвращать дату следующего запуска.

Установка все действия производятся в режмие Конфигуратор:

  1. Сделать архивную копию базы
  2. Открыть конфигурацию. (Конфигурация - Открыть конфигурацию)
  3. Включить возможность изменения конфигурации. (Конфигурация - Поддержка - Настройка поддержки - Включить возможность изменения - Объект поставщика редактируется с сохранением поддержки)
  4. Объединение конфигураций. (Конфигурация - Сравнить, объединить с конфигурацией из файла.. - Снять флаг на ветке "Свойства" - Выполнить)
  5. Добавление кода для запуска. На дереве конфигурации нажать правой клавишей мыши на верхнем узле и выбрать "Модуль обычного приложения" или "Модуль управляемого приложения" в зависимости от конфигурации. Найти процедуру "ПриНачалеРаботыСистемы" и добавить в конец строчку 

    ПодключитьОбработчикОжидания("фтПроверкаРегламентногоЗапускаВнешнихОбработок", 300);

  6. Обновление конфигурации. (Конфигурация - Обновить конфигурацию базы данных)
После этого механизм регламентных заданий готов к работе

Использование.
 
В режмие 1С Предприятие добавляется регистр "Расписание запусков внешних обработок". Для того чтобы добавить обработку - достаточно добавить новую строку в регистр. В поле "Обработка" указывается ссылка на элемент справочника "Внешние обработки".
 
Требования к внешним обработкам.
 

Внешняя обработка должна содержать фунцию

Функция ЗапускРегламентногоЗадания(ДатаПредыдущегоЗапуска) Экспорт

При корректной отработке фунция должна возвращать дату следующего запуска

В случае возникновения ошибки необходимо вызывать исключение, которое запишется в текст ошибки

Скачать файлы

Наименование Файл Версия Размер
Конфигурация регламентированного запуска обработок 40
.cf 14,28Kb
26.07.13
40
.cf 14,28Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Александр Лыткин (TrinitronOTV) 22.07.13 10:38
а разные задания, которые подключаются к вашей обработке, можно будет задавать разный период их выполнения или только все задания выполняются с параметром 300, как указано в строке:
ПодключитьОбработчикОжидания("фтПроверкаРегламентногоЗапускаВнешнихОбработок", 300);
2. Ловыгин Антон (wunderland) 22.07.13 10:46
Вообще, штука нужная.
Предыдущий вопрос - поддерживаю.
3. Max (fotov) 22.07.13 10:48
(1) TrinitronOTV, есть разница между "периодом проверки" и "расписанием запуска".
Т.е. раз в 5 минут сравниваются ТекущееВремя() и ДатаСледующегоВыполнения. Соответственно сама обработка может выполняться раз в 2 часа, раз в день, раз в 15 минут. Т.е. не чаще чем период проверки. Собственно период проверки можно и сократить. Благо для этого нужно поправить код в 1-м месте.
4. Алексей Карвацкий (AVK_Alex) 26.07.13 13:38
6. Сергей Аблаев (serg1974) 16.09.13 09:06
В том виде что есть - разработка с непонятной целью -есть "консоль заданий с выполнением" она лучше подходит для реглам. задач на сервере. И описания вменяемого нет...
Но как заготовка - мне обработка понравилась - ИМХО автор не указал её главного потенциала - возможности выполнения заданий НЕ НА СЕРВЕРЕ!!!
Вот у меня например много задач - неоптимизированных под серверный код и не работающие в стандартном режиме регл. заданий. Переписывать все некогда. В итоге я их прикрутил к этой обработке с минимальными изменениями - за что Автору спасибо !