Как настроить обмен сайта на 1С-Битрикс с 1С
Сайт на «1С-Битрикс: Управление сайтом» обменивается с 1С по протоколу CommerceML: из учётной системы приходят товары, цены и остатки, обратно уходят заказы. Механизм штатный, и большая часть проблем возникает не в нём, а в настройках вокруг.
Как настроить
- Сделайте резервные копии сайта и базы 1С: обмен меняет данные в обеих системах.
- Заведите на сайте отдельного пользователя для обмена с минимальными правами, не администратора.
- Проверьте в административной части настройки модуля обмена: адрес обработчика, права на импорт каталога, лимиты на размер файла.
- В 1С создайте узел обмена с сайтом и соглашение: укажите адрес сайта, логин и пароль служебного пользователя.
- Настройте, что выгружается: разделы, свойства, изображения, типы цен, склады.
- Разделите потоки: полная выгрузка каталога по ночам, цены и остатки — чаще.
- Включите приём заказов с сайта и сопоставьте статусы заказов сайта со статусами документов 1С.
- Прогоните пробный обмен на небольшой группе товаров и проверьте результат на сайте.
- Настройте расписание и контроль: кому уходит уведомление, если обмен упал.
Как устроен обмен внутри
Понимание механики экономит часы при разборе сбоев, поэтому коротко. Инициатор обмена всегда 1С: сайт её адрес не знает и сам ничего не запрашивает. Учётная система обращается к обработчику /bitrix/admin/1c_exchange.php и ведёт диалог по шагам.
- Авторизация. 1С представляется логином и паролем служебного пользователя и получает идентификатор сессии.
- Согласование параметров. Сайт сообщает, умеет ли распаковывать архивы и какой максимальный размер одной порции данных он принимает.
- Передача файлов. Выгрузка режется на части по этому лимиту и дописывается в каталог
/upload/1c_catalog/. Файлы разделены по смыслу: разделы и товары, торговые предложения, цены, остатки. - Импорт. Самый долгий этап: данные читаются во временную таблицу, затем создаются метаданные, разделы, товары. Сайт отвечает «идёт обработка» с процентом, пока не закончит.
- Деактивация. При полной выгрузке сайт скрывает товары и разделы, которых не было в этой сессии.
Последний шаг объясняет классическую аварию: если выгрузка оборвалась на середине, а деактивация всё же отработала, с витрины пропадёт всё, что не успело приехать.
Какой модуль ставить
Вендор выпускает два поколения модулей. Версии 8.x работают как расширение и не меняют конфигурацию 1С, поэтому её обновления не ломают обмен. Версии 7.x встраиваются в конфигурацию: при каждом обновлении учётной системы модуль приходится ставить заново. Для новых проектов берите расширение.
Отдельная история — Управление торговлей 10.3: последний модуль для неё вышел в ноябре 2020 года, развитие прекращено. Работать будет, развиваться нет. Актуальные версии под каждую конфигурацию собраны в справочнике модулей обмена.
Что продумать заранее
- Источник истины. Номенклатура и цены живут в 1С, сайт их отображает. Правки каталога руками на сайте будут затираться следующей выгрузкой.
- Свойства товаров. Их структура в 1С и на сайте должна совпадать, иначе фильтры в каталоге работать не будут.
- Правило отсутствующих товаров. Решите, что делать с позициями, которых нет в выгрузке: скрывать или оставлять. Неверная настройка плюс неполная выгрузка — и каталог пустеет.
- Объём. Для каталога в десятки тысяч позиций обмен разбивают на пакеты и поднимают лимиты времени выполнения на сервере.
Если каталог большой
На объёмах в сотни тысяч позиций и десятках поставщиков обмен упирается уже не в настройки, а в архитектуру: CMS плохо справляется с ролью обработчика данных. Признаки и решение разобраны в материале когда каталог перерастает CMS.
Диагностика конкретных сбоев — в инструкции почему товары из 1С не попадают на сайт.
Частые вопросы
Зачем отдельный пользователь для обмена?
Чтобы обмен не ломался при смене пароля администратора и чтобы права были минимальными: только импорт каталога и работа с заказами. Это одна из самых частых причин внезапной остановки обмена — поменяли пароль человеку, от имени которого всё работало.
Как часто обновлять остатки?
Остатки и цены меняются чаще, чем сам каталог, поэтому их выносят в отдельный поток и запускают каждые 10–15 минут, а полную выгрузку каталога — ночью. Если гонять всё вместе, сервер будет занят лишней работой, а остатки всё равно устареют.
Можно ли обмениваться с нетиповой конфигурацией?
Можно, но потребуется доработка правил выгрузки на стороне 1С. Типовой обмен рассчитан на типовые конфигурации: Управление торговлей 11.5, ERP 2, Комплексную автоматизацию 2, Управление нашей фирмой 3.0 и Розницу 2.3. Чем сильнее доработан учёт, тем больше работы на стыке, и объём оценивают до старта по структуре номенклатуры и документов.