Администрирование · 10 мин
Как получить WSDL веб-сервиса 1С
Как получить WSDL веб-сервиса 1С: публикация на веб-сервере, формирование URL, WS-ссылки в конфигураторе, проверка доступности и решение типичных ошибок.
WSDL-описание веб-сервиса 1С формируется автоматически: достаточно опубликовать сервис на веб-сервере и обратиться к нему по специальному URL с параметром wsdl. Никаких отдельных файлов вручную создавать не нужно — платформа 1С:Предприятие сама генерирует XML-документ на основе описания веб-сервиса в конфигурации.
Получить WSDL обычно требуется в трёх ситуациях: при создании WS-ссылки в конфигураторе для вызова внешнего сервиса, при передаче описания сторонним разработчикам для интеграции и при проверке корректности публикации. Во всех случаях исходная точка одна — опубликованный веб-сервис и корректный адрес доступа к нему.
Ниже разобран полный цикл: от публикации сервиса на IIS или Apache до проверки WSDL в браузере и подключения его в конфигураторе. Отдельно описаны типичные ошибки — недоступность адреса, ошибки аутентификации и проблемы с прокси.
Что такое WSDL и зачем он нужен при работе с 1С
WSDL (Web Services Description Language) — это XML-документ, который описывает веб-сервис: какие операции он предоставляет, какие параметры принимает и возвращает, по какому адресу доступен. Для веб-сервиса 1С это описание строится на основе объекта метаданных «Web-сервис» и его операций, определённых в конфигураторе.
Без WSDL внешняя система не сможет корректно сформировать SOAP-запрос: ей неизвестны имена операций, типы параметров и пространства имён. Поэтому первым шагом любой интеграции через веб-сервисы является получение и анализ этого описания.
Важно понимать: WSDL не существует как постоянный файл в каталоге базы. Платформа генерирует его «на лету» при обращении к точке публикации с параметром wsdl. Если изменить состав операций веб-сервиса в конфигурации, описание изменится автоматически при следующем запросе — пересоздавать ничего не нужно.
Публикация веб-сервиса на веб-сервере
Прежде чем получать WSDL, сервис должен быть опубликован. Публикация выполняется из конфигуратора: меню «Администрирование» → «Публикация на веб-сервере». В диалоге указывается имя публикации, каталог, веб-сервер (IIS или Apache), а на вкладке «Web-сервисы» отмечаются флажками сервисы, которые нужно опубликовать.
Для файловой базы публикация также возможна, но веб-сервер всё равно обязателен — обращение к веб-сервису идёт по протоколу HTTP, а не напрямую к файлу базы. В клиент-серверном варианте публикация выполняется аналогично, платформа сама свяжет публикацию с нужной информационной базой кластера.
- 1Откройте конфигуратор под пользователем с правами администратора
- 2Выберите «Администрирование» → «Публикация на веб-сервере»
- 3Укажите имя публикации латиницей и каталог публикации
- 4На вкладке «Web-сервисы» отметьте нужные сервисы
- 5Нажмите «Опубликовать» и убедитесь, что файл default.vrd создан в каталоге публикации
После публикации в указанном каталоге появляется файл default.vrd — именно он содержит настройки публикации, включая список опубликованных веб-сервисов и точки подключения к базе. Если сервис не отвечает, первым делом проверяют содержимое этого файла и права доступа к каталогу.
Формирование URL для получения WSDL
Адрес WSDL строится по строгому шаблону: http://сервер/имя_публикации/ws/ИмяСервиса?wsdl. Здесь «сервер» — адрес машины с веб-сервером, «имя_публикации» — имя, заданное при публикации, «ИмяСервиса» — имя объекта метаданных веб-сервиса в конфигурации, а параметр ?wsdl указывает платформе вернуть описание вместо выполнения операции.
Например, если база опубликована под именем trade на сервере srv1, а веб-сервис называется Orders, адрес будет: http://srv1/trade/ws/Orders?wsdl. При использовании HTTPS и нестандартного порта они добавляются в адрес обычным образом: https://srv1:8443/trade/ws/Orders?wsdl.
Имя сервиса в URL должно точно совпадать с именем в конфигураторе, включая регистр в некоторых конфигурациях веб-серверов. Если сервис называется ExchangeData, то обращение к exchangedata на чувствительном к регистру сервере вернёт ошибку. При сомнениях имя копируют прямо из дерева метаданных.
Проверка и сохранение WSDL
Самый быстрый способ проверить доступность WSDL — открыть сформированный URL в браузере. Если публикация настроена с анонимным доступом, браузер сразу покажет XML-документ. Если включена аутентификация, появится запрос логина и пароля пользователя 1С — после ввода корректных учётных данных описание откроется.
Признак успеха — XML, начинающийся с элемента definitions (или wsdl:definitions) и содержащий блоки types, message, portType, binding и service. Внутри должны быть перечислены операции веб-сервиса с их параметрами. Если вместо этого отображается страница ошибки веб-сервера или пустой экран — публикация настроена некорректно.
Чтобы сохранить WSDL в файл, используют команду «Сохранить как» в браузере либо утилиту командной строки. Файл пригодится, если описание нужно передать стороннему разработчику или импортировать в среду, которая не имеет прямого доступа к серверу 1С.
curl -u Пользователь:Пароль -o service.wsdl "http://srv1/trade/ws/Orders?wsdl"Как проверить результат
Отображается XML с элементом definitions и списком операций
Ошибка 404, 500 или пустая страница
Перечислены все операции сервиса из конфигурации
Операций нет или список устарел после изменения конфигурации
После ввода логина и пароля описание открывается
Повторный запрос пароля или ошибка 401 при верных данных
Получение WSDL через WS-ссылку в конфигураторе
Если WSDL нужен для вызова внешнего веб-сервиса из кода 1С, описание подключают через объект метаданных «WS-ссылка». В конфигураторе добавляют новую WS-ссылку и в поле «URL» указывают адрес с параметром ?wsdl — конфигуратор сам обратится по адресу, загрузит описание и построит по нему структуру прокси-объектов.
Если сервер с описанием недоступен из конфигуратора (например, разработка ведётся в изолированной сети), вместо URL указывают путь к заранее сохранённому файлу service.wsdl. Результат идентичен, но при изменении сервиса файл придётся обновлять вручную, тогда как при подключении по URL достаточно обновить WS-ссылку.
После создания WS-ссылки в коде становятся доступны WSПрокси и типы данных сервиса. Это удобно для проверки: если WS-ссылка успешно загрузила описание, значит, WSDL корректен и доступен, а значит, и внешние потребители смогут его получить.
Сравнение вариантов
Актуальное описание при каждом обновлении WS-ссылки; требует сетевого доступа к серверу из конфигуратора
Работает без доступа к серверу; при изменении сервиса файл нужно сохранять и переподключать вручную
Типичные ошибки и их устранение
Ошибка 404 означает, что по указанному адресу публикация не найдена: неверно имя публикации, каталог не привязан к веб-серверу или сервис не отмечен при публикации. Проверяют имя в диалоге публикации и наличие записи о сервисе в default.vrd.
Ошибка 401 или постоянный запрос пароля указывает на проблему аутентификации: пользователь не существует в базе, у него нет права на использование веб-сервиса или веб-сервер настроен на тип аутентификации, несовместимый с клиентом. Проверяют роли пользователя — для вызова сервиса нужны соответствующие права.
Ошибка 500 чаще всего связана с тем, что веб-сервер не может подключиться к базе 1С: не запущен сервер 1С, неверные параметры подключения в default.vrd или недостаточно прав у учётной записи, под которой работает пул приложений IIS. Диагностику начинают с журнала веб-сервера и технологического журнала платформы.
Ограничения и безопасность
WSDL раскрывает структуру сервиса любому, кто может обратиться к адресу публикации. Поэтому для сервисов, доступных за пределами локальной сети, обязательны HTTPS и аутентификация, а список публикуемых сервисов должен быть минимальным — публикуют только то, что реально используется интеграциями.
Ещё одно ограничение: WSDL описывает только веб-сервисы SOAP. HTTP-сервисы 1С (REST-подобные) не имеют автоматически генерируемого WSDL — для них документацию готовят отдельно, например в формате OpenAPI, вручную.
Что важно запомнить
WSDL веб-сервиса 1С формируется автоматически по адресу http://сервер/публикация/ws/ИмяСервиса?wsdl после корректной публикации. Проверку выполняют в браузере, для интеграций описание подключают через WS-ссылку по URL или из файла. Доступ к опубликованному сервису всегда защищают аутентификацией и HTTPS.
Частые вопросы
Почему браузер показывает ошибку 404 при правильном адресе?
Чаще всего сервис не отмечен флажком на вкладке «Web-сервисы» при публикации или имя публикации в URL не совпадает с указанным в конфигураторе. Откройте файл default.vrd в каталоге публикации и проверьте, есть ли там секция point с именем нужного сервиса.
Можно ли получить WSDL без веб-сервера?
Нет, обращение к веб-сервису и его описанию идёт по HTTP, поэтому веб-сервер (IIS или Apache) обязателен. Альтернатива — поднять публикацию на локальном веб-сервере машины разработчика и получить описание по адресу localhost.
Как передать WSDL стороннему разработчику, если доступ к серверу давать нельзя?
Сохраните описание в файл через браузер или curl и передайте файл. Разработчик сможет сгенерировать по нему клиентский код, но фактический вызов операций всё равно потребует сетевого доступа к опубликованному сервису и учётных данных.
Обновляется ли WSDL после изменения веб-сервиса в конфигурации?
Да, описание генерируется динамически при каждом обращении, поэтому после обновления конфигурации новый состав операций появится в WSDL автоматически. Перепублlicовать сервис обычно не требуется, но клиентам нужно обновить свои прокси-классы.
Почему при подключении WS-ссылки возникает ошибка, хотя WSDL открывается в браузере?
Конфигуратор может работать под другим пользователем ОС или через другой прокси, чем браузер. Проверьте настройки прокси в конфигураторе и убедитесь, что учётные данные для аутентификации указаны в свойствах WS-ссылки.
Есть ли WSDL у HTTP-сервисов 1С?
Нет, автоматическое описание формируется только для веб-сервисов SOAP. HTTP-сервисы описывают вручную в сопроводительной документации или с помощью спецификации OpenAPI, составленной отдельно.