Как отладить внешнюю обработку в 1С:ERP и других конфигурациях на БСП?

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

В современных конфигурациях 1С, таких как ERP 2.5, УТ 11 или КА, разработчики часто сталкиваются с проблемой: точка останова во внешней обработке не срабатывает — для её решения есть инструмент отладки кода 1С в режиме Предприятия. В этом контексте полезно изучить справочник по методам БСП. Это происходит потому, что механизмы Библиотеки стандартных подсистем (БСП) работают иначе, чем в старых конфигурациях вроде УПП. Когда мы запускаем обработку через справочник «Дополнительные отчеты и обработки», система копирует её во временное хранилище или кэш, из-за чего связь между исполняемым кодом и файлом .epf на диске разрывается.

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

Метод 1. Настройка сервера и автоматического подключения

Прежде чем приступать к манипуляциям с кодом, проверим базовые настройки. Модуль объекта внешней обработки практически всегда выполняется на стороне сервера. Если сервер 1С запущен без ключа отладки, ни одна точка останова не сработает.

Проанализируем шаги по подготовке окружения:

  1. Убедимся, что сервер 1С:Предприятия запущен с параметром -debug. Если вы работаете в файловом варианте, этот шаг можно пропустить.
  2. В конфигураторе перейдем в меню Сервис — Параметры. На вкладке Запуск 1С:Предприятия — Дополнительно проверим протокол отладки. Для современных версий платформы рекомендуется использовать HTTP.
  3. Откроем внешнюю обработку в конфигураторе через Файл — Открыть. Найдем нужный модуль (например, модуль объекта) и установим точку останова, предварительно изучив длительные операции в БСП.
  4. Перейдем в меню Отладка — Подключение. В открывшемся окне нажмем кнопку Автоматическое подключение и установим флажок Фоновые задания — упростить этот процесс поможет набор инструментов разработки и отладки без изменения конфигурации. Это критически важно, так как БСП часто запускает обработку в фоновом потоке.

Метод 2. Запуск через «Файл — Открыть» (Обход механизмов БСП)

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

Разберем алгоритм действий:

  1. Запустим «1С:Предприятие» в режиме отладки.
  2. Вместо того чтобы заходить в раздел «Администрирование — Печатные формы, отчеты и обработки», где обычно выполняется загрузка внешних обработок, нажмем Главное меню — Файл — Открыть.
  3. Выберем наш файл .epf с диска.
  4. Выполним нужное действие. В этом случае точка останова, поставленная в модуле формы или модуля объекта (при условии вызова серверных методов), должна сработать стандартным образом.

Важное замечание: Если ваша обработка использует специфические методы БСП (например, ожидает параметры в процедуре ВыполнитьКоманду), этот метод может выдать ошибку, так как при прямом открытии параметры БСП не передаются.

Метод 3. Программный вызов через «Обработку-запускалку»

Выясним, как быть, если обработка должна работать именно как серверный объект. Мы можем создать вспомогательную внешнюю обработку, которая просто вызовет код нашей основной обработки. Этот метод позволяет сохранить отладочную связь и при этом передать необходимые параметры.

Посмотрим на пример кода, который можно разместить в кнопке «запускалки» (также может пригодиться MCP сервер для работы с экспортными процедурами):


ПутьКФайлу = "C:\Debug\МояОбработка.epf";
// Создаем объект обработки программно, указывая путь к файлу
ОбъектИнстанс = ВнешниеОбработки.Создать(ПутьКФайлу, Ложь);

// Если нужно вызвать экспортную процедуру из модуля объекта
ОбъектИнстанс.ВыполнитьКоманду("ИмяВашейКоманды");

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

Метод 4. Отключение безопасного режима

Проанализируем еще одну причину неудач — Безопасный режим. По умолчанию дополнительные обработки в БСП регистрируются в безопасном режиме. В этом состоянии работа отладчика может быть ограничена политиками безопасности платформы.

Для целей разработки выполним следующие действия:

  1. Зайдем в справочник Дополнительные отчеты и обработки.
  2. Найдем нашу обработку.
  3. В поле Режим управления (или аналогичном, в зависимости от версии БСП) установим значение Без ограничений.
  4. Запишем изменения.

Это позволит коду выполняться с полными правами, что часто облегчает «захват» сеанса отладчиком.

Метод 5. Использование замера производительности (Хитрый способ)

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

Рассмотрим по шагам:

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

Метод 6. Остановка через исключение

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

Например, в модуле объекта пропишем:


Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
    
    // Временно вставляем для отладки
    ВызватьИсключение "Стоп-кадр для отладки";
    
    // Далее идет ваш код...
    РеализацияАлгоритма();
    
КонецПроцедуры

При выполнении этого кода система выдаст окно с ошибкой. Нажав кнопку Подробно, а затем Конфигуратор, вы автоматически попадете в то место кода и в тот сеанс (включая фоновые задания), где произошел останов. После этого вы сможете проанализировать значения переменных в табло.

Резюме

Мы рассмотрели различные подходы к отладке внешних обработок в 1С:ERP. Основной секрет успеха заключается в правильной настройке автоматического подключения к фоновым заданиям и понимании того, что БСП работает с копией файла. Использование программного создания объекта через ВнешниеОбработки.Создать с явным указанием пути остается самым надежным способом для сложной разработки.

← На главную