Как настроить обмен данными между 1С и Битрикс24

· 9 мин

Содержание

Обмен между 1С и Битрикс24 настраивается через штатный механизм «Обмен с сайтом» по стандарту CommerceML: на стороне 1С создаётся узел обмена и расписание выгрузки, на стороне портала — точка приёма данных с логином и паролем. Товары, цены и остатки уходят из 1С в Битрикс24, заказы приходят обратно в учётную базу.

Начинать интеграцию нужно с выбора схемы — от этого зависит, что вообще настраивать. Для интернет-магазина внутри портала хватает встроенного CommerceML: он входит в типовые конфигурации (Управление торговлей, УНФ, Бухгалтерия, Розница, ERP) и отдельно не оплачивается. Для синхронизации CRM-сущностей (сделки, счета, контакты, компании) обмена каталогом мало — там работает коннектор из Битрикс24.Маркет или интеграция по REST API.

Какую схему обмена выбрать под свою задачу

Сначала ответьте на один вопрос: что синхронизируете — каталог магазина или данные CRM. Схемы не взаимозаменяемы, и часть проектов использует обе сразу.

🔹 Каталог интернет-магазина (номенклатура, цены, остатки, заказы). Работает штатный обмен по CommerceML 2.x. Настраивается без программиста, расписанием. Это основной сценарий для связки «1С + витрина Битрикс24».

🔹 CRM-обмен (контрагенты ↔ контакты и компании, счета, сделки, оплаты). Делается приложением-коннектором из Битрикс24.Маркет либо обменом по REST API через вебхуки портала. Часть приложений платные — ориентировочно от 0 до 3–5 тыс. ₽ в месяц за тариф, зависит от разработчика и числа сущностей.

🔹 Гибрид — каталог по CommerceML, а клиентов и оплаты через коннектор. Так чаще всего и делают у b2c-магазинов с менеджерским сопровождением сделок.

REST-обмен стоит особняком: он не про готовую кнопку, а про разработку. Через вебхуки портала можно синхронизировать почти любые сущности и настроить правила под себя, но это уже работа программиста и поддержка собственного кода. Для типового магазина он избыточен — начинайте с CommerceML и переходите к REST, только когда штатных возможностей реально не хватает.

Что нужно синхронизироватьМеханизмНужно платить отдельно
Товары, цены, остатки, картинкиCommerceML (встроен)Нет
Заказы покупателейCommerceML (встроен)Нет
Сделки, контакты, счета CRMКоннектор из Маркета / RESTЧаще да

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

Что подготовить до начала настройки

Обмен падает чаще всего из-за мелочей, которые не проверили заранее. Пройдите короткий список до того, как открывать настройки.

Готовность к обмену 1С ↔ Битрикс24
Выполнено: 0 / 6

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

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

Настройка обмена на стороне 1С

Выгрузку каталога включают в разделе администрирования. В Бухгалтерии это Администрирование, в Управлении торговлей — НСИ и администрирование, в УНФ — раздел с настройками компании и интеграций. Внутри ищите группу настроек интеграции и пункт обмена с сайтом (в разных конфигурациях формулировка отличается — это один из тех случаев, где название может слегка меняться от релиза к релизу).

Порядок действий общий для всех типовых:

  1. Включите флаг обмена с сайтом в настройках интеграции.
  2. Создайте узел обмена (настройку обмена с сайтом) — это объект, который хранит параметры подключения к конкретному порталу.
  3. Укажите адрес точки обмена Битрикс24, логин и пароль пользователя портала, через которого идёт приём.
  4. Выберите тип выгрузки: только каталог, каталог + заказы, одностороннюю или двустороннюю.
  5. Отметьте, что выгружается: группы номенклатуры, виды цен (один или несколько), склады для остатков, картинки и характеристики.
  6. Настройте расписание — регламентное задание запуска обмена (например, каждые 15–30 минут).

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

Права пользователя обмена задавайте по принципу минимума: чтение номенклатуры и цен, запись заказов. Полный доступ узлу обмена не нужен и опасен — через него в базу пишет внешняя система.

Приём данных на стороне Битрикс24

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

В коробочной версии (1С-Битрикс: Управление сайтом) точка обмена стандартная — скрипт 1c_exchange.php в разделе магазина, а настройки лежат в Магазин → Настройки → Интеграция с 1С. Там включается обмен, задаётся тип данных (каталог, заказы) и создаётся пользователь с правом на обмен.

В облачном Битрикс24 интеграция с 1С включается в разделе магазина/интернет-магазина портала. Облачный интерфейс обновляется чаще коробки, поэтому надёжнее искать по разделу «Интернет-магазин» или «Магазин» и пункту интеграции с 1С, чем запоминать точный путь. После включения портал покажет адрес обмена и предложит задать логин и пароль — именно их вы переносите в узел обмена 1С.

Проверьте три вещи на стороне портала:

  • 🔸 адрес обмена доступен снаружи (портал по https, не за закрытым VPN от сервера 1С);
  • 🔸 у пользователя обмена есть право записывать каталог и читать заказы;
  • 🔸 кодировка и версия CommerceML на портале совпадают с тем, что отдаёт 1С (обычно согласуется автоматически при первом сеансе).

Выгрузка товаров, цен и остатков: что с чем сопоставляется

Каталог 1С выгружает двумя пакетами: номенклатура и свойства идут одним файлом (import.xml), торговые предложения с ценами и остатками — другим (offers.xml). На портал они попадают в один инфоблок каталога, а характеристики товара становятся торговыми предложениями (SKU).

Ключ сопоставления — не название, а идентификатор. Если один и тот же товар в разных выгрузках получает разный ID, портал создаст дубль. Поэтому раз выбранный признак (внутренний код номенклатуры 1С или артикул) менять нельзя.

Сопоставление полей
Наименование номенклатуры→Название товара
Артикул / код 1С→Внешний код (ключ сопоставления)
Вид цены (например, «Розничная»)→Тип цены в каталоге
Остаток по складу→Количество на складе
Ставка НДС→Ставка НДС товара
Характеристика номенклатуры→Торговое предложение (SKU)
Единица измерения→Единица измерения
Файлы картинок→Изображения товара

Несколько практических правил по каталогу:

  • Цены. На сайт уходят только те виды цен, что отмечены в узле обмена. Если на витрине «0 ₽» — почти всегда вид цены не выбран или по товару он не заполнен.
  • Остатки. Выгружаются по складам, указанным в настройке. Хотите показывать общий остаток — оставьте все розничные склады; хотите только магазинный — один конкретный.
  • Картинки. Передаются файлами и «тяжелят» первый обмен. Большой каталог первый раз выгружайте вручную и в нерабочее время.
  • Характеристики. Цвет/размер станут вариациями товара, только если в 1С они оформлены как характеристики номенклатуры, а не как отдельные позиции.
  • Единицы измерения. Передаётся базовая единица; если продаёте в упаковках и коробках, коэффициенты упаковок надо заполнить в 1С, иначе на сайте останется только штука.

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

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

Обмен заказами и статусами

Обратный поток — заказы с портала в 1С. Когда покупатель оформляет заказ в Битрикс24, при очередном сеансе обмена 1С забирает его и создаёт документ: в Управлении торговлей это заказ клиента, в Бухгалтерии — заказ или реализация в зависимости от настройки, в УНФ — заказ покупателя.

Контрагент по заказу ищется по заданному признаку (чаще email или телефон, для юрлиц — ИНН). Не найден — создаётся новый. Здесь и возникают дубли клиентов, если признак поиска выбран неудачно: один человек оформляет заказы с разных адресов и каждый раз заводится заново.

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

Событие в 1СЧто происходит в Битрикс24
Заказ оплачен (поступление на счёт/кассу)Статус заказа → «Оплачен»
Заказ отгружен (реализация)Статус → «Отгружен»/«Выполнен»
Заказ отменёнСтатус → «Отменён»

Если обмен заказами двусторонний, определите «ведущую» систему для статуса. Когда и портал, и 1С правят один заказ наперегонки, выигрывает тот, кто записал последним — и менеджер видит «скачущий» статус.

Что делать, если обмен не идёт

Сначала посмотрите, на чьей стороне сбой: 1С не смогла отправить или портал не принял. В 1С это видно по журналу регистрации и протоколу обмена узла, в Битрикс24 — в журнале обмена с 1С. Дальше — по симптому.

Диагностика: выберите симптом

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

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

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

Нужна ли платная лицензия или приложение для обмена?
Для обмена каталогом и заказами по CommerceML — нет, механизм входит в типовые конфигурации. Платить придётся только за сторонний коннектор CRM из Битрикс24.Маркет, если синхронизируете сделки и счета.
Обмен односторонний или двусторонний?
Можно настроить и так, и так. Каталог обычно идёт из 1С в Битрикс24 (односторонне), а заказы и статусы — в обе стороны. Направление задаётся в узле обмена.
Как часто синхронизируются данные?
По расписанию регламентного задания в 1С. Для магазина разумно 15–30 минут; остатки для товаров с быстрым оборотом — чаще. Мгновенного обмена «секунда в секунду» штатный CommerceML не даёт.
Можно ли обмениваться только клиентами и сделками, без интернет-магазина?
Да, но не через CommerceML — для CRM-сущностей нужен коннектор из Маркета или обмен по REST API портала. Каталог при этом можно не включать.
Почему после обмена на сайте задвоились карточки товаров?
Между выгрузками сменился идентификатор сопоставления. Портал считает товар новым и создаёт дубль. Зафиксируйте один ключ (код или артикул) и выполните полную выгрузку заново.