Автоматизация · 13 мин
Как происходит интеграция 1С и Битрикс: устройство обмена данными
Как происходит интеграция 1С и Битрикс: механизмы обмена, настройка CommerceML, синхронизация товаров и заказов, типичные ошибки и способы их устранения.
Интеграция 1С и Битрикс — это двусторонний обмен данными между учётной системой и сайтом: из 1С на сайт уходят товары, цены и остатки, а с сайта в 1С возвращаются заказы и контрагенты. Без такой связки менеджерам приходится вручную переносить заказы в учётную систему, а контент-менеджерам — следить за актуальностью цен и наличия, что неизбежно приводит к ошибкам и продажам товаров, которых нет на складе.
Технически обмен построен на стандартных механизмах, которые есть и в типовых конфигурациях 1С (Управление торговлей, Комплексная автоматизация, ERP), и в 1С-Битрикс: Управление сайтом. Данные передаются в формате CommerceML — XML-файлах, описывающих каталог, предложения и документы. Сайт и 1С общаются через специальную точку обмена по HTTP(S), поэтому дополнительные каналы связи обычно не требуются.
Ниже разобрано, как устроен обмен, какие варианты интеграции существуют, как настроить типовой обмен по шагам и какие ошибки встречаются чаще всего. Материал ориентирован на администраторов и внедренцев, которые настраивают связку впервые или поддерживают уже работающий обмен.
Как устроен обмен данными между 1С и Битрикс
Основу интеграции составляет протокол обмена коммерческой информацией CommerceML. Когда 1С выгружает каталог, она формирует два файла: import.xml (структура каталога, товары, свойства) и offers.xml (цены и остатки). Сайт получает эти файлы, распаковывает и пошагово обрабатывает: создаёт разделы инфоблока, обновляет элементы, записывает цены и складские остатки.
Обмен заказами идёт в обратную сторону. Сайт формирует файл с заказами в формате CommerceML, 1С забирает его при очередном сеансе обмена, создаёт документы «Заказ покупателя» и контрагентов, а затем возвращает на сайт обновлённые статусы заказов. Так менеджер видит на сайте, что заказ оплачен или отгружен, а покупатель получает актуальный статус в личном кабинете.
Сеанс обмена инициирует 1С: она обращается к специальному скрипту на сайте, проходит авторизацию и дальше работает в режиме «запрос — ответ». Важный нюанс — обмен разбивается на шаги с ограничением по времени, чтобы не упираться в таймауты веб-сервера. Если каталог большой, одна выгрузка может занимать десятки итераций, и это нормально.
Какие варианты интеграции существуют
Первый вариант — типовой обмен через CommerceML, встроенный в конфигурации 1С и модуль «Интернет-магазин» в Битриксе. Он покрывает большинство задач: выгрузка товаров, цен, остатков, обмен заказами и статусами. Программирование не требуется, достаточно настроить узел обмена и расписание.
Второй вариант — интеграция через REST API Битрикса или веб-сервисы на стороне 1С. Такой подход выбирают, когда нужен обмен в реальном времени (например, мгновенная проверка остатка при оформлении заказа) или нестандартные сущности: бонусные баллы, статусы производства, данные из нескольких баз 1С. Это уже разработка, требующая программиста и сопровождения.
Третий вариант — готовые модули-коннекторы и middleware, которые расширяют типовой обмен: добавляют выгрузку характеристик в торговые предложения, обмен с маркетплейсами, многоскладские остатки. Такие решения сокращают сроки внедрения, но привязывают проект к конкретному поставщику модуля.
Сравнение вариантов
Подходит для стандартного интернет-магазина: товары, цены, остатки, заказы. Ограничение — обмен по расписанию, не в реальном времени.
Подходит для нестандартных сценариев и обмена в реальном времени. Ограничение — нужна разработка и постоянное сопровождение.
Подходят, когда типового обмена чуть-чуть не хватает. Ограничение — зависимость от поставщика модуля и его обновлений.
Что подготовить перед настройкой
Прежде чем настраивать обмен, приведите в порядок данные в 1С. Проверьте, что у товаров заполнены наименования, артикулы и единицы измерения, цены записаны по нужному типу цен, а остатки учитываются на правильных складах. Мусор в справочнике номенклатуры гарантированно «переедет» на сайт, и чистить его там будет сложнее.
На стороне сайта убедитесь, что установлены актуальные обновления модуля «Интернет-магазин», работает HTTPS и сервер выдерживает нагрузку обмена. Для больших каталогов критичны параметры PHP: лимит памяти, максимальное время выполнения скрипта и размер загружаемых файлов. Также создайте отдельного пользователя с правами только на обмен — не используйте учётную запись администратора сайта.
Обязательно сделайте резервную копию базы 1С и сайта перед первой полной выгрузкой. Первый обмен создаёт на сайте сотни и тысячи элементов, и если структура каталога была продумана неверно, откат через бэкап окажется быстрее, чем удаление последствий вручную.
Настройка типового обмена по шагам
В типовой «1С: Управление торговлей» обмен настраивается в разделе «CRM и продажи» (или «Администрирование») → «Обмен с сайтом». Создаётся узел обмена, в котором указывается адрес сайта, логин и пароль пользователя обмена, а также настраиваются отборы: какие товары, типы цен и склады участвуют в выгрузке.
На стороне Битрикса проверьте настройки в разделе «Магазин» → «Интеграция с 1С». Здесь задаются параметры импорта: инфоблок каталога, инфоблок торговых предложений, действия с отсутствующими в выгрузке товарами (деактивировать, удалить или ничего не делать), а также лимиты времени на шаг обмена.
После настройки выполните тестовый обмен на небольшой группе товаров: ограничьте отбор одним разделом и проверьте, что товары появились в правильном инфоблоке, цены и остатки записались корректно, а картинки загрузились. Только после успешного теста расширяйте отбор до полного каталога и включайте обмен по расписанию.
- 1Создайте на сайте пользователя с правами на обмен с 1С
- 2В 1С создайте узел обмена с сайтом и укажите адрес, логин и пароль
- 3Настройте отбор товаров, типы цен и склады для выгрузки
- 4На сайте проверьте привязку выгрузки к инфоблокам и действия с отсутствующими товарами
- 5Выполните тестовую выгрузку одной группы товаров и проверьте результат
- 6Настройте обмен заказами и статусами
- 7Включите регламентный обмен по расписанию и контролируйте журнал ошибок
Синхронизация товаров, цен и остатков
Полная выгрузка каталога выполняется один раз — при первичном запуске или после серьёзной реструктуризации. Дальше работает режим выгрузки изменений: 1С регистрирует в узле обмена только изменённые товары, цены и остатки, что сокращает сеанс обмена с часов до минут. Если изменения не регистрируются, проверьте, что объекты не исключены из отбора узла.
Сопоставление товаров происходит по уникальному внешнему коду (GUID), который 1С присваивает каждому объекту при первой выгрузке. Именно поэтому нельзя вручную создавать на сайте товары-дубли и ждать, что они «свяжутся» с 1С сами по себе — для обмена это будут разные объекты. Склейка возможна только через сопоставление по артикулу или наименованию силами разработчика.
Остатки и цены имеет смысл выгружать чаще, чем описания товаров: цены — несколько раз в день, остатки — каждые 15–60 минут при активных продажах. Учтите, что остаток на сайте всегда немного отстаёт от реального, поэтому для товаров с малым запасом настройте резервирование или порог «доступно к заказу» с запасом.
Обмен заказами и статусами
Заказы с сайта передаются в 1С при очередном сеансе обмена. Для каждого заказа 1С создаёт документ «Заказ покупателя», а покупателя записывает в справочник контрагентов, сопоставляя по ИНН, телефону или email — правила поиска задаются в настройках обмена. Некорректные правила поиска контрагентов — частая причина дублей в справочнике.
В обратную сторону из 1С на сайт уходят статусы: оплата, отгрузка, отмена. Соответствие статусов сайта и 1С настраивается в параметрах обмена, и его нужно согласовать с бизнес-процессом: например, решить, какой статус в 1С означает «заказ собран и передан в доставку» на сайте. Расхождения в этой матрице приводят к тому, что покупатели видят неверные статусы.
Контролируйте очередь необработанных заказов: если обмен остановился, заказы копятся на сайте, а менеджеры их не видят. Настройте уведомление администратору при ошибках обмена и периодически сверяйте количество заказов на сайте и в 1С за один и тот же день.
Как проверить результат обмена
Количество элементов в инфоблоке совпадает с отбором в 1С, цены и остатки совпадают с учётными
Дубли товаров, пустые цены, остатки не меняются от обмена к обмену
Заказ с сайта появляется в 1С в течение одного интервала обмена, контрагент найден, а не создан дубль
Заказы висят на сайте, в 1С растёт число контрагентов с одинаковыми телефонами
Сеансы завершаются без ошибок, время выгрузки стабильно
Ошибки авторизации, обрывы по таймауту, рост времени сеанса
Типичные ошибки и их устранение
Самая частая проблема — обрыв обмена по таймауту на больших каталогах. Лечится уменьшением объёма данных за один шаг, увеличением лимитов PHP и переходом на режим выгрузки изменений вместо полной выгрузки. Также проверьте, не ограничивает ли хостинг длительность запросов на уровне веб-сервера или прокси.
Вторая группа проблем — дубли товаров и разделов. Они появляются, если каталог выгружали в разные инфоблоки, меняли привязку выгрузки или удаляли на сайте элементы, созданные обменом: при следующем сеансе 1С создаёт их заново. Удалять выгруженные объекты нужно осознанно, понимая, что внешний код остался в 1С.
Третья группа — ошибки авторизации и прав доступа: обмен перестаёт работать после смены пароля пользователя, обновления сайта или смены адреса. Держите параметры подключения задокументированными, а после каждого обновления Битрикса выполняйте контрольный сеанс обмена.
Когда типового обмена недостаточно
Типовой обмен работает по расписанию, поэтому задачи реального времени он не решает. Если нужно проверять остаток в момент оформления заказа, показывать покупателю персональные цены или резервировать товар сразу при оплате — потребуется доработка через REST API Битрикса или HTTP-сервисы на стороне 1С.
Ещё одна граница — нестандартные данные: несколько юрлиц в одной базе, обмен с несколькими сайтами из одной 1С, интеграция с внешними сервисами доставки и оплаты напрямую из 1С. В таких сценариях типовой узел обмена используют как основу и расширяют его собственными обработчиками.
Перед заказом доработки зафиксируйте требования в виде сценариев: какие данные, в каком направлении, с какой частотой и кто отвечает за ошибки. Это избавит от ситуации, когда доработка написана, но не учитывает реальный бизнес-процесс.
Как выбрать подход
FAQ
Можно ли настроить обмен без программиста?
Типовой обмен CommerceML настраивается штатными средствами: узел обмена в 1С и параметры импорта в Битриксе. Программист нужен, когда требуются нестандартные данные, обмен в реальном времени или исправление последствий дублей и ошибок сопоставления.
Как часто нужно запускать обмен?
Ориентируйтесь на скорость изменения данных: остатки при активных продажах — каждые 15–60 минут, цены — несколько раз в день, полный каталог с описаниями — по мере изменений. Заказы забираются вместе с каждым сеансом обмена, поэтому интервал определяет и скорость их поступления к менеджерам.
Что делать, если на сайте появились дубли товаров?
Сначала остановите обмен, чтобы дубли не размножались. Затем определите, какие элементы созданы обменом (у них заполнен внешний код), удалите лишние и проверьте настройки привязки выгрузки к инфоблокам. Если дублей много, быстрее восстановить сайт из копии и повторить настройку корректно.
Почему заказы с сайта не попадают в 1С?
Наиболее вероятные причины: ошибка авторизации пользователя обмена, обрыв сеанса по таймауту, отключённый обмен заказами в настройках узла или ошибка в данных заказа (например, пустое обязательное поле). Начните с журнала обмена на сайте и в 1С — там указан конкретный шаг, на котором произошёл сбой.
Безопасно ли открывать обмен через интернет?
Да, при соблюдении базовых мер: обмен только по HTTPS, отдельный пользователь с минимально необходимыми правами, сложный пароль и, по возможности, ограничение доступа к скрипту обмена по IP-адресу сервера 1С. Не используйте для обмена учётные записи администраторов.
Что произойдёт с товарами на сайте, если в 1С поменять структуру каталога?
При следующей выгрузке структура разделов на сайте обновится в соответствии с новой иерархией из 1С: товары переместятся в новые разделы. Старые разделы, отсутствующие в выгрузке, обработаются по настройке «действие с отсутствующими элементами». Перед реструктуризацией сделайте копию сайта и проверьте результат на тестовой выгрузке.
Что важно запомнить
Интеграция 1С и Битрикс строится на типовом обмене CommerceML: товары, цены и остатки идут из 1С на сайт, заказы — обратно. Настройка начинается с чистых данных в 1С, тестовой выгрузки и резервной копии; работающий обмен требует мониторинга журнала ошибок и режима выгрузки изменений. Для задач реального времени и нестандартных сценариев типовой обмен дополняют доработкой через API.