Превышено допустимое время выполнения регламентного задания 1С: решение
- В журнале регистрации 1С запись:
Превышено максимальное время выполнения регламентного задания. - Фоновое задание принудительно отменяется сервером кластера 1С с передачей исключения.
- Длительные ночные регламенты (закрытие месяца, расчет себестоимости, обмен данными) не успевают завершиться до начала рабочего дня.
- Резкий рост очередей блокировок в СУБД из-за зависших фоновых потоков.
1. Настройка тайм-аута регламентного задания в консоли кластера
В консоли администрирования 1С (или через функции БСП Регламентные и фоновые задания):
- Откройте свойства проблемного задания.
- Проверьте параметр Количество попыток и Интервал повтора.
- Увеличьте допустимый таймаут выполнения или снимите жесткое ограничение времени.
2. Внедрение порционной обработки (батчинга) данных
Переработайте алгоритм задания для фиксации промежуточных транзакций, чтобы не удерживать транзакционные блокировки СУБД часами:
Выборка = Запрос.Выполнить().Выбрать();
Счетчик = 0;
НачатьТранзакцию();
Пока Выборка.Следующий() Цикл
ОбработатьЗапись(Выборка);
Счетчик = Счетчик + 1;
Если Счетчик % 1000 = 0 Тогда
ЗафиксироватьТранзакцию();
НачатьТранзакцию();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();3. Разделение задания на параллельные фоновые потоки
Используйте механизм параллельных фоновых заданий БСП (ФоновоеВыполнение), распределяя порции объектов по массиву параллельных потоков.
Частые вопросы (FAQ)
Почему регламентное задание выполняется на сервере в разы медленнее, чем вручную пользователем?
Фоновые задания запускаются без контекста сеанса пользователя и могут упираться в RLS (безопасность на уровне записей), если в коде явно не использован ПривилегированныйРежим(Истина).
Как принудительно завершить зависшее регламентное задание?
В консоли кластера серверов 1С перейдите в ветку 'Сеансы', найдите фоновый сеанс регламентного задания и нажмите 'Удалить' (Завершить сеанс).
Влияет ли параметр lock_timeout в PostgreSQL / MS SQL на это задание?
Да. Если задание ждет освобождения таблицы, заблокированной пользователем, оно зависает в ожидании блокировки, пока не сработает общий таймаут регламента.
Где настроить перезапуск рабочих процессов при превышении времени вызова?
В свойствах кластера 1С параметры: 'Допустимый объем памяти', 'Интервал перезапуска' и 'Ограничение времени вызова'.