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

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

Разработка и сопровождение интеграций через веб-сервисы — стандартная задача для современного специалиста 1С. Однако часто программисты сталкиваются с тем, что отладка в базе-приемнике не срабатывает: код выполняется, данные создаются, но конфигуратор игнорирует точки остановки. Рассмотрим подробнее, как диагностировать и устранить причины такого поведения, опираясь на практический опыт и технические особенности платформы 8.3.

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

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

Выясним причину: каждая версия платформы или каждый отдельный экземпляр службы сервера 1С может использовать свои диапазоны портов. Если в брандмауэре (firewall) открыты порты только для одной версии, отладка другой будет блокироваться. Выполним следующие действия:

  1. Проверим, открыты ли порты из диапазона 1560–1591 для протокола TCP (при использовании классического метода отладки).
  2. Убедимся, что сервер, на котором запущен конфигуратор, доступен по сети для сервера, на котором работает IIS.
  3. Попробуем временно отключить брандмауэр для проверки гипотезы о блокировке трафика.

Анализ предметов отладки

Для понимания того, видит ли система ваш веб-сервис как объект для отладки, необходимо проанализировать окно подключений. Рассмотрим ситуацию: вы запускаете выполнение кода в базе-источнике, а в базе-приемнике (где опубликован сервис) ничего не происходит.

Разберем по шагам, как проверить наличие предметов отладки в конфигураторе базы-приемника:

  1. Откройте меню Отладка — Подключение....
  2. Проанализируйте список «Доступные предметы отладки». Если окно пустое или там только ваш текущий толстый/тонкий клиент, значит, сервер отладки не видит сеанс веб-сервиса.
  3. Обратите внимание на колонку «Тип». Для успешной работы там должен появиться предмет с типом Web-сервис.
  4. Если автоматическое подключение не срабатывает, нажмите кнопку Искать и проверьте настройки поиска.

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

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

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

Конфигурация файла публикации (.vrd)

Одной из самых неочевидных проблем является отсутствие разрешения на отладку в самом файле публикации веб-сервиса. Даже если на сервере 1С включен режим -debug, веб-сервер IIS может блокировать передачу отладочной информации. Рассмотрим структуру файла default.vrd, который обычно находится в каталоге публикации на IIS.

Для включения возможности отладки необходимо отредактировать тег point. Он должен содержать атрибут debug="true". Если используется современный протокол отладки по HTTP, следует добавить адрес сервера отладки. Пример корректной настройки тега:


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

После внесения изменений в файл .vrd обязательно выполните команду iisreset в командной строке или перезапустите пул приложений в консоли управления IIS, чтобы изменения вступили в силу.

Выбор протокола отладки: TCP или HTTP

Начиная с версии 8.3.7, платформа поддерживает отладку по протоколу HTTP. Это более стабильный вариант для веб-сервисов. Выясним, какой протокол используется у вас. Настройка производится в параметрах запуска сервера 1С (флаг -http) и в настройках конфигуратора.

Если вы используете HTTP-отладку, убедитесь, что:

Если используется TCP-отладка, проверьте файл debugcfg.xml в папке bin/conf. Содержимое файла должно явно указывать на сервер отладки:


<config xmlns="http://v8.1c.ru/v8/debugcfg">
    <debugportrange low="1560" high="1591" />
</config>

Права доступа пользователя IIS

Посмотрим на ситуацию со стороны операционной системы. Веб-сервис выполняется в контексте пользователя, от имени которого запущен пул приложений IIS (например, IUSR или NetworkService). Проанализируем права этого пользователя:

  1. У пользователя должны быть права на чтение и выполнение файлов платформы 1С в каталоге bin.
  2. Если отладка идет через TCP, системный пользователь IIS должен иметь права на создание сетевых соединений с портом отладчика на вашем рабочем месте.
  3. Проверьте, нет ли ограничений в политиках безопасности Windows, запрещающих взаимодействие между процессами.

Итоги и контрольный список

Подводя итог, если отладка веб-сервиса не работает, пройдите по следующему чек-листу:

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

← На главную