В платформе 1С для работы со сторонними с веб-сервисами существуют следующие объекты:
- WSОпределения - класс, содержащий в себе описание веб-сервиса, по сути это WSDL. Данный класс можно создать на основе WSDL. WSОпределения реализуют механизм динамического вызова веб-сервиса;
- WSСсылкиМенеджер - менеджер статистических ссылок на веб-сервис. Предоставляет доступ к WS-ссылкам дерева метаданных. WSСсылкиМенеджер реализуют механизм статического вызова веб-сервисов;
- WSПрокси - клиентский прокси для вызова веб-сервиса. Только с помощью данного класса можно обратиться к операциям веб-сервиса, независимо от того статическая это ссылка или динамическая.
- XDTO - механизм XDTO позволяет создать модель представления данных (модель типов и значений), которая, с одной стороны, обеспечивает возможность просто и естественно манипулировать данными в среде 1С:Предприятия 8, а с другой стороны, данная модель хорошо приспособлена для прозрачного преобразования данных в другие форматы, главным образом XML.
Для наглядности попробую предоставить диаграмму классов приведенных выше классов. Прошу прощения если был неточен, просто ставил целью предоставление общей картины взаимосвязей классов.
Что же означают слова динамическая ссылка и статическая? Статистическая ссылка хранится в дереве метаданных (WS-ссылка) и задается на этапе конфигурирования, при ее создании подгружается определение веб-сервиса(описание WSDL) и сохраняется в конфигурации. Хранение определения веб-сервиса позволяет экономить время на его получении при обращении к веб-сервису. Минусом такого использования является изменение используемого веб-сервиса. При изменении веб-сервиса, в вашей конфигурации будет старое описание и вызов веб-сервиса просто перестанет работать. А для загрузки нового описания вам придется изменять конфигурацию.
Динамические ссылки напротив, подгружают актуальное описание при каждом создании класса WSОпределения.
Приведу пример обращения к веб-сервису по статической ссылке.
Для начало создадим WS-ссылку. Для этого откройте свою конфигурацию и найдите в окне конфигурации Общие-WSСсылка.
И нажмите Добавить. Платформа попросит ввести путь к WSDL.
Если вы публикуете веб-сервис средствами 1С то путь к WSDL будет такого вида:
http://домен_сайта/имя_публикации_базы/ws/имя_веб_сервиса?wsdl. Позже, когда мы будем создавать свой веб-сервис, я объясню подробнее откуда берутся эти имена.
Если на веб-сервис стоит ограничение, то введите логин и пароль. Если вы создавали веб-сервис в 1С то для авторизации используйте учетные данные пользователей БД, у которых есть право на использование операций веб-сервиса.
После ввода логина и пароля пройдет некоторое время на закачку WSDL и WS-ссылка будет создана.
Теперь можно обратиться к веб-сервису. Создадим процедуру с директивой &НаСервере:
&НаСервере
Процедура ОбращениеКВебСервисуПоСтатическойСсылкеСервер()
Прокси = WSСсылки.WSСсылка.СоздатьWSПрокси("
http://xxx.xxx.xxx.xxx", "WebServices", "WebServicesSoap");
Прокси.Пользователь="admin";
Прокси.Пароль="admin";
РезультатВебОперации = Прокси.ListOfDevices();
КонецПроцедуры
В данном примере мы используем метод СоздатьWSПрокси типа WSСсылкаМенеджер.WSСсылка, который создает объект WSПрокси. В WSПрокси мы указываем логин и пароль для доступа к веб-сервису и уже после этого вызываем функцию веб-сервиса. В нашем случае это функция ListOfDevices().
Теперь попробуем обратиться к той же самой операции веб-сервиса через динамическую ссылку. Для этого создадим процедуру с директивой &НаСервере:
&НаСервере
Процедура ОбращениеКВебСервисуПоДинамическойСсылкеСервер()
WSОпределение = Новый WSОпределения("
http://xxx.xxx.xxx.xxx/InfoBase/ws/WebServices?wsdl","admin", "admin");
WSПрокси = Новый WSПрокси(WSОпределение, "
http://xxx.xxx.xxx.xxx" , "WebServices", "WebServicesSoap" );
WSПрокси.Пользователь = "admin" ;
WSПрокси.Пароль = "admin" ;
РезультатВебОперации = WSПрокси .ListOfDevices();
КонецПроцедуры
В окончание статьи приведу ссылку на обработку которая позволит вам вызвать операции веб- сервиса. В обработке перед этим надо ввести путь к файлу WSDL, логин и пароль - нажать кнопку "Получить WSDL" и после этого можно просмотреть какие есть операции в веб-сервисе и вызвать их. Для вызова операции необходимо выбрать сервис, точку подключения и операцию. Перейти на вкладку "Параметры операции", ввести необходимые параметры операции и нажать кнопку "Выполнить операцию". На вкладке "Результат операции" будет ответ от операции в XML виде.
Ссылка на обработку WSReader:
http://yadi.sk/d/X9GTmUw65zsGw Смотрите также:
Электронный учебник по программированию в 1С Рекомендации по изучению программирования 1С с нуля Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки