Коротко. Сайт связывают с 1С тремя способами: стандартным обменом с сайтом (формат CommerceML), через HTTP-сервисы 1С или через OData. Первый подходит для товаров, цен и заказов в типовых конфигурациях, остальные — когда нужны свои данные или обмен в реальном времени.
Что обычно передают между сайтом и 1С
С сайта в 1С уходят заказы: состав, покупатель, оплата, доставка. Из 1С на сайт приходят товары, цены, остатки и статусы заказов.
Перед разработкой стоит записать, кто главный по каждому виду данных. Обычно товары и цены живут в 1С, а сайт только показывает их. Если описание товара правят и там и там, правки начнут затирать друг друга.
Способ 1. Стандартный обмен с сайтом
В типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP, Розница) есть обработка «Обмен с сайтом». Она по расписанию выгружает каталог и забирает заказы в формате CommerceML — это XML-файлы с описанием товаров и предложений.
Настраивается в самой 1С, программист часто не нужен, а многие CMS принимают такой обмен через готовые модули.
Если сайт самописный, на нём делают приёмник CommerceML — адрес, к которому подключается 1С.
Способ 2. HTTP-сервисы 1С
В конфигурации публикуют свой HTTP-сервис, и сайт обращается к нему напрямую: «дай остаток по товару», «создай заказ».
Данные приходят сразу, передать можно что угодно. Платить за это придётся доработкой конфигурации и публикацией базы на веб-сервере — и после каждого обновления 1С доработку проверяют заново.
Способ 3. OData
У 1С есть стандартный REST-интерфейс OData. Через него сайт читает и пишет справочники и документы без доработки конфигурации.
Код 1С трогать не нужно. Но работать с OData неудобно, и на большом каталоге он тормозит — это вариант для небольших объёмов.
Какой способ выбрать
| Способ | Когда подходит | Что мешает |
|---|---|---|
| Обмен с сайтом (CommerceML) | типовая 1С, каталог и заказы | работает по расписанию, нестандартные поля передать трудно |
| HTTP-сервисы | нужен остаток или заказ прямо сейчас | нужна доработка 1С, после обновлений её проверяют |
| OData | небольшие объёмы без правок 1С | медленно на большом каталоге |
Где обычно ломается обмен
- Дубли товаров. Связь между товаром на сайте и в 1С держится на идентификаторе. Если его потеряли, после следующей выгрузки появляется копия.
- Остатки отстают. Обмен раз в час — значит, час сайт может продавать то, чего уже нет. Об этом отдельная статья — как синхронизировать остатки.
- Тихие ошибки. Обмен упал ночью, а узнали об этом через неделю. Нужен журнал и уведомление о сбое, например в Telegram.
- База 1С недоступна снаружи. Если у офиса, где стоит 1С, нет постоянного внешнего адреса, обмен запускают со стороны 1С или через промежуточный сервер.
Частые вопросы
Нужен ли программист 1С для связки с сайтом?
Для стандартного обмена с сайтом часто хватает настройки в типовой конфигурации. Для HTTP-сервисов и нестандартных данных нужна доработка конфигурации — её делает программист 1С.
Можно ли передавать заказы с сайта в 1С сразу, а не по расписанию?
Да, через HTTP-сервис: сайт отправляет заказ в момент оформления. Если 1С недоступна, заказ сохраняется на сайте и отправляется повторно.
Подойдёт ли это для 1С:Фреш или другого облака?
Обычно да: облачные базы можно опубликовать для обмена. Ограничения зависят от провайдера, их проверяем до начала работ.
С чего начать
Для выбора способа нужны три ответа: какая конфигурация 1С и версия, где стоит база и что сейчас переносят руками. Как мы делаем интеграции.