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

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

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

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

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

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

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

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

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

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

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

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

5 Comments

  1. TrinitronOTV

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

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

    Reply
  2. wunderland

    Вообще, штука нужная.

    Предыдущий вопрос — поддерживаю.

    Reply
  3. fotov

    (1) TrinitronOTV, есть разница между «периодом проверки» и «расписанием запуска».

    Т.е. раз в 5 минут сравниваются ТекущееВремя() и ДатаСледующегоВыполнения. Соответственно сама обработка может выполняться раз в 2 часа, раз в день, раз в 15 минут. Т.е. не чаще чем период проверки. Собственно период проверки можно и сократить. Благо для этого нужно поправить код в 1-м месте.

    Reply
  4. AVK_Alex

    Плюсанул за идею.

    Reply
  5. serg1974

    В том виде что есть — разработка с непонятной целью -есть «консоль заданий с выполнением» она лучше подходит для реглам. задач на сервере. И описания вменяемого нет…

    Но как заготовка — мне обработка понравилась — ИМХО автор не указал её главного потенциала — возможности выполнения заданий НЕ НА СЕРВЕРЕ!!!

    Вот у меня например много задач — неоптимизированных под серверный код и не работающие в стандартном режиме регл. заданий. Переписывать все некогда. В итоге я их прикрутил к этой обработке с минимальными изменениями — за что Автору спасибо !

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *