Коммутационная панель в серверной, два порта соединены синим кабелем

Интеграция сайта с 1С, CRM и складом: как связать системы и не потерять данные

Сайт, который живёт отдельно от учёта, рано или поздно начинает врать. Цена на сайте одна, в 1С другая. Товар заказали, а на складе его уже нет. Менеджер переносит заказы из почты в CRM руками и ошибается в телефоне. Интеграция сайта с 1С, CRM и складом нужна, чтобы данные вводились один раз и дальше расходились по системам сами.

Разберём, какие данные обычно передают между системами, какие есть способы обмена и чем они отличаются, как часто синхронизировать остатки, что ломается чаще всего и как подготовиться к проекту, чтобы он не растянулся на полгода.

Какие данные гоняют между сайтом, 1С и CRM

Набор зависит от бизнеса, но у интернет-магазинов и B2B-сайтов он почти всегда похож. Важно сразу зафиксировать не только что передаётся, но и в какую сторону.

Для B2B к этому добавляются документы: счета, акты, договоры, взаиморасчёты. Их часто показывают в личном кабинете клиента, и это отдельный поток данных со своими правилами доступа.

Способы обмена данными сайта и 1С

Технически связать системы можно несколькими способами. Выбор зависит от объёма каталога, того, насколько типовая у вас 1С, и сколько систем участвует в обмене.

Стандартный обмен по CommerceML

CommerceML — открытый XML-формат для обмена коммерческими данными, который поддерживают типовые конфигурации 1С, Битрикс и многие другие CMS и платформы. 1С выгружает каталог, цены и остатки в файлы и забирает с сайта заказы. Для типового магазина на типовой конфигурации это самый быстрый путь: обмен настраивается, а не программируется.

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

HTTP-сервисы и REST API 1С

В современной платформе 1С можно опубликовать собственные HTTP-сервисы, а также стандартный REST-интерфейс OData. Сайт или промежуточный сервис обращается к ним напрямую и получает только нужные данные: остаток конкретного товара, статус заказа, персональную цену. Это гибче CommerceML, но требует программиста 1С и опубликованной в интернете базы с продуманной защитой.

Промежуточный сервис (шина)

Между системами ставят отдельный сервис, который принимает данные, приводит их к общему виду, раскладывает по адресатам и хранит журнал обмена. Такой подход оправдан, когда систем больше двух: сайт, 1С, CRM, складская система, маркетплейсы. Каждая система интегрируется с шиной один раз, а не со всеми остальными попарно.

Файлы по расписанию

Самый простой вариант: 1С по расписанию выкладывает файл (XML, CSV, Excel) на сервер, сайт его забирает. Подходит для небольших каталогов и данных, которые меняются редко. Для заказов и остатков в реальном времени не годится.

CommerceMLHTTP-сервисы / APIПромежуточный сервис
Скорость запускаБыстро для типовой 1ССреднеДольше всего
ГибкостьНизкаяВысокаяВысокая
Частота обменаПо расписанию, пакетамиПо запросу, почти мгновенноКак настроить
Когда подходитТиповой магазин, сайт + 1СНестандартная логика, B2BТри системы и больше

На практике способы комбинируют: каталог раз в сутки идёт через CommerceML, а остаток в корзине проверяется запросом к API в момент оформления заказа.

Интеграция сайта с CRM: amoCRM и Битрикс24

CRM обычно отвечает за продажи: лиды, сделки, коммуникацию с клиентом. У amoCRM и Битрикс24 есть открытые REST API и вебхуки, поэтому заявки и заказы с сайта передаются в них без ручного переноса. С сайта уходят контакт, состав заказа, источник и UTM-метки, из CRM на сайт могут возвращаться статусы.

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

Синхронизация остатков и цен: как часто и что будет, если отстают

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

Ориентиры такие:

Если остатки отстают, магазин продаёт то, чего нет. Дальше звонок с извинениями, отмена, возврат предоплаты и испорченное впечатление о компании. Ошибка в остатках стоит дороже, чем лишняя нагрузка на обмен. Если товар уходит быстро, а склад маленький, без проверки остатка при оформлении заказа не обойтись.

Что ломается чаще всего

Сам транспорт данных ломается редко. Проблемы обычно в данных и в договорённостях между людьми.

Для каждого типа данных должна быть одна главная система, остальные только читают.

Порядок работ

Интеграция с 1С — это прежде всего аналитика данных и договорённости, а уже потом код. Так выглядит последовательность, которой мы придерживаемся в проектах с интеграциями.

  1. Аудит систем. Какая конфигурация 1С и насколько она доработана, какая CRM, какая платформа у сайта, есть ли уже обмен и почему он не устраивает.
  2. Карта данных. Какие сущности передаются, в какую сторону, как часто, какая система главная для каждой. Таблица соответствий справочников и полей.
  3. Выбор способа обмена. CommerceML, API, шина или их сочетание — исходя из карты данных, а не из привычки подрядчика.
  4. Подготовка данных. Чистка дублей, проставление идентификаторов, приведение справочников к общему виду. Эту работу на стороне 1С ведут наши программисты 1С; если у вас есть свой программист, согласуем изменения с ним.
  5. Разработка и тестовый обмен. Сначала на копии базы 1С и тестовом сайте. Проверяем пограничные случаи: товар удалили, цену обнулили, заказ отменили после оплаты.
  6. Запуск и мониторинг. Первый боевой обмен под присмотром, журнал, уведомления об ошибках, инструкция для сотрудников, кто и где теперь правит данные.

Что подготовить заказчику

Чем больше из этого списка готово до старта, тем быстрее и точнее будет оценка.

Из чего складываются сроки и цена

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

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

Частые вопросы

Что такое CommerceML?

Это открытый XML-формат для обмена коммерческими данными между учётными системами и сайтами. Его поддерживают типовые конфигурации 1С и многие CMS, поэтому для типового интернет-магазина обмен каталогом, ценами, остатками и заказами можно настроить без программирования с нуля.

Можно ли интегрировать с 1С сайт не на Битриксе?

Да. CommerceML поддерживают многие платформы, а для сайтов на собственном коде или фреймворках обмен делают через HTTP-сервисы 1С, REST-интерфейс OData или промежуточный сервис. Выбор зависит от задач, а не от CMS.

Как часто нужно синхронизировать остатки?

Зависит от скорости продаж и размера склада. Для редко меняющихся товаров достаточно нескольких обменов в день. Для ходовых позиций с малым запасом лучше проверять остаток в 1С в момент оформления заказа.

Нужен ли программист 1С, если сайт делает агентство?

Работа на стороне 1С нужна почти всегда: даже при стандартном обмене настраивают узел обмена, справочники и права, а при нестандартной логике пишут HTTP-сервисы или дорабатывают обработки обмена. В Sphere это делают наши программисты 1С, искать отдельного подрядчика не нужно. Если у вас есть свой программист 1С, согласуем изменения с ним.

Что делать, если заказы задваиваются в 1С или CRM?

Проверить, по какому идентификатору система определяет, что заказ или клиент уже существует. Дубли почти всегда возникают из-за отсутствия стабильного ID или сопоставления по имени. Решается правилами сопоставления и разовой чисткой базы.

Обсудим ваш проект
Ещё по теме