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

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

Разработка регламентных заданий на базе внешних обработок — стандартная задача при использовании Библиотеки стандартных подсистем (БСП). Однако разработчики часто сталкиваются с двумя проблемами: точки останова в конфигураторе не «ловят» выполнение кода, а само задание по непонятным причинам не запускается по расписанию. В этой статье мы подробно разберем, как преодолеть эти трудности, настроить сервер и гарантировать выполнение ваших алгоритмов.

Почему не работают точки останова во внешней обработке?

Проанализируем механизм работы внешних обработок, добавленных в справочник «Дополнительные отчеты и обработки». Когда вы загружаете файл .epf в базу, система сохраняет его в виде двоичных данных в информационной базе. При запуске регламентного задания БСП извлекает эти данные, создает временный файл и запускает его. Ваш исходный файл на диске, в котором вы расставили точки останова, никак не связан с тем кодом, который исполняется сервером.

Для решения этой проблемы рассмотрим несколько эффективных стратегий отладки:

  1. Использование Журнала регистрации. Это самый простой и надежный способ проверить, заходит ли управление в нужную функцию. Используем метод ЗаписьЖурналаРегистрации. Разберем на примере:
    
    Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
        Если ИдентификаторКоманды = "ОтправкаУведомлений" Тогда
            ЗаписьЖурналаРегистрации("ОтладкаРегламента", УровеньЖурналаРегистрации.Предупреждение, , , "Метод запущен!");
            ОтправкаУведомлений();
        КонецЕсли;
    КонецФункции
    
  2. Отладка через расширение конфигурации. Чтобы не возиться с временными файлами, перенесите основной код уведомлений в модуль расширения, а во внешней обработке оставьте только вызов этого метода. В модуле расширения точки останова будут срабатывать стандартным образом.
  3. Создание отладочной формы. Добавьте во внешнюю обработку форму с кнопкой, которая вызывает метод ВыполнитьКоманду на сервере. Сначала добейтесь безупречной работы кода при интерактивном запуске, и только потом проверяйте его в фоне.

Настройка сервера для отладки фоновых заданий

Даже если вы открыли правильный файл, отладка может не работать из-за настроек сервера. Проверим параметры запуска службы 1С:Предприятие. Выясним, включен ли режим отладки. В строке запуска службы должен присутствовать ключ -debug. Если используется современная платформа (начиная с 8.3.15), крайне рекомендуем переключиться на протокол HTTP, добавив ключ -http.

В конфигураторе выполним следующие действия:

  1. Перейдем в меню Сервис — Параметры — Отладка.
  2. Установим переключатель в положение «Протокол HTTP» (или TCP, если сервер настроен на него).
  3. Зайдем в Отладка — Подключение и убедимся, что установлена галочка «Автоматическое подключение фоновых заданий».

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

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

Блокировка регламентных заданий в консоли администрирования

Это самая частая причина в клиент-серверных версиях. Посмотрим, как это проверить:

  1. Откроем консоль «Администрирование серверов 1С Предприятия».
  2. Найдем в списке нужную информационную базу и откроем её свойства.
  3. Проанализируем состояние флага «Блокировка регламентных заданий включена». Если галочка стоит — никакие задания (включая стандартные и внешние) выполняться не будут.
  4. Снимем галочку и нажмем «ОК».

Проверка через Консоль заданий

Для детальной диагностики рекомендуем использовать обработку «Консоль регламентных и фоновых заданий» (её можно найти на ИТС или в составе инструментов разработчика). В ней мы увидим:

Особенности прав доступа и безопасности

Разберем важный нюанс БСП — поле «Безопасный режим». При регистрации внешней обработки через функцию СведенияОВнешнейОбработке мы указываем:

ПараметрыРегистрации.БезопасныйРежим = Ложь;

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

Также важно помнить, что регламентное задание выполняется под определенным пользователем. Если в настройках задания в справочнике не указан «Пользователь», задание может запуститься без прав доступа к необходимым данным или почтовым аккаунтам. Рекомендуем всегда назначать служебного пользователя с полными правами для выполнения фоновых операций.

Резюме: алгоритм запуска и отладки

Рассмотрим краткий план действий, который сэкономит ваше время:

  1. Проверьте работу кода интерактивно через форму обработки.
  2. Убедитесь, что в свойствах базы на сервере выключена «Блокировка регламентных заданий».
  3. Используйте ЗаписьЖурналаРегистрации для контроля входа в процедуру ВыполнитьКоманду.
  4. Настройте автоматическое подключение к фоновым заданиям в конфигураторе.
  5. Если отладка «не идет», воспользуйтесь механизмом расширений для временного размещения кода там.

Соблюдение этих шагов позволяет успешно внедрять сложные механизмы уведомлений и автоматизации, работающие полностью в автономном режиме.

← На главную