Почему аварийно завершаются регламентные задания в 1С и как найти причину

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

Аварийное завершение регламентных и фоновых заданий — распространенная проблема в серверном режиме работы 1С:Предприятие. При этом в Журнале регистрации зачастую отображается лишь факт сбоя со статусом «Аварийное завершение», без детализации причин. Проанализируем, какими методами можно диагностировать проблему и найти сбойный участок кода или системы.

Способ 1. Запуск кода регламентного задания из внешней обработки

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

Разберем по шагам, как выполнить такую проверку:

  1. Создадим новую внешнюю обработку в режиме «Конфигуратор».
  2. Добавим кнопку и процедуру на форме обработки.
  3. Из внешней обработки вызовем процедуру или функцию модуля, в которой содержится основной код регламентного задания.
  4. Запустим обработку в режиме «1С:Предприятие» под пользователем с полными правами и выполним алгоритм.

Посмотрим на пример кода во внешней обработке:


Попытка
    // Вызываем экспортную процедуру модуля, исполняющую логику задания
    УчетРегламентныеЗадания.ВыполнитьОбновлениеДанных();
    Сообщить("Задание успешно выполнено!");
Исключение
    // Ловим исключение и выводим подробный стек ошибки
    Сообщить("Произошла ошибка: " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

Этот подход помогает мгновенно обнаружить ошибки вызова клиентских методов (например, Предупреждение() или ОткрытьФорму()) в серверном контексте, а также перехватить исключения программного кода.

Способ 2. Настройка и анализ Технологического журнала (ТЖ)

Если запуск из обработки не выявляет проблем или аварийное завершение происходит из-за падения рабочего процесса сервера 1С (rphost), стандартный Журнал регистрации не успевает записать данные. В этом случае требуется настройка Технологического журнала (ТЖ).

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

Рассмотрим порядок настройки Технологического журнала:

  1. Перейдем в каталог служебных файлов сервера 1С (папка conf в каталоге установки платформы).
  2. Создадим или отредактируем файл конфигурации logcfg.xml.
  3. Настроим отслеживание событий аварийного завершения (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 установим конкретную причину падения процесса или тексты ошибок базы данных.

Распространенные причины падения регламентных заданий

Выясним основные технические причины, которые приводят к краху фоновых процессов:

  1. Нехватка оперативной памяти (OOM). При обработке слишком больших объемов данных процесс rphost превышает лимит памяти и аварийно завершается операционной системой. Рекомендуется обрабатывать данные порциями или настроить параметры перезапуска рабочих процессов в консоли кластера 1С.
  2. Зависание сетевых соединений. При использовании объектов HTTPСоединение или FTPСоединение без указания параметра таймаута задание может заблокироваться бессрочно. Обязательно передавайте явно таймаут в конструктор соединения.
  3. Сбои в полнотекстовом поиске (ППД). Повреждение индексов полнотекстового поиска вызывает падение процессов при выполнении фонового слияния или обновления индексов. В этом случае выполните очистку и полное переиндексирование ППД.
  4. Права доступа системной учетной записи. Убедитесь, что служба сервера 1С имеет полный доступ к каталогу временных файлов (TEMP) на сервере.
← На главную