Протокол обміну з сайтом, Стандарти та формати, 1C Підприємство 8

Даний відкритий протокол розроблений компаніями "1С" та "1С-Бітрікс".

Протокол використовується штатною процедурою обміну комерційними даними між системою "1С:Підприємство", з одного боку, та системою управління сайтом, з іншого боку.

Функціонально обмін ділиться на два блоки:

Перший блок забезпечує публікацію на сайті каталогу номенклатурних позицій та даних. Другий блок необхідний для передачі з сайту в систему "1С:Підприємство" інформації про замовлення інтернет-магазину та подальшу синхронізацію статусів і параметрів замовлень.

В обох випадках ініціатором обміну виступає система "1С:Підприємство". Обмін електронними документами здійснюється відповідно до правил та форматів, описаних у стандарті CommerceML 2.

При ініціалізації взаємодії встановлюється з'єднання HTTP. Система "1С:Підприємство" запитує у сайту необхідні параметри, такі, як максимальний обсяг пакету, підтримка стиснення та ін. На підставі цих даних система 1С:Підприємство формує XML повідомлення та передає їх на сайт.

Вивантаження на сайт

A. Початок сеансу

Вивантаження даних починається з того, що система "1С:Підприємство" відправляє http-запит наступного виду: http:// //1c_exchange.php?type=catalog&mode=checkauth.

У відповідь система управління сайтом передає системі «1С:Підприємство» три рядки (використовується роздільник рядків "\n"):

  • слово "success";
  • ім'я Cookie;
  • значення cookie.

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

B. Запит параметрів від сайту

Далі слідує запитнаступного виду: http:// //1c_exchange.php?type=catalog&mode=init

У відповідь система управління сайтом передає два рядки:

1. zip=yes , якщо сервер підтримує обмін у zip-форматі - у разі на наступному кроці файли мають бути упаковані у zip-форматі або zip=no - у разі на наступному кроці файли не упаковуються і передаються кожен окремо.

2. file_limit= , де - максимально допустимий розмір файлу в байтах передачі за запит. Якщо системі "1С:Підприємство" потрібно передати файл більшого розміру, його слід розділити на фрагменти.

C. Вивантаження на сайт файлів обміну

Потім "1С:Підприємство" запитами з параметрами виду http:// / /1c_exchange.php?type=catalog&mode=file&filename= вивантажує на сайт файли обміну у форматі CommerceML 2, посилаючи вміст файлу або його частини у вигляді POST.

У разі успішного запису файлу система керування сайтом видає рядок "success".

D. Покрокове завантаження даних

На останньому кроці на запит з "1С:Підприємства" проводиться покрокове завантаження даних за запитом з параметрами виду http:// //1c_exchange.php?type=catalog&mode=import&filename=

Під час завантаження система керування сайтом може відповідати в одному з наведених нижче варіантів.

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

2. Якщо у відповідь передається рядок зі словом "success", це означатиме повідомлення про успішне закінчення обробки файла.

Примітка. Якщо під час будь-якого запиту сталася помилка, то у першому рядку відповіді системиуправління сайтом буде міститися слово "failure", а в наступних рядках опис помилки, що відбулася в процесі обробки запиту. Якщо сталася необроблена помилка рівня ядра продукту або SQL-запиту, то буде повернено html-код.

Приклади файлів вивантаження

Обмін інформацією про замовлення

Замовлення, оформлені на сайті, завантажуються у систему "1С:Підприємство".

Послідовність дій під час роботи із замовленням

1. Замовлення оформляється на сайті

3. При завантаженні замовлення здійснюється пошук договору з контрагентом. Договір шукається серед існуючих договорів із клієнтом, з ознакою ведення взаєморозрахунків на замовлення (за вказаним у налаштуваннях завантаження Організації). Якщо немає жодного договору, то створюється новий.

4. При завантаженні замовлення завантажуються всі властивості, передані з сайту. Властивості шукаються у системі "1С:Підприємство" за назвою. Якщо з такою назвою властивості немає, то заводиться нова властивість зі значеннями типу рядок чи число.

5. Замовлення може модифікуватися в системі "1С:Підприємство", при цьому його зміни вивантажуватимуться на сайт

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

7. При спробі в системі "1С:Підприємство" змінити замовлення, за яким здійснено оплату або відвантаження, замовлення на сайт не завантажиться як змінене. При цьому користувач отримає повідомлення.

A. Початок сеансу

Вивантаження даних починається з того, що система "1С:Підприємство" відправляє http-запити наступного виду: http:// //1c_exchange.php?type=sale&mode=checkauth.

У відповідь система управління сайтом передає системі «1С:Підприємство» три рядки (використовується роздільник рядків "\n"):

  • слово "success";
  • ім'я Cookie;
  • значення cookie.

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

B. Уточнення параметрів сеансу

Далі слідує запит наступного виду: http:// //1c_exchange.php?type=sale&mode=init

У відповідь система управління сайтом передає два рядки:

1. zip=yes , якщо сервер підтримує обмін у zip-форматі - у разі на наступному кроці файли мають бути упаковані у zip-форматі або zip=no - у разі на наступному кроці файли не упаковуються і передаються кожен окремо.

2. file_limit= , де - максимально допустимий розмір файлу в байтах передачі за запит. Якщо системі "1С:Підприємство" потрібно передати файл більшого розміру, його слід розділити на фрагменти.

C. Отримання файлу обміну із сайту

Потім на сайт надсилається запит виду http:// //1c_exchange.php?type=sale&mode=query.

Сайт передає відомості про замовлення у форматі CommerceML 2. У разі успішного отримання та запису замовлень "1С:Підприємство" передає на сайт запит виду http:// //1c_exchange.php?type=sale&mode=success

D. Надсилання файлу обміну на сайт

Потім система "1С:Підприємство" відправляє на сайт запит виду http:// / /1c_exchange.php?type=sale&mode=file&filename= , який завантажує на сервер файл обміну, посилаючи вміст файлу в вигляді POST.

У разі успішного запису файлу система керування сайтом передає рядок зі словом"success". Додатково на наступних рядках можуть бути зауваження щодо завантаження.

Примітка. Якщо під час будь-якого запиту відбулася помилка, то першому рядку відповіді системи управління сайтом буде міститися слово "failure", а наступних рядках - опис помилки, що сталася у процесі обробки запиту. Якщо сталася необроблена помилка рівня ядра продукту або SQL-запиту, то буде повернено html-код.