Разработка и Конфигурация · 8 мин
WS-ссылки в 1С: назначение, настройка и проверка
Разбираем, что такое WS-ссылки в 1С, как добавить ссылку на веб-сервис, проверить её работу, типичные ошибки подключения и способы их устранения.
WS-ссылка (web-ссылка) в 1С — это объект конфигурации, который хранит адрес внешнего веб-сервиса и позволяет платформе 1С:Предприятие обращаться к нему по протоколу SOAP. По сути, это «пульт управления» чужим сервисом: вы указываете, где находится описание сервиса (WSDL-файл), а платформа автоматически создаёт прокси-объект, через который можно вызывать операции веб-сервиса из встроенного языка.
WS-ссылки нужны в сценариях интеграции: получение курсов валют с внешнего сервера, проверка контрагентов по ИНН через сервис ФНС, обмен данными с корпоративными системами, CRM, сайтами и банковскими сервисами. Без WS-ссылки пришлось бы вручную формировать XML-запросы и разбирать ответы — ссылка избавляет от этой рутины.
Важно понимать, что WS-ссылка — это именно клиентская часть: 1С выступает потребителем чужого веб-сервиса. Если нужно, чтобы сама 1С отдавала данные наружу, используется другой механизм — публикация собственных веб-сервисов на веб-сервере. Эти две задачи часто путают, но настраиваются они по-разному.
Что такое WS-ссылка и из чего она состоит
WS-ссылка находится в дереве конфигурации в ветке «Общие» → «WS-ссылки». У объекта два ключевых свойства: «URL файла описания» — адрес WSDL-документа веб-сервиса, и «Точка подключения» — фактический адрес, по которому отправляются запросы (обычно он берётся из WSDL автоматически).
WSDL (Web Services Description Language) — это XML-файл, в котором сервис описывает свои операции, типы входных и выходных параметров и правила обращения. Когда вы добавляете WS-ссылку и указываете URL, конфигуратор скачивает этот файл и строит по нему модель сервиса: список операций, имена параметров, типы данных. Именно поэтому при недоступном WSDL-файле ссылку невозможно создать — платформе неоткуда взять описание.
Когда использовать WS-ссылку, а когда — альтернативы
WS-ссылка оправдана, если внешняя система предоставляет именно SOAP-сервис с WSDL-описанием. Это характерно для корпоративных интеграций, государственных сервисов и старых банковских API. Если же сервис работает по REST/JSON (что сейчас встречается чаще), WS-ссылка не поможет — нужен объект HTTPСоединение и ручная работа с запросами.
Способы интеграции в 1С
Подходит для SOAP-сервисов с WSDL. Платформа сама генерирует типы и проверяет параметры. Не работает с REST/JSON.
Универсальный вариант для REST API и произвольных HTTP-запросов. Требует ручной сборки запросов и разбора ответов.
Используются, когда 1С сама должна принимать запросы извне, а не обращаться к чужому сервису.
Как добавить WS-ссылку в конфигурацию
Работа выполняется в конфигураторе и требует права на изменение конфигурации. Порядок действий следующий.
- 1Откройте конфигуратор, в дереве конфигурации разверните «Общие» → «WS-ссылки».
- 2Нажмите «Добавить» и задайте имя ссылки, например СервисКурсовВалют.
- 3В свойстве «URL файла описания» укажите адрес WSDL, например http://example.com/service?wsdl.
- 4Сохраните конфигурацию — платформа проверит доступность WSDL и построит модель сервиса.
- 5Обновите конфигурацию базы данных (F7), чтобы ссылка стала доступна в режиме предприятия.
Если при сохранении появляется ошибка «не удалось загрузить определение сервиса», проверьте: открывается ли URL в браузере с того же компьютера, нет ли блокировки файрволом или прокси. Для HTTPS-адресов дополнительно может потребоваться корректная установка сертификатов.
Как вызвать веб-сервис из кода
После создания ссылки обращение к сервису выполняется через глобальный контекст WSСсылки. Сначала создаётся прокси-объект, затем вызывается нужная операция с параметрами.
Прокси = WSСсылки.СервисКурсовВалют.СоздатьWSПрокси("http://example.com/", "CurrencyService", "CurrencyServiceSoap");
Результат = Прокси.GetRate("USD");
Сообщить(Результат);Параметры метода СоздатьWSПрокси — URI пространства имён, имя сервиса и имя точки подключения — берутся из WSDL-описания. Их можно подсмотреть, открыв WSDL-файл в браузере: ищите атрибуты targetNamespace, name элемента service и name элемента port. Ошибка в любом из трёх значений приводит к исключению при выполнении.
Проверка работы и диагностика проблем
Основной признак корректной настройки — вызов операции возвращает ожидаемые данные без исключений. Если что-то идёт не так, диагностику удобно вести по шагам от сети к коду.
Как проверить результат
URL открывается в браузере и показывает XML-описание
Таймаут, ошибка 404 или 403 — проблема с сетью или адресом
СоздатьWSПрокси выполняется без исключения
Ошибка о неверном пространстве имён или точке подключения
Возвращаются данные ожидаемого типа
SOAP-ошибка от сервера — проверьте параметры и авторизацию
Для отладки полезно включить технологический журнал с событием WEBS или использовать внешний прокси-сниффер, чтобы увидеть фактический SOAP-запрос и ответ. Так можно отличить ошибку в своём коде от ошибки на стороне сервиса.
Типичные ошибки при работе с WS-ссылками
Ограничения и безопасность
У WS-ссылок есть ограничения, о которых стоит знать заранее. Ссылка жёстко привязана к структуре WSDL на момент добавления: если поставщик сервиса изменил описание (добавил обязательные параметры, переименовал операции), код может перестать работать, и ссылку потребуется пересоздать. Поэтому при обновлении внешних сервисов интеграцию нужно тестировать заново.
С точки зрения безопасности не передавайте через веб-сервисы персональные данные и коммерческую информацию по незашифрованному HTTP, если есть вариант HTTPS. Логины и пароли к сервисам не следует зашивать прямо в код — храните их в защищённом хранилище или константах с ограниченным доступом.
Что важно запомнить
WS-ссылка — это клиентская ссылка на SOAP-сервис с WSDL-описанием. Создаётся в конфигураторе, используется через WSСсылки и СоздатьWSПрокси. Для REST API подходит HTTPСоединение, а вызовы внешних сервисов лучше выполнять в фоне с таймаутом и обработкой ошибок.
Частые вопросы о WS-ссылках
Чем WS-ссылка отличается от веб-сервиса в 1С?
WS-ссылка — это подключение к чужому сервису: 1С выступает клиентом. Веб-сервис в конфигурации — наоборот, механизм, при котором 1С сама предоставляет операции внешним системам через публикацию на веб-сервере. Это встречные направления одной технологии.
Можно ли создать WS-ссылку без конфигуратора?
Да, программно — через объект WSСсылкаМенеджер или создание WSОпределения непосредственно из URL WSDL с последующим созданием WSПрокси. Такой подход используют, когда адрес сервиса должен настраиваться пользователем без изменения конфигурации.
Почему возникает ошибка «не удалось создать прокси»?
Чаще всего неверно указаны пространство имён, имя сервиса или имя точки подключения в СоздатьWSПрокси. Откройте WSDL-файл и сверьте значения targetNamespace, имена элементов service и port. Реже причина — изменившееся описание сервиса у поставщика.
Работают ли WS-ссылки через прокси-сервер?
Да, но настройки прокси должны быть заданы: либо в параметрах создания прокси (объект ИнтернетПрокси), либо использоваться системные настройки. Если WSDL доступен в браузере, а из 1С нет — первым делом проверяйте настройки прокси и файрвола на сервере 1С.
Что делать, если сервис перешёл с SOAP на REST?
WS-ссылка с REST не работает. Интеграцию придётся переписать на HTTPСоединение: формировать HTTPЗапрос с нужными заголовками и телом (обычно JSON), отправлять методом ВызватьHTTPМетод и разбирать ответ штатными средствами работы с JSON.
Как задать таймаут для вызова веб-сервиса?
Таймаут передаётся параметром метода СоздатьWSПрокси (в секундах). Если его не указать, используется значение по умолчанию, которое может быть слишком большим для интерактивных сценариев. Для вызовов из пользовательских операций разумно ставить таймаут в несколько секунд и оборачивать вызов в Попытка/Исключение.