К статье
Практический материал

Автоматизация · 9 мин

Битрикс и 1С: как связаны и как работает обмен данными

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

«1С-Битрикс: Управление сайтом» и «1С:Управление торговлей» (а также «Комплексная автоматизация» и «ERP») — продукты разных компаний, но с готовым механизмом взаимодействия. Битрикс отвечает за витрину: каталог товаров, цены, оформление заказов на сайте. 1С отвечает за учёт: склад, себестоимость, контрагенты, документы. Связь между ними нужна, чтобы не вести одни и те же данные в два раза.

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

Обмен построен на открытом формате CommerceML — это XML-формат описания товаров и заказов, разработанный при участии 1С. Сайт и учётная система передают друг другу файлы этого формата через HTTP-запросы, поэтому обе стороны могут находиться на разных серверах и в разных сетях.

Какие данные передаются между системами

Обмен двусторонний, и важно понимать направление потоков, чтобы не вносить правки «не с той стороны». Товары, группы каталога, свойства, типы цен и складские остатки идут из 1С на сайт. Если изменить цену вручную в админке Битрикса, при следующей выгрузке она будет перезаписана значением из 1С.

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

Некоторые сущности по умолчанию не обмениваются или обмениваются ограниченно: картинки выгружаются из 1С только если они хранятся в базе, скидки и купоны сайта в 1С обычно не переносятся, а сложные маркетинговые механики (промокоды, правила корзины) живут только на стороне Битрикса.

Как устроен типовой обмен технически

Со стороны 1С используется встроенный узел обмена с сайтом (в «Управлении торговлей 11» это раздел настроек синхронизации). Со стороны Битрикса работает модуль «Интернет-магазин + 1С», который принимает запросы от 1С по специальному URL вида /bitrix/admin/1c_exchange.php и обрабатывает их пошагово: авторизация, получение файлов, импорт в инфоблоки.

Процесс выглядит так: 1С по расписанию или вручную формирует XML-файлы каталога и предложений (цены и остатки), отправляет их на сайт частями, сайт распаковывает и поэтапно импортирует данные. Затем тот же сеанс или отдельный запуск забирает с сайта новые заказы. Большие каталоги передаются порциями, чтобы не упираться в лимиты времени выполнения скрипта.

Порядок настройки типового обмена
  1. 1
    Проверьте, что в Битриксе установлен и активен модуль обмена с 1С, а версия продукта обновлена
  2. 2
    В 1С создайте узел обмена с сайтом: укажите адрес скрипта обмена, логин и пароль пользователя сайта с правами на обмен
  3. 3
    Настройте отбор выгружаемых товаров, типы цен и склады для остатков
  4. 4
    Выполните первую полную выгрузку вручную и проверьте каталог на сайте
  5. 5
    Настройте обмен заказами: соответствие статусов, способов оплаты и доставки
  6. 6
    Включите обмен по расписанию (регламентное задание в 1С) и проверьте журнал обмена

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

Режимы обмена: полная выгрузка и выгрузка изменений

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

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

Сравнение режимов обмена

Полная выгрузка

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

Выгрузка только изменений

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

Обмен заказами в реальном времени

Заказ попадает в 1С сразу после оформления. Подходит при коротком цикле обработки заказа, но чувствителен к доступности 1С извне.

Что нужно согласовать перед запуском

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

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

Типичные ошибки при настройке
01
Редактирование цен и остатков вручную на сайте — при следующей выгрузке правки затираются данными из 1С
02
Обмен под учётной записью администратора сайта — риск компрометации полного доступа
03
Разная структура каталога в 1С и на сайте без настройки соответствия — товары дублируются или попадают не в те разделы
04
Слишком частый запуск полной выгрузки вместо выгрузки изменений — сайт тормозит в рабочее время
05
Отсутствие резервной копии перед первой выгрузкой — при ошибочном импорте каталог приходится восстанавливать вручную

Как проверить, что обмен работает корректно

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

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

Контрольные точки

Как проверить результат

Цена и остаток товара на сайте
Норма

Совпадают с данными 1С сразу после выгрузки

Тревожный признак

Расхождения или нулевые остатки при наличии товара на складе

Тестовый заказ с сайта
Норма

Появился в 1С с составом, контрагентом и доставкой

Тревожный признак

Заказ не загружается или приходит с пустыми полями

Смена статуса заказа в 1С
Норма

Статус обновился в личном кабинете покупателя

Тревожный признак

Статус на сайте не меняется после обмена

Журнал обмена
Норма

Сеансы завершаются без ошибок

Тревожный признак

Ошибки авторизации, таймауты, обрывы передачи файлов

Ограничения типового обмена и когда нужна доработка

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

Альтернативы типовому обмену: интеграция через REST API Битрикса и HTTP-сервисы 1С, обмен через промежуточную шину или готовые коннекторы, а также файловый обмен по расписанию для простых случаев. Выбор зависит от объёма нестандартной логики: если отличий немного, дешевле доработать типовой механизм, чем строить свой.

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

FAQ

Можно ли связать Битрикс с 1С без программиста?

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

Какие конфигурации 1С поддерживают обмен с сайтом?

Штатный узел обмена с сайтом есть в «Управлении торговлей», «Комплексной автоматизации», «ERP Управление предприятием» и ряде отраслевых решений на их основе. В «Бухгалтерии предприятия» полноценного обмена каталогом нет — она ориентирована на учёт, а не на торговлю с витрины.

Что делать, если товары на сайте задваиваются после выгрузки?

Дубли обычно возникают из-за изменения уникальных идентификаторов товаров в 1С (например, после пересоздания элементов) или ручного создания товаров на сайте до выгрузки. Решение — очистить каталог на сайте, выполнить полную выгрузку заново и далее вести товары только в 1С.

Как часто нужно запускать обмен остатками?

Частота зависит от оборачиваемости склада: при активных продажах обмен изменениями запускают каждые 15–60 минут, при спокойной торговле достаточно нескольких раз в день. Полную выгрузку в рабочем режиме запускать не нужно — только изменения.

Безопасно ли открывать доступ к 1С для обмена с сайтом?

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

Итог

Что важно запомнить

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