К статье
Практический материал

Администрирование · 9 мин

Как узнать адрес веб-сервиса 1С

Где найти URL веб-сервиса 1С: в конфигураторе, в файле публикации default.vrd, в настройках IIS и Apache. Проверка WSDL и типичные ошибки.

Адрес веб-сервиса 1С нужен в трёх типовых ситуациях: при настройке обмена между базами, при подключении внешнего приложения к опубликованному сервису и при диагностике ошибки «сервис недоступен». Во всех случаях URL складывается из трёх частей: адреса веб-сервера, имени публикации базы и имени самого сервиса, заданного в конфигурации.

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

Ниже разобраны все рабочие способы: через конфигуратор, через файл default.vrd, через консоли IIS и Apache, а также проверка адреса через браузер и отладку. Материал подходит для 1С:Предприятие 8.3, опубликованного на IIS или Apache.

Из каких частей состоит адрес веб-сервиса 1С

Типовой URL веб-сервиса выглядит так: http://server/base/ws/ServiceName. Здесь server — имя или IP-адрес компьютера с веб-сервером, base — виртуальный каталог публикации информационной базы, ws — служебный префикс, по которому 1С отличает обращение к веб-сервисам от обращения к HTTP-сервисам (hs) и к тонкому клиенту.

Если сервис опубликован с указанием пространства имён, для вызова методов потребуется ещё и оно, но для проверки доступности достаточно базового URL. Для защищённого соединения протокол меняется на https, а к адресу может добавиться нестандартный порт, например :8443.

Как найти имя сервиса в конфигураторе

Откройте конфигуратор под пользователем с правами администратора и разверните дерево конфигурации: Общие → Web-сервисы. В списке будут все веб-сервисы, определённые в конфигурации. Имя объекта в дереве — это и есть та часть URL, которая идёт после /ws/.

Откройте свойства нужного сервиса. На закладке «Прочее» указано пространство имён (например, http://company.ru/erp) и имя файла публикации. Пространство имён не входит в URL, но обязательно для корректного вызова операций: внешняя система указывает его в SOAP-запросе.

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

Как узнать имя публикации через default.vrd

При публикации базы на веб-сервере 1С создаёт файл default.vrd в каталоге публикации. Именно этот файл описывает, какие сервисы доступны и под какими именами. Путь к каталогу зависит от веб-сервера: для IIS это обычно подкаталог в C:\inetpub\wwwroot\, для Apache — каталог, указанный в директиве публикации.

Откройте default.vrd любым текстовым редактором. Строка вида <ws pointEnableCommon="true"> с вложенными элементами <point name="ИмяСервиса" ...> показывает список опубликованных веб-сервисов. Атрибут name — это имя точки подключения, которое подставляется в URL после /ws/.

Имя самой публикации (часть URL между сервером и /ws/) совпадает с именем каталога, в котором лежит default.vrd. Например, если файл находится в C:\inetpub\wwwroot\trade\default.vrd, то адрес сервиса начинается с http://server/trade/ws/.

xml
<?xml version="1.0" encoding="UTF-8"?>
<point name="trade" xmlns="http://v8.1c.ru/8.3/virtual-resource-system">
  <ws pointEnableCommon="true">
    <point name="Exchange" alias="ws/Exchange"/>
  </ws>
</point>

Как посмотреть публикацию в IIS и Apache

Просмотр в диспетчере служб IIS

Откройте «Диспетчер служб IIS» (команда inetmgr). В дереве слева разверните узел сервера → «Сайты» → нужный сайт. Каждое приложение или виртуальный каталог внутри сайта — это отдельная публикация 1С. Имя узла в дереве и есть имя публикации в URL.

Выделив приложение, проверьте через пункт «Основные параметры» физический путь — там должен лежать default.vrd. Через «Проверка подлинности» убедитесь, какие методы аутентификации включены: от этого зависит, запросит ли сервис логин и пароль при обращении.

Просмотр в конфигурации Apache

Для Apache публикации описаны в файле httpd.conf. Найдите блоки <Directory> и директивы Alias, добавленные мастером публикации 1С. Строка вида Alias "/trade" "C:/pub/trade/" означает, что база доступна по адресу http://server/trade/, а веб-сервисы — по http://server/trade/ws/ИмяСервиса.

Если публикаций несколько, каждая будет иметь свой Alias и свой каталог с default.vrd. После любых правок httpd.conf требуется перезапуск службы Apache, иначе изменения не применятся.

Как проверить адрес через браузер

Самый быстрый способ убедиться, что адрес собран правильно, — открыть в браузере URL с суффиксом ?wsdl: http://server/trade/ws/Exchange?wsdl. Если всё настроено корректно, сервер вернёт XML-документ с описанием сервиса. Браузер может запросить логин и пароль пользователя 1С — это нормально при включённой аутентификации.

Ошибка 404 означает, что неверно имя публикации или имя сервиса. Ошибка 500 чаще указывает на проблему внутри 1С: сервис не опубликован в default.vrd, база недоступна или у пользователя нет прав. Пустая страница без ?wsdl — ожидаемое поведение: без этого параметра сервис ждёт SOAP-запрос, а не обычный GET.

Контрольные точки

Как проверить результат

Открытие URL с ?wsdl
Норма

Возвращается XML с описанием сервиса

Тревожный признак

Ошибка 404 — проверьте имя публикации и сервиса

Запрос без ?wsdl
Норма

Ошибка о неверном запросе или пустой ответ

Тревожный признак

404 или перенаправление на страницу входа

Аутентификация
Норма

Браузер запрашивает логин и пароль 1С

Тревожный признак

Доступ без запроса при закрытой базе — риск безопасности

Как узнать адрес программно и при отладке

Если веб-сервис вызывается из другой базы 1С, адрес часто зашит в настройках обмена или в константах. Проверьте функциональность «Настройки обмена данными», параметры WS-ссылок (Общие → WS-ссылки в конфигураторе) и константы, связанные с интеграцией. WS-ссылка хранит URL источника WSDL — это и есть искомый адрес с суффиксом ?wsdl.

При отладке внешнего подключения полезно посмотреть фактические обращения через журнал веб-сервера: логи IIS лежат в C:\inetpub\logs\LogFiles\, логи Apache — в каталоге, заданном директивой ErrorLog/CustomLog. По строкам запросов видно, по какому URL реально обращается клиент и какой код ответа получает.

Типичные ошибки
01
Путать веб-сервис (/ws/) и HTTP-сервис (/hs/) — адрес собран верно, но вызывается не тот обработчик
02
Использовать имя базы вместо имени публикации — они совпадают не всегда
03
Забыть опубликовать сервис галочкой в диалоге публикации — в default.vrd его нет, и сервер отвечает 404
04
Проверять адрес из браузера без учёта аутентификации и делать вывод о недоступности сервиса

Ограничения и меры безопасности

Веб-сервис, доступный без аутентификации, — прямой канал утечки данных из базы. Убедитесь, что в настройках веб-сервера включена проверка подлинности, а в 1С создан отдельный пользователь с минимально необходимыми правами только на вызываемые операции. Не используйте для интеграций учётную запись администратора.

Для доступа извне локальной сети применяйте HTTPS: логин и пароль в SOAP-запросах передаются в открытом виде и легко перехватываются в незашифрованном канале. Ограничьте доступ к публикации по IP-адресам средствами веб-сервера, если круг потребителей сервиса известен заранее.

Итог

Что важно запомнить

Адрес веб-сервиса 1С собирается из трёх частей: сервер + имя публикации + /ws/ИмяСервиса. Имя сервиса смотрят в конфигураторе, имя публикации — в default.vrd или в консоли веб-сервера, а корректность адреса проверяют запросом с ?wsdl в браузере.

Частые вопросы

Можно ли узнать адрес веб-сервиса, не имея доступа к серверу?

Частично. Имя сервиса видно в конфигураторе, а имя публикации часто совпадает с адресом, по которому пользователи открывают базу через браузер. Если веб-клиент работает по адресу http://server/trade, веб-сервисы обычно доступны по http://server/trade/ws/ИмяСервиса. Точный список опубликованных сервисов без доступа к default.vrd получить нельзя.

Почему ?wsdl возвращает ошибку, хотя сервис есть в конфигураторе?

Наличие объекта в конфигурации не означает его публикацию. Откройте диалог «Публикация на веб-сервере» и проверьте, что на закладке «Web-сервисы» нужный сервис отмечен флажком, затем выполните публикацию заново. Также убедитесь, что после изменения конфигурации выполнено обновление конфигурации базы данных.

Чем отличается адрес веб-сервиса от адреса HTTP-сервиса?

Веб-сервисы работают по протоколу SOAP и доступны по префиксу /ws/, HTTP-сервисы обрабатывают произвольные REST-подобные запросы и доступны по /hs/ с шаблоном URL, заданным в свойствах HTTP-сервиса. Это разные механизмы, и подставлять один адрес вместо другого нельзя.

Как узнать адрес, если база опубликована на сервере 1С:Фреш или в облаке?

В облачных сервисах адрес публикации выдаёт оператор сервиса, и прямого доступа к default.vrd и настройкам веб-сервера у пользователя нет. Адрес веб-сервиса уточняйте в личном кабинете сервиса или в документации оператора; имя сервиса по-прежнему видно в конфигураторе.

Нужен ли отдельный порт для веб-сервиса?

Нет. Веб-сервисы используют тот же порт, что и вся публикация базы: 80 для HTTP, 443 для HTTPS либо нестандартный порт, указанный в настройках сайта IIS или Apache. Достаточно, чтобы этот порт был открыт в брандмауэре между клиентом и сервером.