Використання зовнішніх веб-сервісів у 1С на прикладі завантаження курсів валют

Знаю, що на хабрі не дуже шанують багатостраждальну 1С. Хоча з виходом платформи 8.3 (з клієнтами під Linux) її стали любити дещо більше. До речі, так само зовсім недавно інтерфейс однієї з основних розробок 1С - конфігурація Управління виробничим підприємством - був повністю перекладений англійською мовою. Багато разів я зустрічав питання, чому тут не пишуть про 1С. Відповідь на них досить очевидна – існує безліч спеціалізованих ресурсів, де можна оперативно обговорити всі питання та щось почитати.

З деяких пір у 1С 8.х з'явилася можливість використання веб-сервісів: 1С може бути як постачальником, так і споживачем. У цій статті я покажу, як використовувати 1С як споживач на прикладі отримання курсів валют із сервера ЦБР.

Конфігурування

Для розробки я взяв 1С 8.2 (8.2.15.317 у моєму випадку) та створив порожню конфігурацію. Для використання зовнішніх веб-сервісів передбачено об'єкт WS-посилання, але використовувати його не обов'язково, до сервісу можна звертатися з коду динамічно. Я використовуватиму перший варіант, а потім покажу, як можна використовувати другий. У конфігурації створив обробку та назвав її «ЗавантаженняКурсовВалютЦБР». Додав форму (керовану) та зробив її основною. На формі я створив реквізити та розмістив елементи управління так, як показано на малюнку.

зовнішніх

1С на основі отриманого опису автоматично створить візуальну картку веб-сервісу. Можна побачити назву веб-сервісу, подивитися які у нього доступні операції, а також типи даних, що використовуються.

зовнішніх

Конфігурування на цьому майже закінчено, залишилося зробити пару штрихів для того, щоб наш додаток виглядав естетичнішим. Клацніть правою кнопкою миші по корені конфігурації та викличемоменю "Відкрити командний інтерфейс робочого столу". У вікні необхідно зняти прапор «Видимість» навпроти обробки «Завантаження курсів валют ЦБР». Натисніть кнопку Ок. Далі ще правий клік по корені конфігурації та викличемо меню «Відкрити робочу область робочого столу», там зробимо налаштування як на малюнку:

використання

Ці налаштування дозволять нам відобразити форму обробки прямо на робочому столі (мається на увазі робочий стіл програми 1С) у режимі 1С Підприємство.

Програмування

Тут спочатку перевіряється, чи заповнена дата (якщо не заповнена, то повідомляємо про це користувачеві і більше нічого не робимо). Потім очищається таблиця, розташована на формі і викликається процедура Завантажити Курси Валют(), в яку передається дата.

Тепер можна оновлювати конфігурацію БД (F7) та запускати 1С Підприємство (F5). Якщо все зробили правильно, то маємо побачити вікно як на малюнку нижче:

прикладі

Щоб перевірити результат, нам потрібно запровадити дату, на яку хочемо отримати курси валют та натиснути на кнопку «Завантажити валюти». У разі успішного запиту таблиця на формі заповниться значеннями курсів:

завантаження

У процедурі ЗавантажитиКурсиВалют() рядок

необхідно замінити двома наступними рядками

Спочатку ми створюємо так звані визначення для веб-сервісу з його WSDL. Потім створюємо проксі для звернення до нього.

Як видно, використовувати зовнішні веб-сервіси з 1С загалом досить просто (хоча і є певна складність у розумінні визначення типів, у мене в тому числі).

Якщо ця публікація знайде тут відгук, то є ще кілька тем, про які можна розповісти.

За посиланням можна завантажити конфігурацію із прикладом (cf-файл).

Хардкорна конфа за С++. Ми запрошуємо лише профі.