Как настроить отладку веб-сервиса 1С, опубликованного на IIS

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

Настройка отладки веб-сервисов в среде 1С:Предприятие, особенно при использовании веб-сервера IIS (Internet Information Services), часто вызывает трудности у разработчиков. Ситуация осложняется тем, что начиная с версии платформы 8.3.7, механизмы отладки претерпели значительные изменения. В данной статье мы подробно разберем, как обеспечить стабильную работу отладчика, пройдя путь от базовых настроек сервера до тонкого тюнинга конфигурационных файлов.

Шаг 1. Подготовка сервера приложений 1С

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

Для включения режима отладки необходимо убедиться, что служба 1C:Enterprise 8.3 Server Agent (или аналогичная для вашей версии) запущена с ключом -debug. Проверим это через реестр Windows:

  1. Откроем редактор реестра (regedit).
  2. Перейдем в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent....
  3. В параметре ImagePath добавим в конец строки ключ -debug.
  4. Перезапустим службу сервера 1С.

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

Шаг 2. Настройка файла публикации default.vrd

Файл default.vrd является ключевым связующим звеном между IIS и платформой 1С. Разберем, какие изменения нужно внести в этот файл. Обычно он находится в каталоге физического пути виртуального приложения IIS (например, C:\inetpub\wwwroot\MyWebService\).

Рассмотрим содержимое файла. Нам необходимо добавить или изменить атрибуты внутри тега point. Для старых версий платформы (до 8.3.7) и протокола TCP/IP достаточно было добавить атрибут debug="true". Однако для современных версий мы рекомендуем использовать более гибкую структуру:


<config xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        base="/MyBase">
    <point name="MyWebService"
           alias="ws1.1cws"
           enable="true">
        <debug enable="true" url="http://имя_вашего_пк:1550" />
    </point>
</config>

Выясним назначение атрибутов в теге debug:

Чтобы узнать точный адрес, который нужно вписать в url, откроем Конфигуратор, перейдем в меню Справка — О программе. В нижней части окна в разделе "Приложение" будет указан "Адрес отладчика". Именно его (вместе с протоколом и портом) следует скопировать в файл default.vrd.

Шаг 3. Переход на протокол HTTP

Проанализируем преимущества протокола HTTP перед TCP/IP. В современных реалиях, когда между разработчиком и сервером могут стоять брандмауэры или сложные сетевые правила, отладка по HTTP работает гораздо стабильнее.

Для активации этого режима выполним следующие действия в Конфигураторе:

  1. Зайдем в меню Сервис — Параметры.
  2. Перейдем на вкладку Отладка.
  3. Установим переключатель "Протокол отладки" в положение HTTP.
  4. В поле "Адрес сервера отладки" укажем адрес своего компьютера или выберем его из списка.

После смены протокола обязательно перезапустите Конфигуратор и выполните повторную публикацию веб-сервиса или вручную обновите файл default.vrd, как было описано выше.

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

Многие разработчики совершают ошибку, полагая, что точки останова сработают сразу после настройки файла. Однако Конфигуратор должен "знать", что он обязан перехватывать внешние вызовы.

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

  1. В Конфигураторе откроем меню Отладка — Подключение.
  2. Нажмем кнопку Настройка автоматического подключения.
  3. В появившемся списке установим флажок напротив пункта Веб-сервисы.
  4. Нажмем "ОК".

Теперь при вызове веб-сервиса сторонним приложением (например, SOAP UI или мобильным клиентом), 1С автоматически создаст фоновый сеанс и остановится на вашей точке останова.

Шаг 5. Права доступа и пул приложений IIS

Если после всех манипуляций отладка не "заводится", проанализируем права доступа. Веб-сервис в IIS исполняется от имени пользователя пула приложений (чаще всего это ApplicationPoolIdentity или IUSR).

Проверим следующие моменты:

Шаг 6. Брандмауэр и сетевые порты

Выясним причину возможной блокировки пакетов. Отладка требует открытых портов:

Рекомендуется временно отключить брандмауэр Windows, чтобы убедиться, что проблема не в нем. Если отладка заработает, добавьте соответствующее разрешающее правило для входящих соединений.

Итоговый чек-лист для проверки

Если отладка всё еще не работает, пройдемся по списку:

  1. Сервер 1С запущен с ключом -debug (для серверных баз).
  2. В default.vrd прописан тег <debug enable="true" ... />.
  3. В Конфигураторе выбран протокол HTTP (для версий 8.3.7+).
  4. Включено автоматическое подключение веб-сервисов.
  5. Точка останова установлена в модуле веб-сервиса (не в модуле объекта, а именно в методе, который вызывается).
  6. После всех изменений выполнен iisreset (перезапуск IIS) через командную строку от имени администратора.

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

← На главную