Настройка обмена 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 недели.







