HTTP-сервіси для тих, хто нічого не розуміє у WEB. Web-сервіси (SOAP), HTTP-сервіси, oData (автоматичний REST-сервіс)Новий курс 1c сервіс параметри

Якщо ви нічого не розумієте у WEB технологіях і такі слова, як json, get, post та інше для вас нічого не означають і ви просто затятий 1С-нік до мозку кісток, але вам кров з носа треба подружити 1С зі сторонніми програмами або сайтом, то ця стаття для вас.

Почну з того, що колись я змушений був самостійно розбиратися з Web-сервісами. Тоді якось потихеньку мені вдалося освоїти цю справу і зрозуміти, що й куди треба натиснути, щоби все запрацювало. Благо конфігурація, з якою довелося працювати, вже була напхана Web-сервісами і можна було піддивитися і зробити за аналогією, а також в інтернеті мені вдалося знайти достатньо статей у цій справі. І так, на прикладах (для мене це найкращий спосіб вивчення), я освоїв цю справу, і тепер мене вони вже не лякають.

ОТЖЕ. Основним завданням будь-якої інтеграції, будь то КД, Web-сервіси або HTTP-сервіси, є щось звідки передати, що-небудь з цим зробити і повернути відповідь. Ось у такому форматі ми розглянемо нову технологію.

У дереві метаданих HTTP-сервіси розташовуються у гілці.

Додається новий HTTP-сервіс так само, як і будь-який інший об'єкт метаданих. Ім'я та синонім як хочете. Тут важливий лише " Кореневий URL " - це, власне, і є ідентифікатор HTTP-сервісу у цій основі, тобто. саме те, що ви напишете в цій властивості, ви передасте сторонньому розробнику (ну чи собі) як посилання на сервіс.

Не знаю, чи можна тут писати кирилицею, але щоб вас у прогресивному світі не засміяли, пишіть латиницею).

Тут важлива сама властивість Шаблон:

За допомогою шаблону ви зможете звернутися до тих даних, які вам передали. ОТЖЕ: всі дані, які ви хочете отримати ззовні, можна розділити на 2 блоки - обов'язкові і не обов'язкові.

Обов'язкові дані/параметри запихаємо в шаблон, тим самим якщо той, хто звертається до сервісу, їх не заповнив, то сервіс апріорі видасть помилку, а ви при розробці тексту модуля обробника впевнені, що ці дані є. Як це робиться: у рядку Шаблон у фігурних дужках "()", чергуючи зі знаком "/", пишемо імена змінних. Наприклад, нам обов'язково потрібен артикул – тоді пишемо /(artikul). Якщо нам потрібно отримати артикул, ім'я та ім'я користувача, рядок шаблону виглядатиме так: /(artikul)/(name)/(user) тощо. Кожен із таких параметрів у тексті модуля обробника можна буде отримати так: Запит.ПараметриURL["<имя параметра>"]. Якщо обов'язкових немає, шаблон виглядає так: /*.

Не обов'язкові дані, які хочемо отримувати через сервіс, у шаблоні НЕ описуються. При побудові посилання для звернення до сервісу вони описуються в кінці посилання після знака "?", розділяються символом амперсанда "&" і мають структуру<имя параметра>=<значение параметра>. У тексті модуля обробника до них можна звернутися конструкцією: Запит.ПараметриЗапроса.Отримати("<имя параметра>А): важливо пам'ятати, якщо вони не обов'язкові, то їх може і не бути, відповідно значення перевіряємо на невизначено.

Далі додаємо новий метод нашого шаблону. Тут важлива властивість HTTP-метод. Їх тут безліч, АЛЕ ми не вдаватимемося у всі тонкощі. Для реалізації будь-якого вашого завдання вам потрібні лише 2: GET та POST.

Як вибрати: Якщо того, що ми з вами описали у двох попередніх абзацах, вам достатньо, тобто. всі потрібні вам дані ви зможете отримати за допомогою обов'язкових і не обов'язкових параметрів самого запиту, беремо GET. В цьому випадку в будь-якому браузері, якщо ви правильно введете адресний рядок, ви побачите результат дії свого HTTP-сервісу – ПРОФІТ! Якщо раптом для роботи вашого сервісу потрібні дані в складнішому вигляді (xml наприклад, або ще чогось), то, що не можна запхати в простий адресний рядок, то беремо POST. З мінусів така легка перевірка через адресний рядок браузера, як із GET, не прокотить, але на просторах інтернету легко можна знайти якісь сайти, на яких можна перевірити сервіси методом POST (наприклад, сайт https://www.hurl.it) . У випадку, якщо вибрано метод POST, то у запиту крім URL (адреси) з'являється тіло, в яке можна запхати все, що завгодно, а в обробнику методу звернутися до нього через конструкцію Запит. Будь-який шаблон може бути як GET метод, так і POST. У них будуть відповідно різні обробники, а 1С-ка залежно від того, як було відправлено запит, вибиратиме той чи інший метод.

Обробник HTTP-сервісу - це функція, яка завжди повертає значення типу HTTPСервісВідповідь, який будується конструктором Новий HTTPСервісВідповідь(<КодСостояния>). <КодСостояния>- це число, щоб не мучитися з вибором що писати, пишемо: 200 - якщо все добре і ви повертаєте якесь логічне значення, 400 - якщо помилка і ви повертаєте опис помилки. Даний тип має різні методи (можна почитати в синтакс помічнику, там все зрозуміло написано). Знову ж таки, завжди можна повернути все що потрібно у вигляді рядка - метод ВстановитиТілоІзРядки(). (одна невелика хитрість: якщо ви повертаєте html і хочете щоб браузер при введенні в адресний рядок адреси вашого сервісу на екрані красиво відобразив його, як відповідь Заголовки напишіть: Відповідь.Заголовки.Вставити("Content-Type","text/html; charset=utf-8") - тим самим ви вкажіть, що це не просто набір символів, а HTML і його треба показати відповідно)

Після того, як ви все зробите, HTTP-сервіс треба опублікувати. Робиться це на комп'ютері зі встановленим веб-сервером (про налаштування писати не буду, є повно статей) через меню:

Адміністрування - Публікація на веб-сервері.

Там закладка HTTP-сервісів. Ставимо галки та натискаємо "Опублікувати"




Зіткнувся із необхідністю отримання поточного стану конфігурації. Необхідно отримувати:

  • Кількість документів із певним відбором;
  • період останньої зареєстрованої ціни на товар;
  • Кількість проведених документів за останні 10 хвилин.

Враховуючи досвід реалізації мобільного додатку в проектах, спочатку майнула думка написати конфігурацію під android. Зваживши всі «за» і «проти» дійшов висновку, що для вирішення мого завдання цей підхід не підійде. Потім узяли курс на використання http-сервісу. Для цього в конфігурації був зареєстрований http-сервіс «Статистика», доданий шаблон URL Будь-який URL, у якого був доданий get метод.


Після формування об'єктів дерева зміни приймаємось за написання алгоритму формування відповіді. Метод повертатиме відповідь типу HTTPСервісВідповідь:

Після написання коду відповіді публікуємо http-сервіс із конфігуратора та звертаємось до нього з браузера. Для звернення до http-сервісу треба звертатися за адресою, як у веб-клієнт додавши «/hs/statistic/». hs каже платформі, що йде звернення до http-сервісу, а statistic – це ім'я нашого сервісу.

На мою думку, http-сервіси можуть бути корисні у разі:
- Формування статистики по конфігурації;
- Функціонал отримання статусу замовлення за його номером;
— Підготовка даних для імпортування до інших систем.

Web-сервіс у 1С 8.3 та 8.2 – об'єкт метаданих, що дозволяє інтегрувати платформу 1С з іншими інформаційними системами за допомогою сервіс-орієнтованої архітектури (SOA).

Розглянемо створення та налаштування на прикладі веб-сервісу, що дозволяє здійснювати двосторонній обмін між базами 1С 8 за допомогою SOAP.

Для початку звернемо увагу на вкладку Інше:

Отримайте 267 відеоуроків з 1С безкоштовно:

  • В полі URI простору іменописується розташування ідентифікатора ресурсу.
  • - Опис типів, з якими зможе працювати майбутній веб-сервіс.
  • Ім'я файлу публікації— назва файлу *.1CWS, який буде розміщено на веб-сервері

Структура веб-сервісу 1С

Розглянемо структуру веб-сервісу:

DataExchange - сам web-сервіс. UnloadData, LoadData — операції, насправді, опис функцій, які можна викликати за протоколом SOAP. ExchangePlanName, NodeCode і т.д. — значення, що передаються веб-сервісу.

Модуль веб-сервісу

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

Перевірка роботи http сервісу 1С на веб-сервері

Почну з того, що колись я змушений був самостійно розбиратися з Web-сервісами. Тоді якось потихеньку мені вдалося освоїти цю справу і зрозуміти, що й куди треба натиснути, щоби все запрацювало. Благо конфігурація, з якою довелося працювати, вже була напхана Web-сервісами і можна було підглянути та зробити за аналогією, а також в інтернеті мені вдалося знайти достатньо статей у цій справі. І так, на прикладах (для мене це найкращий спосіб вивчення), я освоїв цю справу, і тепер мене вони вже не лякають.

ОТЖЕ. Основним завданням будь-якої інтеграції, будь то КД, Web-сервіси або HTTP-сервіси, є щось звідки передати, що-небудь з цим зробити і повернути відповідь. Ось у такому форматі ми розглянемо нову технологію.

У дереві метаданих HTTP-сервіси розташовуються у гілці.

Додається новий HTTP-сервіс так само, як і будь-який інший об'єкт метаданих. Ім'я та синонім як хочете. Тут важливий тільки "Кореневий URL" - це, власне, і є ідентифікатор HTTP-сервісу у цій основі, тобто. саме те, що ви напишете в цій властивості, ви передасте сторонньому розробнику (ну чи собі) як посилання на сервіс.

Не знаю, чи можна тут писати кирилицею, але щоб вас у прогресивному світі не засміяли, пишіть латиницею).

Тут важлива сама властивість Шаблон:

За допомогою шаблону ви зможете звернутися до тих даних, які вам передали. ОТЖЕ:всі дані, які ви хочете отримати ззовні, можна розділити на 2 блоки - обов'язкові та не обов'язкові.

Обов'язкові дані/параметризапихаємо в шаблон, тим самим якщо той, хто звертається до сервісу, їх не заповнив, то сервіс апріорі видасть помилку, а при розробці тексту модуля оброблювача будете впевнені, що ці дані є. Як це робиться: у рядку Шаблон у фігурних дужках "()", чергуючи зі знаком "/", пишемо імена змінних. Наприклад, нам обов'язково потрібен артикул – тоді пишемо /(artikul). Якщо нам потрібно отримати артикул, ім'я та ім'я користувача, рядок шаблону виглядатиме так: /(artikul)/(name)/(user) тощо. Кожен із таких параметрів у тексті модуля обробника можна буде отримати так: Запит.ПараметриURL["<имя параметра>"]. Якщо обов'язкових немає, шаблон виглядає так: /*.

Необов'язкові дані, які хочемо отримувати через сервіс, у шаблоні НЕ описуються. При побудові посилання для звернення до сервісу вони описуються в кінці посилання після знака "?", розділяються символом амперсанда "&" і мають структуру<имя параметра>=<значение параметра>. У тексті модуля обробника до них можна звернутися конструкцією: Запит.ПараметриЗапроса.Отримати("<имя параметра>А): важливо пам'ятати, якщо вони не обов'язкові, то їх може і не бути, відповідно значення перевіряємо на невизначено.

Далі додаємо новий метод нашого шаблону. Тут важлива властивість HTTP-метод. Їх тут безліч, АЛЕ ми не вдаватимемося у всі тонкощі. Для реалізації будь-якого вашого завдання вам потрібні лише 2: GETі POST.

Як вибрати: Якщо того, що ми з вами описали у двох попередніх абзацах, вам достатньо, тобто. всі потрібні вам дані ви зможете отримати за допомогою обов'язкових і не обов'язкових параметрів самого запиту, беремо GET. В цьому випадку в будь-якому браузері, якщо ви правильно введете адресний рядок, ви побачите результат дії свого HTTP-сервісу – ПРОФІТ! Якщо раптом для роботи вашого сервісу потрібні дані в складнішому вигляді (xml наприклад, або ще чогось), то, що не можна запхати в простий адресний рядок, то беремо POST. З мінусів така легка перевірка через адресний рядок браузера, як із GET, не прокотить, але на просторах інтернету легко можна знайти якісь сайти, на яких можна перевірити сервіси методом POST (наприклад, сайт https://www.hurl.it) . Якщо вибрано метод POST, то у запиту крім URL (адреси) з'являється тіло, в яке можна запхати все, що завгодно, а в обробнику методу звернутися до нього через конструкцію Запит. Будь-який шаблон може бути як GET метод, так і POST. У них будуть відповідно різні обробники, а 1С-ка залежно від того, як було відправлено запит, вибиратиме той чи інший метод.

Обробник HTTP-сервісу - це функція, яка завжди повертає значення типу HTTPСервісВідповідь, який будується конструктором Новий HTTPСервісВідповідь(<КодСостояния>). <КодСостояния>- це число, щоб не мучитися з вибором що писати, пишемо: 200 - якщо все добре і ви повертаєте якесь логічне значення, 400 - якщо помилка і ви повертаєте опис помилки. Даний тип має різні методи (можна почитати в синтакс помічнику, там все зрозуміло написано). Знову ж таки, завжди можна повернути все що потрібно у вигляді рядка - метод ВстановитиТілоІзРядки(). (одна невелика хитрість: якщо ви повертаєте html і хочете щоб браузер при введенні в адресний рядок адреси вашого сервісу на екрані красиво відобразив його, як відповідь Заголовки напишіть: Відповідь.Заголовки.Вставити("Content-Type","text/html; charset=utf-8") - тим самим ви вкажіть, що це не просто набір символів, а HTML і його треба показати відповідно)

Після того, як ви все зробите, HTTP-сервіс треба опублікувати. Робиться це на комп'ютері зі встановленим веб-сервером (про налаштування писати не буду, є повно статей) через меню:

Адміністрування - Публікація на веб-сервері.

Там закладка HTTP-сервісів. Ставимо галки та натискаємо "Опублікувати"

ОтжеМи отримали готовий HTTP-сервіс. ЯК до нього звернутись? Якщо у нас використовується метод GET, то в адресному рядку браузера пишемо: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Ну і, нарешті, ще раз у картинках))):

Увага! Тепер курс проводиться і увечері з 18:30 до 21:30 у форматі занурення.

На курсі Ви отримаєте практичні навички щодо використання наступних механізмів платформи "1С:Підприємство 8":

  • WEB-сервіси (протокол SOAP)
  • Формат JSON
  • Інтерфейс oData (автоматично REST-сервіс)
  • HTTP-сервіси

ВАЖЛИВО! Курс розрахований на програмістів, які володіють навичками роботи з механізмом XDTO, або раніше пройшли курс .

Опис та програма курсу:

У вартість WEB-курсу включено:

  • 2 тижні курсу, 2 вебінари з викладачем
  • свідоцтво 1С-Учбового центру №3 (за умови виконання практики)

У вартість очного курсу-занурення включено:

  • 2 дні з 10:00 до 17:00 або 4 вечора з 18:30 до 21:30
  • конспект, навушники
  • обіди, кава-брейки
  • доступ на 2 роки до оновлюваних відеоматеріалів після закінчення курсу
  • свідоцтво 1С-Навчального центру №3

Формати навчання

WEB-навчання

Що це за формат:Пропонований формат поєднує багато переваг дистанційного навчання з очною складовою, представленою відеоматеріалами та онлайн-консультаціями.
WEB-курс складається з відеороликів, практичних завдань та вебінарів з викладачами. До всіх матеріалів курсу надається цілодобовий доступ через Інтернет – можна займатись у зручний час. Курс поділено на заняття. Протягом заняття вивчаються матеріали з поточної теми, виконуються практикуми, запитують викладача. Наприкінці кожного заняття проводиться вебінар, на якому викладач розбирає всі питання, що надійшли, типові помилки, пояснює правильне рішення. Запис вебінарів доступний у порталі. Таким чином, проходять кілька занять одне за одним. Наприкінці проводиться підсумкова самостійна робота та підсумковий вебінар.

Тривалість: 2 тижні

Що це за формат:


Тривалість:16 академічних годин

Що це за формат:Очний курс-занурення – формат, що поєднує у собі всі плюси очного навчання, дистанційних технологій та індивідуального навчання. Заняття проходять в обладнаному навчальному класі, Ви самостійно вивчаєте матеріали курсу (покрокові відеоролики) та виконуєте практикуми. При цьому в аудиторії знаходиться викладач, який готовий будь-якої миті відповісти на запитання та допомогти з вирішенням практичних завдань, а також перевірити правильність їх виконання.
Переваги – індивідуальні консультації викладача з Ваших питань, що підходить для Вас темп проходження матеріалу.
Все це дає більш глибоке опрацювання матеріалу курсу.
Цей курс можна пройти зі свого робочого місця з повним ефектом присутності викладача там, де учень! Якщо ця можливість Вас зацікавила – зателефонуйте нам!

Тривалість:16 академічних годин