Система «1С:Предприятие» может использовать Web-сервисы, предоставляемые другими поставщиками, следующими способами:
При использовании статической ссылки система «1С:Предприятие» получает описание Web-сервиса поставщика только один раз, при создании ссылки. За счет этого достигается большая скорость работы.
При использовании динамической ссылки описание Web-сервиса получается каждый раз при вызове Web-сервиса. Скорость работы при этом уменьшается, но зато такой подход обеспечивает актуальность описания Web-сервиса поставщика. В случае же использования статических ссылок для получения актуального описания Web-сервиса требуется выполнить повторный импорт WSDL-описания средствами конфигуратора и затем сохранить измененную конфигурацию.
Например, для Web-сервиса с URI пространства имен http://www.MyCompany.ru/shipment, именем ДанныеРасходнойНакладной и именем файла публикации Shipment.1cws статическая ссылка создается путем импорта WSDL-описания опубликованного сервиса на основе URL – http://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С:Предприятия» в разделе «».