Разработка регламентных заданий на базе внешних обработок — стандартная задача при использовании Библиотеки стандартных подсистем (БСП). Однако разработчики часто сталкиваются с двумя проблемами: точки останова в конфигураторе не «ловят» выполнение кода, а само задание по непонятным причинам не запускается по расписанию. В этой статье мы подробно разберем, как преодолеть эти трудности, настроить сервер и гарантировать выполнение ваших алгоритмов.
Проанализируем механизм работы внешних обработок, добавленных в справочник «Дополнительные отчеты и обработки». Когда вы загружаете файл .epf в базу, система сохраняет его в виде двоичных данных в информационной базе. При запуске регламентного задания БСП извлекает эти данные, создает временный файл и запускает его. Ваш исходный файл на диске, в котором вы расставили точки останова, никак не связан с тем кодом, который исполняется сервером.
Для решения этой проблемы рассмотрим несколько эффективных стратегий отладки:
ЗаписьЖурналаРегистрации. Разберем на примере:
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
Если ИдентификаторКоманды = "ОтправкаУведомлений" Тогда
ЗаписьЖурналаРегистрации("ОтладкаРегламента", УровеньЖурналаРегистрации.Предупреждение, , , "Метод запущен!");
ОтправкаУведомлений();
КонецЕсли;
КонецФункции
ВыполнитьКоманду на сервере. Сначала добейтесь безупречной работы кода при интерактивном запуске, и только потом проверяйте его в фоне.Даже если вы открыли правильный файл, отладка может не работать из-за настроек сервера. Проверим параметры запуска службы 1С:Предприятие. Выясним, включен ли режим отладки. В строке запуска службы должен присутствовать ключ -debug. Если используется современная платформа (начиная с 8.3.15), крайне рекомендуем переключиться на протокол HTTP, добавив ключ -http.
В конфигураторе выполним следующие действия:
Представим ситуацию: код отлажен, кнопка «Выполнить сейчас» работает, письма уходят, но по расписанию ничего не происходит. Рассмотрим основные причины блокировки заданий на уровне инфраструктуры.
Это самая частая причина в клиент-серверных версиях. Посмотрим, как это проверить:
Для детальной диагностики рекомендуем использовать обработку «Консоль регламентных и фоновых заданий» (её можно найти на ИТС или в составе инструментов разработчика). В ней мы увидим:
Разберем важный нюанс БСП — поле «Безопасный режим». При регистрации внешней обработки через функцию СведенияОВнешнейОбработке мы указываем:
ПараметрыРегистрации.БезопасныйРежим = Ложь;
Если в справочнике «Дополнительные отчеты и обработки» для вашей обработки по ошибке включен безопасный режим, система заблокирует попытку установить сетевое соединение с почтовым сервером. Всегда проверяйте эту настройку вручную после загрузки файла в базу.
Также важно помнить, что регламентное задание выполняется под определенным пользователем. Если в настройках задания в справочнике не указан «Пользователь», задание может запуститься без прав доступа к необходимым данным или почтовым аккаунтам. Рекомендуем всегда назначать служебного пользователя с полными правами для выполнения фоновых операций.
Рассмотрим краткий план действий, который сэкономит ваше время:
ЗаписьЖурналаРегистрации для контроля входа в процедуру ВыполнитьКоманду.Соблюдение этих шагов позволяет успешно внедрять сложные механизмы уведомлений и автоматизации, работающие полностью в автономном режиме.