Два способа интеграции с 1С: OData (стандартный RESTful) и HTTP-сервисы (собственные адреса запросов). Разбираем, когда что.
OData: плюсы
Стандартный интерфейс, без доработки конфигурации. Из коробки в 1С:УТ 11.4+, 1С:КА, 1С:ERP. Фильтры, сортировка, постраничный вывод, $expand, $select. Любой HTTP-клиент.
OData: минусы
Каждый запрос — обращение к базе, база блокируется. Нет способа запросить «товары с остатком > 0 в категории X» одним запросом. Ограниченная поддержка транзакций. Выборка 50 000 позиций — десятки секунд, база блокируется.
HTTP-сервисы: плюсы
Полный контроль над логикой. «Товары с остатком > 0 в категории X» одним оптимизированным запросом. Быстрее OData: нет накладных расходов на разбор синтаксиса. Кэш на стороне 1С, своя авторизация, версионирование, журналирование.
HTTP-сервисы: минусы
Требуют доработки конфигурации. Типовое решение с поддержкой — каждое обновление требует переноса доработок. Нужен 1С-разработчик — дороже поддержка. Нет стандарта: свой набор адресов запросов, свои форматы. Смена подрядчика — разбираться с нуля.
Гибридный подход
Чтение справочников (товары, контрагенты, категории) — OData + плотное кэширование. Данные в кэше обновляются изменениями каждые 30 секунд, публичный сайт работает только с кэшем. Запись (заказы, обновление статусов) — HTTP-сервисы. Контроль транзакционности, структурированные ошибки, защита от повторной обработки на уровне 1С.
Метрики реального проекта
Электронная коммерция на 50 000 SKU. Только OData: полная выгрузка 42 сек, изменения 12 сек, блокировка базы. Гибрид: полная выгрузка в кэш 3,4 сек, изменения 0,7 сек, база 1С не блокируется.
Чек-лист выбора
- Много чтения справочников? → OData + кэш.
- Сложная логика выборки? → HTTP-сервисы.
- Нужна запись данных? → HTTP-сервисы с защитой от повторов.
- Типовая конфигурация без доработок? → OData.
- Есть 1С-разработчик? → можно HTTP-сервисы.
- Нет поддержки доработок? → только OData.
- Больше 10 000 SKU? → обязательно кэш.
Выводы
Универсального ответа нет. Начинаем с OData и кэша: быстро, дёшево, без доработок. HTTP-сервисы — точечно, где нужен контроль или сложная логика.