Налаштування обміну 1С і 1С-Бітрікс через REST API
CommerceML — синхронний пакетний обмін файлами раз на N хвилин. REST API — подієвий обмін у момент зміни даних. Другий підхід дає оновлення даних практично в реальному часі та дозволяє обмінюватися сутностями, які CommerceML не підтримує: довільні довідники, документи, завдання.
Коли REST API кращий за CommerceML
REST-інтеграція виправдана при:
- Необхідності оновлення даних швидше, ніж раз на 15 хвилин (ціни при акції, критичні залишки)
- Обміні нестандартними даними, яких немає в CommerceML
- Інтеграції з кастомною конфігурацією 1С без стандартного обробника обміну
- Наявності кількох сайтів або сервісів, підключених до однієї бази 1С
REST API Бітрікс для інтеграції з 1С
Бітрікс надає REST API через модуль rest. Для зовнішніх систем створити вхідний вебхук:
Налаштування → Налаштування продуктів → REST API → Вхідні вебхуки → Додати
Права вебхука — тільки необхідні: catalog для каталогу, sale для замовлень. Не надавати вебхуку права адміністратора.
Оновлення залишків через REST
З 1С (через HTTP-з'єднання в конфігураторі) запит до API Бітрікс:
POST https://myshop.ru/rest/1/WEBHOOK_KEY/catalog.storeproduct.update
Content-Type: application/json
{
"productId": 12345,
"storeId": 3,
"amount": 47
}
Це точкове оновлення — змінюється тільки конкретний товар на конкретному складі. На відміну від пакетного вивантаження, яке обробляє всі 50 000 позицій, REST-виклик займає мілісекунди.
Отримання замовлень із Бітрікс у 1С через REST
Альтернатива файловому обміну замовленнями — 1С опитує REST API за розкладом:
GET https://myshop.ru/rest/1/WEBHOOK_KEY/sale.order.list
?filter[STATUS_ID]=N
&filter[>=DATE_INSERT]=2024-03-15T00:00:00
&select[]=ID
&select[]=ACCOUNT_NUMBER
&select[]=PRICE
&select[]=CURRENCY
Відповідь — JSON зі списком нових замовлень. 1С обробляє кожне, створює документи, після чого оновлює статус через sale.order.update.
Вебхуки Бітрікс для push-сповіщень у 1С
Для негайної передачі подій (нове замовлення, зміна статусу) — налаштувати вихідний вебхук Бітрікс, який надсилає дані до HTTP-сервісу 1С:
Налаштування → REST API → Вихідні вебхуки → Додати:
- URL: адреса HTTP-сервісу в 1С
-
Тип події:
ONSALEORDERNEW(нове замовлення)
При появі нового замовлення Бітрікс негайно POST-запитом сповіщає 1С — без очікування наступного сеансу обміну.
HTTP-сервіс у 1С
Для прийому REST-запитів від Бітрікс у 1С потрібен HTTP-сервіс (конфігуратор → Загальні → HTTP-сервіси). Публікується як частина конфігурації:
Адреса сервісу: https://1c.myshop.ru/CompanyName/hs/exchange/
Методи обробника приймають JSON, обробляють і повертають відповідь із HTTP-статусом.
Терміни налаштування
Налаштування REST-інтеграції для обміну залишками та замовленнями — 1–2 дні. З вебхуками та push-сповіщеннями в обидва боки — 3–5 днів. Повна заміна CommerceML на REST API для великого каталогу — 1–3 тижні.







