Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Использование XDTO для описания типов параметров и возвращаемых значений Web-сервисов
Дальше: Пример реализации Web-сервиса

Работа с Web-сервисами сторонних поставщиков

Система «1С:Предприятие» может использовать Web-сервисы, предоставляемые другими поставщиками, следующими способами:

При использовании статической ссылки система «1С:Предприятие» получает описание Web-сервиса поставщика только один раз, при создании ссылки. За счет этого достигается большая скорость работы.

При использовании динамической ссылки описание Web-сервиса получается каждый раз при вызове Web-сервиса. Скорость работы при этом уменьшается, но зато такой подход обеспечивает актуальность описания Web-сервиса поставщика. В случае же использования статических ссылок для получения актуального описания Web-сервиса требуется выполнить повторный импорт WSDL-описания средствами конфигуратора и затем сохранить измененную конфигурацию.

Например, для Web-сервиса с URI пространства имен http://www.MyCompany.ru/shipment, именем ДанныеРасходнойНакладной и именем файла публикации Shipment.1cws статическая ссылка создается путем импорта WSDL-описания опубликованного сервиса на основе URLhttp://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl. А создание WS-прокси на основании WS-ссылки будет выглядеть следующим образом (листинг 1.135).

Листинг 1.135. Использование статической WS-ссылки

// Создать WS-прокси на основании WS-ссылки.

Прокси = WSСсылки.ДанныеРасходнойНакладной.СоздатьWSПрокси("http://www.MyCompany.ru/shipment", "ДанныеРасходнойНакладной", "ДанныеРасходнойНакладнойSoap");

При использовании динамической ссылки на этот Web-сервис WS-прокси создается на основании WS-определения (листинг 1.136).

Листинг 1.136. Использование динамической WS-ссылки

// Создать WS-прокси на основании WS-определения.

Определение = Новый WSОпределения("http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl");

Прокси = Новый WSПрокси(Определение, "http://www.MyCompany.ru/shipment", "ДанныеРасходнойНакладной", "ДанныеРасходнойНакладнойSoap");

На практике бывают ситуации, когда один и тот же Web-сервис предоставляется по разным адресам (URL), однако имеет абсолютно одинаковое описание (WSDL). Например, когда используется тиражируемый сервис, выполняющий некоторую функцию. При этом адрес сервиса может быть различным. В этом случае можно использовать комбинированный способ. То есть сначала загрузить в конфигурацию описание Web-сервиса (добавить в дерево объектов конфигурации статическую ссылку на Web-сервис), а затем во время использования указать конкретный адрес, по которому расположен Web-сервис.

Например, если адрес реального расположения сервиса отличается от адреса, который использовался во время загрузки описания Web-сервиса в конфигурацию, то можно предусмотреть ввод адреса конкретного экземпляра сервиса в настройках прикладного решения, и затем этот новый адрес явно указать при создании объекта WSПрокси (листинг 1.137).

Листинг 1.137. Комбинированный способ на основе статической ссылки

// Создать WS прокси на основании ссылки.

Прокси = WSСсылки.ДанныеРасходнойНакладной.СоздатьWSПрокси("http://www.MyCompany.ru/shipment", "ДанныеРасходнойНакладной", "ДанныеРасходнойНакладнойSoap", , , , "http://www.realURL/realPath");

Или же можно использовать динамическую ссылку, но адрес расположения Web-сервиса получать не из файла описания (WSDL), а непосредственно указывать при создании объекта (листинг 1.138).

Листинг 1.138. Комбинированный способ на основе динамической ссылки

// Создать WS-прокси на основании WS-определения.

Определение = Новый WSОпределения("http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl");

Прокси = Новый WSПрокси(Определение, "http://www.MyCompany.ru/shipment", "ДанныеРасходнойНакладной", "ДанныеРасходнойНакладнойSoap", , , , "http://www.realURL/realPath");

При попытке загрузить описание Web-сервиса в конфигураторе (создание статической ссылки) или при использовании динамической ссылки (при помощи объекта WSОпределения) система выполняет проверку загружаемого описания Web-сервиса (WSDL). Если в описании Web-сервиса присутствует ошибка (с точки зрения системы «1С:Предприятие»), то описание не будет загружено и будет сгенерировано исключение. В тексте исключения будет находиться подробная диагностика причин отказа в загрузке.

Подробнее

Ошибки, которые могут возникнуть при проверке описания Web-сервиса, более подробно описаны в документации «1С:Предприятия» в разделе «».

Назад: Использование XDTO для описания типов параметров и возвращаемых значений Web-сервисов
Дальше: Пример реализации Web-сервиса