В процессе разработки в среде 1С:Предприятие 8.3 разработчики нередко сталкиваются с ситуацией, когда служба сервера 1С запущена с ключом -debug, в списке доступных предметов отладки отображается серверный контекст, однако при выполнении серверного кода точка останова упорно игнорируется платформой. При этом на рабочих станциях коллег отладка в этой же информационной базе может функционировать исправно. Разберем детально механизм сетевого взаимодействия отладчика 1С, выясним причины сбоя и рассмотрим пошаговые способы восстановления полноценной отладки на сервере.
Проанализируем архитектуру классической отладки по протоколу TCP/IP. Когда клиентское приложение (Конфигуратор) подключается к информационной базе, оно ожидает событий от сервера. В классическом режиме отладки сервер 1С при наступлении события остановки сам инициирует обратное входящее подключение к рабочей станции разработчика на динамически выделенный порт. Если на пути этого сетевого пакета возникает препятствие, Конфигуратор не получает сигнал об остановке выполнения, и серверный код отрабатывает без прерывания.
Выделим основные факторы, приводящие к данной проблеме:
1cv8.exe.-debug в строке запуска службы ragent.exe.Убедимся, что служба сервера 1С действительно запущена с ключом отладки. Проверим значение ключа в реестре Windows по пути ветки службы кластера или в параметрах запуска службы.
Посмотрим на корректный пример строки запуска службы с параметром -debug:
"C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe" -srvc -agent -debug -regport 1741 -port 1740 -range 1760:1791 -d "C:\Program Files\1cv8\srvinfo"
Обратим внимание: ключ -debug рекомендуется размещать сразу после ключа -agent перед указанием сетевых портов. После внесения правок в реестр обязательно выполним перезапуск службы 1C:Enterprise 8.3 Server Agent.
Разберем основной источник проблемы — блокировку входящих соединений на рабочей станции программиста:
1cv8.exe (расположенной в каталоге соответствующей версии платформы).Рассмотрим параметры среды разработки. Даже при доступности сервера точки останова могут игнорироваться, если не настроен контекст перехвата:
Если проблема сохраняется, выполним следующие диагностические действия:
%LocalAppData%\1C\1cv8 и %AppData%\1C\1cv8, предварительно закрыв все запущенные сеансы 1С.ping ИмяКомпьютераРазработчика. При несовпадении IP-адреса пропишем соответствие в файле hosts на стороне сервера.Начиная с версии 8.3.7 платформа 1С поддерживает отладку по протоколу HTTP. В этом режиме Конфигуратор и сервер взаимодействуют через единый порт (по умолчанию 1550), что исключает проблемы с блокировкой обратных входящих соединений на клиенте, работой через NAT и несколькими сетевыми картами.
Для включения HTTP-отладки в строке запуска службы сервера вместо ключа -debug указывается ключ -http:
"C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe" -srvc -agent -http -regport 1741 -port 1740 -range 1760:1791 -d "C:\Program Files\1cv8\srvinfo"
В настройках Конфигуратора (меню Сервис — Параметры — вкладка Отладка) переключаем протокол на Протокол HTTP и указываем адрес сервера отладки. Это обеспечивает стабильный перехват точек останова в сложных сетевых инфраструктурах.