Как работает расписание регламентных заданий 1С при длительном выполнении?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе администрирования и разработки на платформе 1С:Предприятие часто возникает вопрос: как поведет себя система, если регламентное задание выполняется дольше, чем заданный интервал его повтора? Например, если мы настроили запуск каждые 15 минут, а фактическая работа алгоритма занимает 20 минут. Разберем детально механику работы планировщика, чтобы избежать конфликтов и нерационального использования ресурсов сервера.

Различие между параметрами «Повторять через» и «Повторять с паузой»

Для понимания логики работы РегламентныеЗадания необходимо четко разделять два ключевых параметра расписания. Рассмотрим их подробнее:

  1. Повторять через (интервал): Этот параметр задает время, через которое должен произойти следующий запуск, отсчитывая от начала предыдущего запуска. Если мы установили 600 секунд (10 минут), и задание запустилось в 12:00, система запланирует следующий старт на 12:10.
  2. Повторять с паузой: Этот параметр задает время ожидания, которое должно пройти после завершения предыдущего сеанса. Если задание завершилось в 12:20, а пауза установлена в 600 секунд, то следующий запуск произойдет не ранее 12:30.

Проанализируем ситуацию из вопроса: задание должно запускаться каждые 15 минут, но выполняется 20 минут. Если используется только параметр «Повторять через 900 сек», и первый запуск произошел в 12:00 (завершение в 12:20), то второй запуск произойдет ровно в 12:20. Почему? Потому что в 12:15 система попыталась запустить задание, увидела, что оно еще выполняется, и «встала в очередь», запустив сеанс немедленно после освобождения ресурса.

Сочетание обоих параметров: правило максимума

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

Допустим, установлены настройки: Повторять через 600 сек и Повторять с паузой 100 сек.

Особенности работы в файловом и клиент-серверном режимах

Рассмотрим, как режим работы базы данных влияет на исполнение расписания, так как это часто становится причиной того, что задания «не запускаются»:

В клиент-серверном варианте за запуск отвечает менеджер кластера серверов 1С. Задания выполняются в фоновых сессиях на сервере (процессы rphost) полностью автоматически. Это наиболее надежный вариант, где расписание соблюдается с точностью до секунд.

В файловом варианте планировщик работает иначе. Задания не запускаются сами по себе. Для их работы должна быть открыта хотя бы одна клиентская сессия. В современных конфигурациях на базе БСП (Библиотеки Стандартных Подсистем) выполнение происходит в контексте обычного пользователя с некоторой периодичностью. Если в базе никого нет — регламентные задания «спят».

Обработка аварийных завершений и повторы

Посмотрим на настройки, которые часто игнорируют. В карточке регламентного задания есть поля для работы с ошибками:

  1. Количество повторов при аварийном завершении: сколько раз система попытается запустить задание снова, если внутри кода произошел критический сбой (исключение).
  2. Пауза при аварийном завершении: интервал именно между этими «спасательными» попытками. Не путайте это с обычной паузой в расписании.

Важно: По умолчанию платформа не запускает второй экземпляр одного и того же регламентного задания параллельно. Если вам необходимо выполнять однотипные действия одновременно в несколько потоков, следует программно создавать ФоновыеЗадания (объекты BackgroundJob).

Практические рекомендации по мониторингу

Для детального анализа того, почему задание ведет себя не так, как ожидалось, недостаточно просто смотреть в Журнал Регистрации. Мы рекомендуем использовать инструмент «Консоль заданий» (стандартная обработка от 1С).

Она позволяет увидеть колонку «Конец» и «Плановое время следующего запуска». Это расчетное поле, которое платформа вычисляет динамически. Проанализировав его, вы точно поймете, какую паузу или интервал система применяет в данный момент.

Также учитывайте часовые пояса: расписание всегда привязано к времени сервера 1С. Если ваш сервер находится в другом регионе, все расчеты «через» и «с паузой» будут идти по его локальным часам, что критично для ночных заданий.

← На главную