1С и OData: синхронизация каталога, цен и остатков

Обмен между сайтом и 1С исторически строился на файлах: 1С складывает XML, сайт его забирает по расписанию. Работает везде, но с задержкой и целыми пачками — сайт узнаёт об изменении остатка не когда оно произошло, а когда пришёл следующий обмен.

OData меняет направление: сайт сам обращается к 1С и запрашивает то, что ему нужно, тогда, когда нужно. Ниже — чем это отличается на практике, что для этого требуется и где проходит граница применимости.

Пассивный приём против активного запроса

При файловом обмене инициатор — 1С. Она решает, когда выгрузить, и отдаёт всё разом. Сайт — пассивная сторона, которая ждёт и разбирает пачку. Если обмен настроен раз в час, значит час — это ваша минимальная задержка по остаткам.

При OData инициатор — сайт. Он спрашивает: дай мне номенклатуру, изменившуюся с такого-то момента; дай остаток по этим позициям; вот тебе заказ, создай документ. Запросы точечные, поэтому их можно делать чаще, не гоняя весь каталог.

Практическая разница видна на остатках: вместо «раз в час целиком» получается «часто и понемногу», а значит окно, в котором сайт продаёт уже проданное, сокращается.

Что для этого нужно

Публикация базы 1С с включённым OData. Это штатная возможность платформы: в публикации веб-сервисов включается стандартный интерфейс OData и открывается доступ к нужным справочникам и документам.

Сетевая доступность. Ключевое условие и самая частая причина, по которой не взлетает. Если 1С стоит на компьютере в офисе без внешнего доступа, сайт до неё не дотянется. Нужен либо сервер с доступом извне, либо туннель, либо облачная 1С.

Отдельный пользователь с ограниченными правами. Не администратор: доступ только к тем объектам, которые реально участвуют в обмене.

Соответствие справочников. Что считать товаром на сайте — номенклатуру или номенклатуру с характеристикой; какой тип цен идёт в розницу; какой склад отдаёт остаток. Это решается один раз, но решается обязательно.

Что ходит в каждую сторону

Из 1С на сайт — каталог (номенклатура, характеристики, категории), цены по выбранному типу, остатки по выбранному складу и, если нужно, фотографии.

С сайта в 1С — заказы. Заказ создаётся документом и дальше живёт по правилам учётной системы: резерв, оплата, отгрузка. Списание остатка при этом делает сама 1С при проведении документа, а не сайт — это важно, иначе остаток уменьшится дважды.

Где граница применимости

OData хорош, когда 1С доступна по сети и обмен должен быть оперативным. Он избыточен, если у вас десяток заказов в неделю и остатки меняются медленно — файловый обмен закроет задачу проще.

И он неприменим, если 1С физически изолирована. В этом случае честный ответ — либо менять инфраструктуру, либо оставаться на файлах; попытки «сделать OData через выгрузку» превращаются в тот же файловый обмен, только сложнее.

Общая картина интеграции и четыре потока данных разобраны в статье об интеграции 1С с маркетплейсами, а варианты без разработчика — в материале о способах связать 1С без программиста. В Витрине обмен построен именно активным способом: сайт сам забирает каталог, цены и остатки по расписанию и передаёт заказы обратно, без ручных выгрузок.

Готовы навести порядок в магазине?

Сайт, Wildberries, Ozon, Яндекс.Маркет, МегаМаркет и 1С — в одном месте, с реальной аналитикой прибыли по каждому товару.

Посмотреть тарифы