Разработка и Конфигурация · 9 мин
Как добавить WS-ссылки в 1С: практическое руководство
Как добавить WS-ссылки в 1С: создание WS-ссылки в конфигураторе, настройка WSDL, прокси-объектов, аутентификации и проверка работы веб-сервиса.
WS-ссылка в 1С — это объект метаданных, который позволяет конфигурации обращаться к внешнему веб-сервису по протоколу SOAP. Платформа читает WSDL-описание сервиса, строит по нему прокси-объект и даёт разработчику возможность вызывать операции удалённого сервиса как обычные методы встроенного языка. Это стандартный способ интеграции 1С с сайтами, CRM, банковскими системами и корпоративными шинами данных.
Ошибки при добавлении WS-ссылок встречаются часто: неверный адрес WSDL, отсутствие доступа по сети, неподдерживаемые типы данных или проблемы с аутентификацией. Ниже разобран полный цикл работы — от получения адреса WSDL до проверки вызова операции, с разбором типичных проблем и альтернативных подходов.
Что такое WS-ссылка и когда она нужна
WS-ссылка — это статическое описание внешнего веб-сервиса, хранящееся в составе конфигурации. При обновлении конфигурации платформа загружает WSDL-документ и формирует на его основе типы XDTO и набор доступных операций. Разработчику не нужно вручную разбирать XML-сообщения: платформа сама сериализует параметры и разбирает ответ.
WS-ссылки оправданы, когда сторонняя система предоставляет именно SOAP-интерфейс и публикует WSDL-описание. Типичные сценарии: обмен с сайтом на 1С-Битрикс, интеграция с банковскими сервисами, обращение к государственным информационным системам, связь с корпоративной ESB-шиной. Если внешняя система предлагает REST API, то вместо WS-ссылок обычно удобнее использовать HTTPСоединение и HTTPЗапрос.
Подготовка: что проверить до добавления ссылки
До открытия конфигуратора убедитесь, что WSDL-документ доступен. Откройте его адрес в браузере с той машины, где работает сервер 1С или клиент, — документ должен отображаться как XML без ошибок авторизации и сертификатов. Если браузер запрашивает логин и пароль, эти же учётные данные потребуются и платформе.
Проверьте сетевые ограничения: файрвол, прокси-сервер и антивирус могут блокировать исходящие запросы от процесса сервера 1С (rphost) или толстого клиента. Если веб-сервис работает по HTTPS с самоподписанным сертификатом, сертификат должен быть установлен в доверенные корневые на машине, выполняющей вызов.
Можно добавлять WS-ссылку в конфигураторе
Подготовьте учётные данные для WSПрокси
Установите сертификат в доверенные на сервере 1С
Согласуйте доступ с администратором сети
Добавление WS-ссылки в конфигураторе
Откройте конфигурацию в конфигураторе, в дереве метаданных перейдите в ветку «Общие → WS-ссылки» и добавьте новый объект. В свойствах укажите имя ссылки (латиницей, без пробелов — оно будет использоваться в коде) и URL WSDL-документа. После сохранения платформа загрузит описание и создаст соответствующие XDTO-пакеты.
Если WSDL-файл получен от поставщика сервиса локально, его можно указать через путь к файлу, но предпочтительнее URL: при обновлении сервиса вы сможете обновить описание ссылкой «Обновить» в контекстном меню объекта. Имя WS-ссылки выбирайте осмысленное — например, по имени системы, с которой идёт интеграция.
- 1Проверьте доступность WSDL в браузере с сервера 1С
- 2Откройте ветку «Общие → WS-ссылки» и добавьте новый объект
- 3Укажите имя ссылки и URL WSDL-описания
- 4Сохраните и обновите конфигурацию базы данных
- 5Напишите код вызова через WSПрокси и проверьте результат
Вызов веб-сервиса из кода
Обращение к сервису выполняется через объект WSПрокси. Сначала создаётся WSОпределения по WS-ссылке, затем прокси с указанием пространства имён, имени сервиса и порта — эти данные берутся из WSDL. После этого операции сервиса вызываются как методы прокси, а параметры передаются как значения XDTO или простые типы.
Определения = Новый WSОпределения(WSСсылки.ИмяСсылки);
Прокси = Новый WSПрокси(Определения, "http://example.org/ws", "Service", "ServiceSoap");
Прокси.Пользователь = "user";
Прокси.Пароль = "password";
Результат = Прокси.ПолучитьДанные(Параметр);Пространство имён, имя сервиса и порт удобно посмотреть прямо в дереве конфигурации: при раскрытии WS-ссылки платформа показывает доступные точки подключения и операции. Таймаут соединения задаётся свойством прокси — для длительных операций увеличьте его, иначе вызов завершится ошибкой по времени.
Аутентификация и безопасность
Чаще всего веб-сервисы используют Basic-аутентификацию: логин и пароль задаются свойствами Пользователь и Пароль объекта WSПрокси. Никогда не храните пароль открытым текстом в коде общих модулей — используйте безопасное хранилище, константы с ограниченным доступом или настройки обмена, доступные только администраторам интеграции.
Если сервис требует сертификат клиента или WS-Security заголовки, стандартного прокси может оказаться недостаточно — в таких случаях запросы формируют вручную через HTTPСоединение с самостоятельной сборкой SOAP-конверта. Это сложнее, но даёт полный контроль над заголовками сообщения.
Типичные ошибки и способы их устранения
Самая частая ошибка — «Ошибка при создании объекта WSОпределения»: платформа не смогла загрузить или разобрать WSDL. Причины: недоступность адреса, ошибка сертификата, невалидный XML или неподдерживаемые конструкции схемы (например, редкие расширения XSD). Проверьте документ в браузере и валидаторе, при необходимости запросите у поставщика сервиса упрощённую версию описания.
Вторая группа проблем — ошибки вызова операций: «Операция не найдена», несоответствие типов параметров, SOAP-фолты от сервера. Здесь помогает сверка пространства имён и имени порта с WSDL, а также анализ текста SOAP-ответа: он обычно содержит код и описание ошибки на стороне сервиса.
Проверка результата и обновление описания
После добавления ссылки и написания кода выполните тестовый вызов на копии базы: оберните его в попытку/исключение и запишите текст ошибки в журнал регистрации. Успешный признак — метод возвращает объект ожидаемого типа, а журнал регистрации не содержит ошибок соединения. Для диагностики полезно временно выводить полученный XML-ответ.
Веб-сервисы со временем меняются: добавляются операции, меняются типы. Следите за уведомлениями поставщика сервиса и обновляйте WS-ссылку через пункт «Обновить» в контекстном меню объекта конфигурации, после чего перепроверьте все места вызовов — сигнатуры методов могли измениться.
Как проверить результат
Отображается XML-документ
Ошибка доступа, сертификата или пустая страница
Видны операции и типы сервиса
Ошибка загрузки описания при обновлении
Метод возвращает данные, журнал чист
Исключение, SOAP-фолт, таймаут
Описание обновляется без ошибок
Конфликты типов, исчезнувшие операции
Альтернативы WS-ссылкам
WS-ссылка — не единственный способ работы с SOAP из 1С. Можно создать WSОпределения динамически, указав URL прямо в коде, без объекта метаданных: это гибче при частой смене адресов, но лишает контроля типов на этапе разработки. Для REST-сервисов используйте HTTPСоединение — это легче и не требует WSDL вообще.
Сравнение вариантов
Подходит для стабильных SOAP-сервисов; даёт контроль типов, но требует обновления при изменении WSDL
Гибко при смене адресов, но нет проверки типов при разработке и адрес нужно где-то хранить
Полный контроль над заголовками и WS-Security, но высокая трудоёмкость разработки и отладки
Часто задаваемые вопросы
Можно ли добавить WS-ссылку, если WSDL доступен только по логину и паролю?
Да, но конфигуратор может не загрузить описание напрямую. В этом случае сохраните WSDL в файл, добавьте ссылку из файла, а логин и пароль укажите в коде при создании WSПрокси — для вызова операций этого достаточно.
Чем WS-ссылка отличается от публикации веб-сервиса 1С?
Это противоположные механизмы. WS-ссылка позволяет 1С вызывать чужой сервис, а публикация веб-сервиса на веб-сервере открывает операции самой 1С для внешних систем.
Почему возникает ошибка «Ошибка разбора WSDL»?
Чаще всего документ содержит конструкции, которые платформа не поддерживает, или по указанному адресу возвращается не WSDL, а HTML-страница с ошибкой. Откройте адрес в браузере и убедитесь, что возвращается именно XML-описание.
Как вызвать операцию без WS-ссылки в конфигурации?
Создайте WSОпределения, передав URL WSDL первым параметром конструктора, и далее работайте с WSПрокси как обычно. Учтите, что описание будет загружаться при каждом обращении, что замедляет работу.
Где посмотреть пространство имён и имя порта для WSПрокси?
Раскройте WS-ссылку в дереве конфигурации — платформа показывает точки подключения, сервисы и операции. Эти же данные есть в самом WSDL-документе в элементах service и port.
Что важно запомнить
WS-ссылка добавляется в конфигураторе через «Общие → WS-ссылки» с указанием URL WSDL. Вызов выполняется через WSПрокси с заданными учётными данными. Перед работой проверьте доступность WSDL из сети сервера 1С, храните пароли безопасно и тестируйте вызовы на копии базы.