Настройка отладки веб-сервисов в среде 1С:Предприятие, особенно при использовании веб-сервера IIS (Internet Information Services), часто вызывает трудности у разработчиков. Ситуация осложняется тем, что начиная с версии платформы 8.3.7, механизмы отладки претерпели значительные изменения. В данной статье мы подробно разберем, как обеспечить стабильную работу отладчика, пройдя путь от базовых настроек сервера до тонкого тюнинга конфигурационных файлов.
Прежде всего, проанализируем состояние службы сервера 1С:Предприятие. Если ваша информационная база работает в клиент-серверном варианте, сервер приложений должен быть запущен в специальном режиме. По умолчанию отладка на сервере выключена для экономии ресурсов.
Для включения режима отладки необходимо убедиться, что служба 1C:Enterprise 8.3 Server Agent (или аналогичная для вашей версии) запущена с ключом -debug. Проверим это через реестр Windows:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent....ImagePath добавим в конец строки ключ -debug.Важно: Если база файловая, этот шаг пропускается, так как в этом случае роль сервера выполняет модуль расширения веб-сервера, и настройки будут производиться непосредственно в файле публикации.
Файл 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:
enable="true" — включает сам механизм отладки для данного веб-сервиса.url="http://имя_вашего_пк:1550" — указывает адрес отладчика. Это критически важно для протокола HTTP.Чтобы узнать точный адрес, который нужно вписать в url, откроем Конфигуратор, перейдем в меню Справка — О программе. В нижней части окна в разделе "Приложение" будет указан "Адрес отладчика". Именно его (вместе с протоколом и портом) следует скопировать в файл default.vrd.
Проанализируем преимущества протокола HTTP перед TCP/IP. В современных реалиях, когда между разработчиком и сервером могут стоять брандмауэры или сложные сетевые правила, отладка по HTTP работает гораздо стабильнее.
Для активации этого режима выполним следующие действия в Конфигураторе:
После смены протокола обязательно перезапустите Конфигуратор и выполните повторную публикацию веб-сервиса или вручную обновите файл default.vrd, как было описано выше.
Многие разработчики совершают ошибку, полагая, что точки останова сработают сразу после настройки файла. Однако Конфигуратор должен "знать", что он обязан перехватывать внешние вызовы.
Рассмотрим алгоритм настройки автоподключения:
Теперь при вызове веб-сервиса сторонним приложением (например, SOAP UI или мобильным клиентом), 1С автоматически создаст фоновый сеанс и остановится на вашей точке останова.
Если после всех манипуляций отладка не "заводится", проанализируем права доступа. Веб-сервис в IIS исполняется от имени пользователя пула приложений (чаще всего это ApplicationPoolIdentity или IUSR).
Проверим следующие моменты:
bin установленной платформы 1С.C:\Windows\Temp).True.Выясним причину возможной блокировки пакетов. Отладка требует открытых портов:
1560–1591.1550 или 1560).Рекомендуется временно отключить брандмауэр Windows, чтобы убедиться, что проблема не в нем. Если отладка заработает, добавьте соответствующее разрешающее правило для входящих соединений.
Если отладка всё еще не работает, пройдемся по списку:
-debug (для серверных баз).default.vrd прописан тег <debug enable="true" ... />.iisreset (перезапуск IIS) через командную строку от имени администратора.Соблюдение этих шагов позволяет решить проблему отладки веб-сервисов в 99% случаев, обеспечивая комфортную разработку и поиск ошибок в интеграционных решениях.