Аварийное завершение регламентных и фоновых заданий — распространенная проблема в серверном режиме работы 1С:Предприятие. При этом в Журнале регистрации зачастую отображается лишь факт сбоя со статусом «Аварийное завершение», без детализации причин. Проанализируем, какими методами можно диагностировать проблему и найти сбойный участок кода или системы.
Один из самых простых и эффективных способов локализации ошибки — выполнение алгоритма задания во внешней обработке. В фоновом режиме отладка затруднена, а интерактивный запуск позволяет отследить выполнение по шагам.
Разберем по шагам, как выполнить такую проверку:
Посмотрим на пример кода во внешней обработке:
Попытка
// Вызываем экспортную процедуру модуля, исполняющую логику задания
УчетРегламентныеЗадания.ВыполнитьОбновлениеДанных();
Сообщить("Задание успешно выполнено!");
Исключение
// Ловим исключение и выводим подробный стек ошибки
Сообщить("Произошла ошибка: " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Этот подход помогает мгновенно обнаружить ошибки вызова клиентских методов (например, Предупреждение() или ОткрытьФорму()) в серверном контексте, а также перехватить исключения программного кода.
Если запуск из обработки не выявляет проблем или аварийное завершение происходит из-за падения рабочего процесса сервера 1С (rphost), стандартный Журнал регистрации не успевает записать данные. В этом случае требуется настройка Технологического журнала (ТЖ).
Технологический журнал позволяет фиксировать все критические события на уровне сервера 1С, включая аварийные дампы и исключительные ситуации.
Рассмотрим порядок настройки Технологического журнала:
conf в каталоге установки платформы).logcfg.xml.ABR) и исключительных ситуаций (EXCP).Пример содержимого файла logcfg.xml для сбора сведений о сбоях:
<config xmlns="http://v8.1c.ru/v8/config/logcfg">
<log location="C:\1C_Logs\EXCP" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="ABR"/>
</event>
<property name="all"/>
</log>
</config>
После возникновения очередного сбоя откроем созданные файлы логов в каталоге C:\1C_Logs\EXCP. По событию EXCP установим конкретную причину падения процесса или тексты ошибок базы данных.
Выясним основные технические причины, которые приводят к краху фоновых процессов:
rphost превышает лимит памяти и аварийно завершается операционной системой. Рекомендуется обрабатывать данные порциями или настроить параметры перезапуска рабочих процессов в консоли кластера 1С.HTTPСоединение или FTPСоединение без указания параметра таймаута задание может заблокироваться бессрочно. Обязательно передавайте явно таймаут в конструктор соединения.TEMP) на сервере.