Конфигурация. состоит из подключаемого обработчика ожидания, который раз в 5 минут проверяет регистр расписаний и по необходимости запускает обработки. Запуск происходит у любого пользователя, у которого проставлена соответствующая роль. Для того чтобы не городить огород с расписанием — механизм расписаний перенесён на саму обработку — обработка дложна возвращать дату следующего запуска.
Установка все действия производятся в режмие Конфигуратор:
- Сделать архивную копию базы
- Открыть конфигурацию. (Конфигурация — Открыть конфигурацию)
- Включить возможность изменения конфигурации. (Конфигурация — Поддержка — Настройка поддержки — Включить возможность изменения — Объект поставщика редактируется с сохранением поддержки)
- Объединение конфигураций. (Конфигурация — Сравнить, объединить с конфигурацией из файла.. — Снять флаг на ветке «Свойства» — Выполнить)
- Добавление кода для запуска. На дереве конфигурации нажать правой клавишей мыши на верхнем узле и выбрать «Модуль обычного приложения» или «Модуль управляемого приложения» в зависимости от конфигурации. Найти процедуру «ПриНачалеРаботыСистемы» и добавить в конец строчку
ПодключитьОбработчикОжидания(«фтПроверкаРегламентногоЗапускаВнешнихОбработок», 300);
- Обновление конфигурации. (Конфигурация — Обновить конфигурацию базы данных)
Внешняя обработка должна содержать фунцию
Функция ЗапускРегламентногоЗадания(ДатаПредыдущегоЗапуска) Экспорт
При корректной отработке фунция должна возвращать дату следующего запуска
В случае возникновения ошибки необходимо вызывать исключение, которое запишется в текст ошибки
а разные задания, которые подключаются к вашей обработке, можно будет задавать разный период их выполнения или только все задания выполняются с параметром 300, как указано в строке:
ПодключитьОбработчикОжидания(«фтПроверкаРегламентногоЗапускаВнешнихОбработок», 300);
Вообще, штука нужная.
Предыдущий вопрос — поддерживаю.
(1) TrinitronOTV, есть разница между «периодом проверки» и «расписанием запуска».
Т.е. раз в 5 минут сравниваются ТекущееВремя() и ДатаСледующегоВыполнения. Соответственно сама обработка может выполняться раз в 2 часа, раз в день, раз в 15 минут. Т.е. не чаще чем период проверки. Собственно период проверки можно и сократить. Благо для этого нужно поправить код в 1-м месте.
Плюсанул за идею.
В том виде что есть — разработка с непонятной целью -есть «консоль заданий с выполнением» она лучше подходит для реглам. задач на сервере. И описания вменяемого нет…
Но как заготовка — мне обработка понравилась — ИМХО автор не указал её главного потенциала — возможности выполнения заданий НЕ НА СЕРВЕРЕ!!!
Вот у меня например много задач — неоптимизированных под серверный код и не работающие в стандартном режиме регл. заданий. Переписывать все некогда. В итоге я их прикрутил к этой обработке с минимальными изменениями — за что Автору спасибо !