Как настроить отладку веб-сервисов 1С по протоколу HTTP и что делать, если точки останова не срабатывают?

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

Начиная с версии платформы 8.3.8, компания 1С представила новый механизм отладки по протоколу HTTP. Этот механизм пришел на замену старому (по протоколу TCP) и стал особенно актуален для распределенных систем, работы через интернет и отладки веб-сервисов. Однако на практике разработчики часто сталкиваются с ситуацией, когда, несмотря на все включенные ключи, точки останова в модулях веб-сервисов упорно игнорируются. Проанализируем, как правильно настроить окружение и какие нюансы нужно учесть, чтобы отладка заработала.

Настройка сервера 1С:Предприятие для HTTP-отладки

Прежде всего, разберем порядок запуска сервера. Для активации нового механизма служба ragent должна быть запущена с определенными параметрами. В строке запуска службы (в реестре Windows или в скрипте запуска на Linux) необходимо добавить ключи -debug и -http. Важно соблюдать синтаксис: параметры добавляются в конец строки ImagePath в реестре.

Пример правильной строки запуска службы в реестре Windows:


"C:\Program Files\1cv8\8.3.x.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http

Обратим внимание на важный момент: использование ключа -http инициирует запуск вспомогательного процесса dbgs.exe (сервера отладки). Если служба 1С после добавления ключа перестала запускаться, проанализируем системный лог событий Windows. Часто причиной является занятый TCP-порт 1550, который dbgs.exe пытается занять по умолчанию. Если этот порт используется другим приложением, необходимо явно указать свободный порт с помощью параметра -debugServerPort.

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

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

Оказывается, в клиент-серверном варианте работы модуль веб-сервиса зачастую перехватывается отладчиком не как специфический объект "Web-сервис", а как обычный "Серверный вызов". Чтобы гарантированно поймать точку останова, выполним следующие шаги в Конфигураторе:

  1. Перейдем в меню Отладка — Подключение...
  2. Нажмем кнопку Настройка автоматического подключения.
  3. Установим флажки не только напротив Web-сервисы, но и напротив Сервер. Оптимальным решением для поиска проблемы будет временная установка всех флажков в данном окне.

Проанализируем результат: как показывает практика, после установки флага Сервер сеансы веб-сервисов начинают успешно останавливаться на точках разрыва. Это связано с особенностями диспетчеризации вызовов внутри платформы.

Корректировка файла публикации (default.vrd)

Для веб-сервисов критически важную роль играет файл публикации на веб-сервере (IIS или Apache). Если база опубликована, а отладка все равно не идет, проверим содержимое файла default.vrd. В нем должны быть явно указаны параметры отладки. Рассмотрим структуру секции, которую необходимо добавить или изменить:


<point name="MyWebService"
       alias="ws1.1cws"
       enable="true"
       reuseSessions="autouse"
       debug="true"
       debuggerURL="http://имя_вашего_сервера:1550"/>

Здесь параметр debug="true" разрешает отладку для конкретной точки публикации, а debuggerURL указывает адрес сервера отладки (того самого dbgs.exe). Использование прямого указания URL в файле публикации позволяет избежать проблем, когда веб-сервер и сервер 1С находятся в разных подсетях или за NAT.

Проверка сетевой доступности и прав доступа

Если все настройки выполнены, но связи нет, проверим работу брандмауэра и антивирусного ПО. Процесс ragent.exe и dbgs.exe должны иметь разрешения на входящие и исходящие соединения. Посмотрим, доступен ли сервер отладки из браузера. Введем адрес в формате http://адрес_сервера:1550. Если сервер отладки работает корректно и порт открыт, браузер должен вернуть техническую информацию (обычно XML-ответ платформы или пустую страницу без ошибки "404/Соединение сброшено").

Также не забудем про права учетной записи, от которой запущен веб-сервер (например, IUSR или ApplicationPoolIdentity в IIS). Она должна иметь техническую возможность достучаться до портов сервера 1С. В сложных сетевых конфигурациях рекомендуется везде использовать статические IP-адреса вместо имен хостов, чтобы исключить ошибки разрешения имен DNS.

Особенности и ограничения

Важно помнить, что протокол HTTP-отладки несовместим со старым механизмом TCP в рамках одного сеанса. Если вы перешли на -http, убедитесь, что в настройках отладки конфигуратора (Сервис — Параметры — Отладка) выбран именно Протокол HTTP. После смены протокола в параметрах конфигуратора программу необходимо перезапустить.

Если сеанс всё равно не ловится, попробуем перезагрузить веб-сервер (IIS/Apache). Иногда кэшированные настройки публикации мешают инициализации отладочной сессии. Последовательное выполнение этих действий позволяет решить большинство проблем с отладкой современных веб-интерфейсов на платформе 1С.

← На главную