Главная » Интеграции » Интеграция Битрикс с 1С: полное руководство

Интеграция Битрикс с 1С: полное руководство

Схема обмена сайта на Битрикс с 1С: товары и цены идут на сайт, заказы возвращаются в учётную систему

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

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

Как устроен обмен

Обмен работает по протоколу CommerceML. Инициатором всегда выступает 1С: она сама обращается к сайту по адресу вида https://site.ru/bitrix/admin/1c_exchange.php, авторизуется и передаёт данные.

Обмен делится на два независимых направления:

НаправлениеЧто передаётсяИнициатор
Каталог: 1С → сайт Товары, разделы, свойства, цены, остатки, изображения 1С
Заказы: сайт → 1С Заказы, покупатели, статусы оплаты и доставки 1С

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

Этапы одного сеанса

  1. checkauth — проверка логина и пароля;
  2. init — согласование параметров: сжатие, размер порции;
  3. file — передача файлов выгрузки на сайт;
  4. import — разбор файлов и запись в инфоблок.

Разбор идёт пошагово: сайт обрабатывает порцию и сообщает 1С, что нужно продолжить. Так обходится ограничение времени выполнения скрипта, разобранное в статье Maximum execution time exceeded в Битрикс.

Настройка на стороне сайта

Обмен настраивается в разделе Магазин → Настройки → Интеграция с 1С.

Отдельный пользователь для обмена

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

Пользователя добавляют в группу с правом на обмен с 1С. О настройке групп есть отдельная статья Настройка групп пользователей в Битрикс.

Ключевые параметры

ПараметрНа что влияет
Инфоблок для товаров Куда выгружать каталог. Для первого обмена — пустой инфоблок
Интервал шага Сколько секунд работает один шаг. Обычно 30 секунд
Количество элементов за шаг Уменьшите, если обмен обрывается
Деактивировать отсутствующие Что делать с товарами, которых нет в выгрузке
Использовать сжатие Ускоряет передачу, но требует поддержки на сервере

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

Нужна помощь с Битрикс?





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

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

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

    Главное: совпадение справочников

    Здесь кроется источник большинства проблем. Обмен связывает объекты по внешним идентификаторам, а не по названиям.

    Что должно совпадать по обе стороны:

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

    Практическое правило: сначала согласуйте справочники, потом запускайте обмен. Разбирать последствия обмена с несовпадающими справочниками дольше, чем настроить их заранее.

    Порядок первого запуска

    1. Сделайте резервную копию сайта — обмен меняет данные массово.
    2. Заведите пользователя для обмена и выдайте права.
    3. Создайте отдельный пустой инфоблок под каталог.
    4. Согласуйте справочники: единицы, типы цен, склады.
    5. Отключите деактивацию отсутствующих товаров.
    6. Выгрузите из 1С небольшую тестовую группу номенклатуры — не весь каталог.
    7. Проверьте результат: разделы, свойства, цены, картинки, единицы измерения.
    8. Только убедившись, что всё корректно, запускайте полную выгрузку.
    9. Затем настройте обратный обмен заказами и проверьте его на тестовом заказе.
    10. В конце включите расписание.

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

    Типичные проблемы

    СимптомГде искать
    Ошибка авторизации Логин, пароль, права пользователя, доступность адреса обработчика
    Обмен обрывается на середине Уменьшить размер шага, проверить время выполнения и память
    Товары приехали, цен нет Не совпадают типы цен
    Дубли товаров Изменились внешние коды в 1С
    Пропали все товары Сработала деактивация отсутствующих при частичной выгрузке
    Заказы не уходят в 1С Не настроено расписание или сопоставление статусов
    Обмен идёт часами Выгружаются картинки при каждом обмене, велик объём

    Нагрузка на сайт

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

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

    Если во время обмена сайт начинает отдавать ошибки соединения с базой, причина обычно в исчерпании лимита — этот случай разобран в статье Too many connections в MySQL на Битрикс.

    Итог

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

    Успех обмена определяется не настройками, а согласованностью справочников: единиц измерения, типов цен, складов и статусов. Начинать всегда стоит с тестовой выгрузки небольшой группы товаров на отдельном инфоблоке — это единственный способ найти ошибки сопоставления до того, как они разъедутся по всему каталогу.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    Инструменты
    База знаний