Как настроить отладку серверного кода и внешних обработок в 1С:Предприятие 8.3

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

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

Шаг 1: Активация режима отладки в службе сервера 1С

Первым делом проанализируем состояние службы сервера 1С:Предприятия. По умолчанию сервер запускается без поддержки отладки из соображений производительности. Для включения этой возможности нам потребуется внести изменения в реестр операционной системы, где зарегистрирована служба ragent.

Рассмотрим последовательность действий для Windows-сервера:

  1. Нажмем Win + R, введем regedit и нажмем Enter.
  2. Перейдем в ветку реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3... (название может меняться в зависимости от версии платформы).
  3. Найдем параметр ImagePath.
  4. Нам нужно отредактировать это значение, добавив ключ -debug.

Важный нюанс: Ключ необходимо вставлять строго между путем к исполняемому файлу ragent.exe и параметром -srvc. Например, строка должна выглядеть так:


"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -debug -srvc -agent -regport 1541 -port 1540 -appid 1cv8

Если мы пропустим пробел или поставим ключ в самый конец строки, служба может не запуститься. После внесения изменений обязательно перезапустим службу 1C:Enterprise 8.3 Server Agent через консоль services.msc.

Шаг 2: Выбор и настройка протокола отладки (TCP/IP или HTTP)

Выясним причину, по которой отладка может не работать даже с включенным ключом. Начиная с версии 8.3.7, платформа поддерживает два способа взаимодействия отладчика и сервера. Проанализируем, какой выбрать в вашем случае.

Традиционный протокол TCP/IP: используется по умолчанию. Он требует, чтобы сервер мог «достучаться» до клиентского компьютера разработчика. Если между сервером и вашим ПК стоит брандмауэр, роутер с NAT или вы работаете через VPN, сервер не сможет инициировать соединение.

Современный протокол HTTP: более стабилен для сложных сетевых структур. Для его включения в том же реестре (параметр ImagePath) добавим ключ -http:

"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -debug -http -srvc ...

При использовании HTTP-отладки взаимодействие идет через конкретный URL, что снимает большинство проблем с блокировками сетевых пакетов.

Шаг 3: Настройка сетевых портов и брандмауэра

Рассмотрим ситуацию, когда ключи прописаны, но точки останова все равно игнорируются. Для протокола TCP/IP необходимо убедиться, что открыт диапазон портов 1560–1591. Эти порты используются динамически: каждый сеанс отладки занимает один порт из списка.

Проанализируем шаги по настройке брандмауэра Windows на сервере:

  1. Откроем «Монитор брандмауэра защитника Windows в режиме повышенной безопасности».
  2. Создадим «Правило для входящих подключений».
  3. Выберем тип «Для порта», укажем протокол TCP и диапазон 1560-1591.
  4. Разрешим подключение для всех профилей.

Помните, что если порты заняты другими приложениями, отладка не запустится. Проверить занятость портов можно командой netstat -ano в командной строке.

Шаг 4: Настройка автоматического подключения в Конфигураторе

Даже если сервер готов к работе, Конфигуратор должен знать, какие именно процессы нужно «слушать». Посмотрим на настройки внутри самой среды разработки:

  1. В Конфигураторе откроем меню Отладка — Подключение...
  2. В появившемся окне нажмем кнопку Настройка.
  3. В группе «Автоматическое подключение» установим флажки:
    • Серверные вызовы — для отладки процедур «НаСервере».
    • Фоновые задания — критично для внешних обработок.

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

Шаг 5: Особенности работы с внешними обработками

Разберем ситуацию автора темы: почему именно во внешней обработке отладка «пролетает» мимо сервера? Существует несколько причин:

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

Во-вторых, если используется файловая база, убедитесь, что путь к файлу обработки доступен и понятен системе. В клиент-серверном варианте, если код обработки вызывает фоновое задание, отладчик подключится только в том случае, если в окне «Подключение» (см. Шаг 4) это задание отображается в списке доступных предметов отладки.

Использование файла conf.cfg для тонкой настройки

Если стандартный диапазон портов вам не подходит (например, он перекрывается другим софтом), мы можем переопределить его. Для этого найдем в папке conf установленной платформы файл conf.cfg и добавим в него параметр DebuggerReserverPorts.

Рассмотрим пример содержимого файла:


ConfLocation=C:\Program Files\1cv8\conf
DebuggerReserverPorts=1660-1690

Это заставит сервер использовать указанные порты вместо стандартных. Не забудьте после этого обновить правила в брандмауэре.

Подводя итог: для успешной отладки в 1С 8.3 нам необходимо обеспечить «триединство» настроек: активный ключ -debug в параметрах службы, открытые сетевые порты (или переход на протокол HTTP) и правильно выставленные флажки автоматического подключения в самом Конфигураторе. Соблюдение этих условий гарантирует, что вы сможете анализировать выполнение кода на любом уровне системы.

← На главную