Використання зовнішніх web-сервісів в 1с підприємство 8, книга знань

Дисклеймер і умови використання

Ще один дисклеймер (через багато часи)

вступ

Для тих, хто зовсім "не в темі": про web-сервісах "на пальцях"

Звідки ноги, тобто крила ростуть

Він сказав: "Поїхали!"

"То зліт, то посадка."


Для роботи з web-сервісом я додав в конфігурацію обробку "ТаблоВилетов", а в ній - одну форму, яку призначив основний. На форму я поклав поле вибору "ВиборАеропорта", поле введення "ДатаРейса", панель "ПанельТабло" з двома сторінками "Приліт" і "Виліт", при цьому я зняв прапор "Розподіляти по сторінках" у властивостях панелі, і табличне поле "ТабліцаТабло ".
Взаємодія з web-сервісом відбувається за принципом "запит-відповідь", при цьому для web-сервісу створюється спеціальний об'єкт-посередник. Тому я додав реквізит форми "СервісАерофлот" довільного типу.
Якщо уважно почитати опис сервісу, то можна побачити, що web-сервіс надає дані про прильоти і вильоти через виклики методів Arrival і Departure відповідно. При цьому обидва методи приймають в якості параметрів код аеропорту і потрібну дату. Крім того, web-сервіс надає можливість отримати список аеропортів, по яких є дані в системі. Досить очевидним є наступний сценарій взаємодії з web-сервісом:
1. Отримати список аеропортів;
2. Вибрати потрібний аеропорт і дату;
3. Отримати дані про прильоти або вильоти;
Але перш ніж звертатися до web-сервісу, необхідно ініціалізувати об'єкт-посередник (типу WSПроксі), що я і зробив в обробнику відкриття форми:

Першим параметром передається URI простору імен web-сервісу. Дізнатися його можна відкривши властивості web-сервісу в дереві WS-посилання. Другим і третім параметром параметрами передаються відповідно ім'я і порт web-сервісу.
(Не треба плутати поняття "ім'я", "порт", "проксі" і т.п. в застосуванні до web-сервісів з більш звичними поняттями протоколу TCP / IP. Відповідність між ними якщо і є, то швидше за смислове. У загальному випадку потрібно розуміти, що, наприклад порт web-сервісу і TCP-порт - це абсолютно різні речі).
Таким чином я проініціалізувати об'єкт СервісАерофлот типу WSПроксі, який по-суті своїй є "обгорткою" web-сервісу. Через нього я зможу звертатися до методів web-сервісу як до "рідним" методам платформи.
Насамперед я отримав список аеропортів і заповнив список поля вибору "ВиборАеропорта":

"День відльоту, день прильоту."


Тепер у мене практично все готово для того, щоб змусити моє табло функціонувати. Залишилося тільки його "пофарбувати і викинути" :) Чим і займуся:

Для того, щоб перевірити як це все працює, я додав на командну панель форми кнопку "Оновити" з відповідною картинкою, а в її обробнику написав таке:


Зберігаю, запускаю, вибираю, натискаю, отримую:

Використання зовнішніх web-сервісів в 1с підприємство 8, книга знань

Післямова