Работа с Web-сервисами сторонних поставщиковСистема 1С:Предприятие 8 может использовать веб-сервисы, предоставляемые другими поставщиками, двумя способами:
· с помощью статических ссылок, создаваемых в дереве конфигурации;
· с помощью динамических ссылок, создаваемых средствами встроенного языка.
Преимущество использования статических ссылок заключается в большей скорости работы, т.к. описание веб-сервиса поставщика получается один раз, при создании ссылки. В дальнейшем, при обращении к данному веб-сервису, используется существующее описание веб-сервиса.
При использовании динамических ссылок, описание веб-сервиса поставщика будет получаться системой 1С:Предприятие 8.1 каждый раз, при вызове веб-сервиса, что, естественно, будет замедлять работу с данным веб-сервисом. Однако преимуществом такого подхода является возможность получения актуального описания веб-сервиса поставщика. При использовании же статических ссылок для получения актуального описания веб-сервиса следует выполнить повторный импорт WSDL-описания средствами конфигуратора и сохранение измененной конфигурации.
Пример использования статической WS-ссылкиПример использования статической WS-ссылки
В качестве примера использования веб-сервисов стороннего поставщика рассмотрим обращение к Web-сервису, созданному в разделе «Пример реализации Web-сервиса».
Прежде всего следует добавить в дерево конфигурации новый объект конфигурации WS-ссылка с именем «ДанныеРасходнойНакладной», ссылающийся на опубликованный сервис. Для этого следует выполнить импорт WSDL-описания опубликованного сервиса и в качестве URL указать «http://www.MyCompany.ru/shipment/Shipment.1cws?wsdl». Подробнее об импорте WSDL-описания можно прочитать в разделе «Добавление WS-ссылки».
После этого, например, в модуле приходной накладной можно создать следующую процедуру, которая заполняет табличную часть документа данными расходной накладной поставщика, полученными с помощью веб-сервиса поставщика:
Процедура ПолучитьДанныеРасходнойНакладной(НомерНакладнойПоставщика)
// Создать WSпрокси на основании ссылки
// и выполнить операцию Получить()
Прокси = WSСсылки.ДанныеРасходнойНакладной.
СоздатьWSПрокси("http://www.MyCompany.ru/shipment",
"ДанныеРасходнойНакладной",
"ДанныеРасходнойНакладнойSoap");
ДанныеНакладной = Прокси.Получить();
Если ДанныеНакладной = Неопределено Тогда
Возврат;
КонецЕсли;
// Заполнить приходную накладную полученными данными
Для Каждого СтрокаНакладной Из ДанныеНакладной.Состав Цикл
НоваяСтрока = ДокументОбъект.Состав.Добавить();
НоваяСтрока.Количество = СтрокаНакладной.Количество;
НоваяСтрока.Цена = СтрокаНакладной.Цена;
НоваяСтрока.Сумма = СтрокаНакладной.Сумма;
// Найти элемент номенклатуры по переданным данным
// (например, по штрих-коду)
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("ШтрихКод", СтрокаНакладной.Номенклатура.ШтрихКод);
КонецЦикла;
КонецПроцедуры
Пример использования динамической WS-ссылкиИспользование динамической ссылки отличается от использования статической ссылки только способом создания WS-прокси и отсутствием необходимости создавать WS-ссылку в дереве конфигурации.
Если провести сравнение с примером, представленным в предыдущем разделе, то, в отличие от создания прокси на основе статической ссылки:
// Создать Wsпрокси на основании ссылки
// и выполнить операцию Получить()
Прокси = WSСсылки.ДанныеРасходнойНакладной.СоздатьWSПрокси("http://www.MyCompany.ru/shipment",
"ДанныеРасходнойНакладной",
"ДанныеРасходнойНакладнойSoap");
ДанныеНакладной = Прокси.Получить();
при использовании динамической ссылки WS-прокси создается с помощью конструктора следующим образом:
// Создать WSпрокси на основании WSопределения
// и выполнить операцию Получить()
Определение = Новый WSОпределения(
"http://www.MyCompany.ru/shipment/Shipment.1cws?wsdl");
Прокси = Новый WSПрокси(Определение,
"http://www.MyCompany.ru/shipment",
"ДанныеРасходнойНакладной",
"ДанныеРасходнойНакладнойSoap");
ДанныеНакладной = Прокси.Получить();
Настройка поддержки WEB-сервисовНастройка поддержки Web-сервисов заключается в настройке используемого веб-сервера на работу с менеджером сервисов и в установке прав доступа к каталогам исполняемых файлов и базы данных (для файлового варианта работы).
Настройка поддержки WEB-сервисовНастройка поддержки Web-сервисов заключается в настройке используемого веб-сервера на работу с менеджером сервисов и в установке прав доступа к каталогам исполняемых файлов и базы данных (для файлового варианта работы).
Настройка поддержки Web-сервисов для IIS 5.1
· зарегистрировать менеджер сервисов (wsisapi.dll). Для этого следует запустить утилиту регистрации wsinst.exe (находящуюся в каталоге «bin» файлов 1С:Предприятия 8.1) с ключом «-iis»;
· создать виртуальный каталог, где будут располагаться файлы веб-сервисов;
· создать приложение IIS на основе этого виртуального каталога;
· дать права чтения пользователю, от лица которого запускается менеджер сервисов wsisapi.dll (IWAM_XXX), на каталог «bin» файлов 1C:Предприятия 8.1;
· дать права на модификацию пользователю, от лица которого выполняются запросы (IUSR_XXX), на каталог информационной базы и каталог «bin» файлов 1C:Предприятия 8;
Настройка поддержки WEB-сервисов
Настройка поддержки Web-сервисов заключается в настройке используемого веб-сервера на работу с менеджером сервисов и в установке прав доступа к каталогам исполняемых файлов и базы данных (для файлового варианта работы).
Настройка поддержки Web-сервисов для IIS 5.1
· зарегистрировать менеджер сервисов (wsisapi.dll). Для этого следует запустить утилиту регистрации wsinst.exe (находящуюся в каталоге «bin» файлов 1С:Предприятия 8.1) с ключом «-iis»;
· создать виртуальный каталог, где будут располагаться файлы веб-сервисов;
· создать приложение IIS на основе этого виртуального каталога;
· дать права чтения пользователю, от лица которого запускается менеджер сервисов wsisapi.dll (IWAM_XXX), на каталог «bin» файлов 1C:Предприятия 8.1;
· дать права на модификацию пользователю, от лица которого выполняются запросы (IUSR_XXX), на каталог информационной базы и каталог «bin» файлов 1C:Предприятия 8.1;
Настройка поддержки Web-сервисов для IIS 6.0· выполнить настройку поддержки Web-сервисов для IIS 5.1;
· добавить MIME типы 1C:Предприятия 8.1 в настройки HTTP заголовков виртуальной директории веб-сервисов (расширения «.1cws» и «.1crs», Mime тип text/xml);
· разрешить запуск менеджера сервисов wsisapi.dll на IIS. (в расширениях веб-сервисов IIS добавить wsisapi.dll как расширение веб-сервисов и разрешить ему запуск);
· если путь к wsisapi.dll содержит пробелы и другие разделители, при регистрации необходимо указывать путь в кавычках.
Настройка поддержки WEB-сервисов
Настройка поддержки Web-сервисов заключается в настройке используемого веб-сервера на работу с менеджером сервисов и в установке прав доступа к каталогам исполняемых файлов и базы данных (для файлового варианта работы).
Настройка поддержки Web-сервисов для IIS 5.1
· зарегистрировать менеджер сервисов (wsisapi.dll). Для этого следует запустить утилиту регистрации wsinst.exe (находящуюся в каталоге «bin» файлов 1С:Предприятия 8.1) с ключом «-iis»;
· создать виртуальный каталог, где будут располагаться файлы веб-сервисов;
· создать приложение IIS на основе этого виртуального каталога;
· дать права чтения пользователю, от лица которого запускается менеджер сервисов wsisapi.dll (IWAM_XXX), на каталог «bin» файлов 1C:Предприятия 8.1;
· дать права на модификацию пользователю, от лица которого выполняются запросы (IUSR_XXX), на каталог информационной базы и каталог «bin» файлов 1C:Предприятия 8.1;
Настройка поддержки Web-сервисов для IIS 6.0
· выполнить настройку поддержки Web-сервисов для IIS 5.1;
· добавить MIME типы 1C:Предприятия 8.1 в настройки HTTP заголовков виртуальной директории веб-сервисов (расширения «.1cws» и «.1crs», Mime тип text/xml);
· разрешить запуск менеджера сервисов wsisapi.dll на IIS. (в расширениях веб-сервисов IIS добавить wsisapi.dll как расширение веб-сервисов и разрешить ему запуск);
· если путь к wsisapi.dll содержит пробелы и другие разделители, при регистрации необходимо указывать путь в кавычках.
Настройка поддержки Web-сервисов для Apache 2.0 под Windows · создать каталог, где будут располагаться файлы веб-сервисов;
· добавить в конфигурационный файл apache (confhttpd.conf) регистрацию модуля обработки веб-сервисов 1С:Предприятия:
LoadModule _1cws_module <1C:Enterprise Root>binwsapch2.dll
· добавить в конфигурационный файл apache регистрацию виртуальной директории доступа к веб-сервисам, например:
Alias /ws С:InetPubWWWRoot
DirectorySlash Off
SetHandler 1cws-process
· дать права пользователю, от лица которого запускается apache, на каталог «bin» файлов 1C:Предприятия 8.1 (чтение и выполнение) и каталог информационной базы (чтение и запись).
Настройка поддержки Web-сервисов для Apache 2.2 под Windows· создать каталог, где будут располагаться файлы веб-сервисов;
· добавить в конфигурационный файл apache (confhttpd.conf) регистрацию модуля обработки веб-сервисов 1С:Предприятия:
LoadModule _1cws_module <1C:Enterprise Root>binwsap22.dll
добавить в конфигурационный файл apache регистрацию виртуальной директории доступа к веб-сервисам, например:
Alias /ws С:InetPubWWWRootws
DirectorySlash Off
SetHandler 1cws-process
Allow from all
Настройка поддержки Web-сервисов для Apache 2.0 под Linux · создать каталог, где будут располагаться файлы веб-сервисов;
· добавить в конфигурационный файл apache (conf/httpd.conf) регистрацию модуля обработки веб-сервисов 1С:Предприятия:
LoadModule _1cws_module <1C:Enterprise Root>/bin/wsapch2.so
· добавить в конфигурационный файл apache регистрацию виртуальной директории доступа к веб-сервисам, например:
Alias /ws /var/www
DirectorySlash Off
SetHandler ws-process
· дать права пользователю, от лица которого запускается apache, на каталог «bin» файлов 1C:Предприятия 8.1 (чтение и выполнение) и каталог информационной базы (чтение и запись).
Настройка поддержки Web-сервисов для Apache 2.2 под Linux· создать каталог, где будут располагаться файлы веб-сервисов;
· добавить в конфигурационный файл apache (conf/httpd.conf) регистрацию модуля обработки веб-сервисов 1С:Предприятия:
LoadModule _1cws_module <1C:Enterprise Root>/bin/wsap22.so
· добавить в конфигурационный файл apache регистрацию виртуальной директории доступа к веб-сервисам, например:
Alias /ws /var/www
DirectorySlash Off
SetHandler 1cws-process
Allow from all
· дать права пользователю, от лица которого запускается apache, на каталог «bin» файлов 1C:Предприятия 8.1 (чтение и выполнение) и каталог информационной базы (чтение и запись).
[необходимо зарегистрироваться для просмотра ссылки]