Почему регламентное задание не запускается по расписанию и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Промышленность, строительство и АПК
← На главную

Часто в работе администратора или разработчика 1С возникает ситуация, когда РегламентноеЗадание, добавленное через механизм ДополнительныеОтчетыИОбработки, прекрасно отрабатывает при ручном запуске через кнопку «Выполнить сейчас», но полностью игнорирует заданное расписание. Давайте подробно разберем, почему это происходит и как настроить систему так, чтобы автоматизация работала без сбоев.

Анализ причин некорректного срабатывания расписания

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

Рассмотрим основные моменты, которые необходимо проверить:

  1. Проверка глобальной блокировки: Убедитесь, что в консоли администрирования серверов 1С для вашей информационной базы не установлен флаг «Блокировка регламентных заданий включена». Если этот флаг активен, никакие задания не запустятся автоматически.
  2. Настройки повторения: Как показала практика, самая частая ошибка — это неполная настройка параметров завершения и повторения. Если вы задали интервал выполнения (например, с 12:50 до 12:58), но не указали корректно параметры повтора после завершения задания, планировщик может «потерять» задание на следующий день.
  3. Параметры фонового задания: При настройке расписания важно четко определить не только время начала, но и условия завершения.

Пошаговое решение: настраиваем расписание правильно

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

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

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

1. Дни выполнения: Выбираем «каждый день» и отмечаем флажками «понедельник», «вторник», «среда», «четверг», «пятница».

2. Временной интервал: Задаем время начала и окончания работы (например, с 12:50:00 по 12:58:00).

3. Частота и повторение: Это критический узел настройки. Чтобы планировщик корректно перезапускал процесс, необходимо указать интервал повторения. Рассмотрим пример кода, который логически описывает эту настройку:


// Пример настройки параметров регламентного задания в коде
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ДниНедели.Добавить(ДеньНедели.Понедельник);
Расписание.ДниНедели.Добавить(ДеньНедели.Вторник);
// ... добавление остальных дней
Расписание.ВремяНачала = '00010101125000';
Расписание.ВремяОкончания = '00010101125800';
Расписание.ПовторятьЧерезСекунд = 5;
Расписание.ЗавершатьЧерезСекунд = 60;

Если вы не укажете корректно ПовторятьЧерезСекунд, после первого же успешного выполнения планировщик посчитает, что задание выполнено, и не будет инициировать новый цикл до наступления нового дня, что и приводит к состоянию «неопределено» в колонках журнала заданий.

Что делать, если настройки верны, но задание все равно «молчит»?

Если после корректировки расписания задание все равно не запускается автоматически, выполните следующие действия:

  1. Сброс состояния планировщика: Иногда настройки «залипают» в кэше сервера. Снимите галочку «Включено» в настройках регламентного задания, примените изменения, подождите 1-2 минуты, а затем снова включите задание. Это заставит планировщик сервера 1С заново перечитать параметры.
  2. Анализ журнала регистрации: Откройте журнал регистрации и отфильтруйте события по фоновым заданиям. Если задание пытается запуститься, но падает с ошибкой, вы увидите запись с уровнем «Ошибка». Чаще всего там будет указана причина, например, нехватка прав пользователя, под которым работает регламентное задание.
  3. Проверка прав пользователя: Убедитесь, что пользователь, от имени которого работает регламентное задание, имеет необходимые права доступа к объектам, к которым обращается ваша внешняя обработка.

Помните, что для стабильной работы ДополнительныеОтчетыИОбработки крайне важно, чтобы метод, выполняющий основную логику, был защищен блоком Попытка...Исключение. Если в коде возникнет необработанное исключение, сервер может пометить фоновое задание как «зависшее» или «ошибочное», что заблокирует его автоматический перезапуск.

Проанализируйте логику вашей обработки: если она выполняет длительные операции, предусмотрите механизм фиксации прогресса, чтобы в случае внезапного завершения процесса (например, из-за ограничения ЗавершатьЧерезСекунд) система могла корректно продолжить выполнение при следующем запуске.

← На главную