28 марта, 2024

Выполнение задач по расписанию в 1С 7.7

Один из больших недостатков платформы 7.7 — отсутствие планировщика заданий, штатными средствами невозможно настроить, например, запуск нужной процедуры в определенное время.

Частично решить эту проблему можно используя процедуру ОбработкаОжидания(). В ней указывается имя необходимой процедуры и таймер повторения, таким образом задание будет исполняться с нужным интервалом. Как вариант, можно перед запуском проверять текущее время и выполнять процедуру только в нужные часы-минуты.

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

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

Если при старте 1С возникнет нештатная ситуация или условия не позволят выполнить вход, например, 1С выведет вопрос о необходимости переиндесировать файлы или база запущена кем-то монопольно и появится сообщение об ошибке блокировки данных, тогда окно вопроса будет ждать реакции пользователя и дальнейшие запуски будут невозможны.

Для того чтобы избавиться от всех перечисленных недостатков можно сделать ещё одну надстройку и использовать дополнительную программу в сочетании с выше перечисленными способами. Это небольшая программа, написанная на Java, которая делает одну операцию — запускает 1С и вызывает процедуру из глобального модуля. В случае ошибок запуска или ошибок при выполнении операций в 1С, программа корректно завершится и завершит сеанс работы с 1С, что даст возможность запустить её в следующий раз по расписанию.

Итого. Настроить запуск mobilefiles.jar через системный планировщик, в конфигурацию 1С добавить процедуру MobileFiles() в глобальный модуль с ключом Экспорт, в этой процедуре прописать вызов нужных действий. Теперь 1С будет работать на автопилоте, даже на терминальном сервере.

Порядок установки и настройки mobilefiles.jar описан внутри архива с программой.

Mobilefiles
Mobilefiles
mobilefiles.zip
Version: 1
170.7 KiB
Загрузок: 27
Детали