ФиксИнтернет-магазин на 1С-Битрикс под ключ за 30 дней по фиксированной цене

Выгрузка заказов из 1С-Битрикс в 1С и обратно

Двусторонний обмен заказами между 1С-Битрикс и 1С по CommerceML

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

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

Коротко

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

Зачем нужен двусторонний обмен

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

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

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

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

Важно понимать разделение потоков данных:

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

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

Что уходит в 1С вместе с заказом

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

Группа данныхЧто входитЗачем в 1С
Состав заказаТовары, количества, цены, скидкиФормирование документа и резерв
ПокупательКонтакты, для B2B — контрагент и реквизитыПривязка к клиенту, счёт
ОплатаСпособ, статус, суммаКонтроль оплаты
ДоставкаСпособ, адрес, стоимостьОформление отгрузки
СлужебноеИдентификатор заказа, дата, комментарииСопоставление и защита от дублей

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

Что возвращается из 1С на сайт

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

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

Сопоставление номенклатуры

Самая частая причина «поломанных» заказов — товары в заказе не сопоставились с номенклатурой 1С. Чтобы позиция заказа «приклеилась» к нужному элементу справочника, между сайтом и 1С должен быть стабильный общий код — обычно внешний код (XML_ID) элемента.

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

Карта статусов заказа

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

  1. Опишите статусы сайта. Принят, оплачен, собирается, отгружён, доставлен, отменён.
  2. Опишите состояния в 1С. Как заказ движется в учётной системе по вашему процессу.
  3. Свяжите их. Каждому состоянию 1С — статус сайта и наоборот, однозначно.
  4. Определите направление. Какие статусы меняет только сайт, какие — только 1С.

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

Кто мастер по данным

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

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

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

Идемпотентность и защита от потерь

Обмен идёт по сети, а сеть иногда падает. Надёжный обмен спроектирован так, что сбой не приводит к потере или задвоению заказов. Два механизма делают это возможным:

Без этих механизмов любой обрыв связи оборачивается инцидентом: заказ то ли ушёл, то ли нет, менеджер создаёт дубль, покупатель получает товар дважды или не получает вовсе. Идемпотентность — та же дисциплина, что и в обработке вебхуков платежей; принципы одинаковы и описаны в статье про REST и безопасность.

Частота обмена и нагрузка

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

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

Настройка пошагово

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

Мониторинг и обработка ошибок

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

Встроить проверки обмена в процесс выкатки и следить за здоровьем интеграции помогает настроенный CI/CD, а нестандартную логику обмена оформляют отдельным модулем.

Частые ошибки обмена

Чек-лист внедрения

  1. Коды стабильны. Товары и предложения сопоставляются по неизменным идентификаторам.
  2. Обмен двусторонний. Заказы уходят в 1С, статусы и оплата возвращаются на сайт.
  3. Защита от потерь. Идемпотентность и подтверждение работают при сбоях.
  4. Мастера данных определены. У каждого поля один хозяин, конфликтов нет.
  5. Статусы сопоставлены. Карта статусов сайта и 1С согласована и однозначна.
  6. Частота настроена. Заказы часто, каталог по расписанию, нагрузка под контролем.
  7. Мониторинг включён. Логи, очередь на повтор, уведомления о сбоях.
  8. Протестировано. Заказ, статусы, оплата, отгрузка и поведение при обрыве связи проверены.

Вывод

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

Спроектируйте эти основы до настройки, добавьте мониторинг и обработку ошибок — и обмен перестанет быть источником ночных инцидентов. Заказы будут вовремя попадать в работу, покупатели — видеть реальные статусы, а данные сайта и 1С — совпадать. Это и есть фундамент автоматизированной торговли на 1С-Битрикс.

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

По какому протоколу происходит обмен заказами с 1С?

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

Как часто нужно выгружать заказы?

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

Что передаётся вместе с заказом в 1С?

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

Как избежать потери и задвоения заказов?

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

Как статусы заказа с сайта соотносятся со статусами в 1С?

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

Кто главный по данным — сайт или 1С?

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

Что делать, если обмен упал ночью?

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

Нужна ли доработка или хватит типового обмена?

Типовой обмен по CommerceML закрывает базовый сценарий: выгрузка заказов и возврат статусов. Но реальные проекты почти всегда требуют доработки: сопоставление сложной номенклатуры, B2B-реквизиты и договоры, нестандартные статусы, разделение оплат, высокая частота и объём. Чем сложнее бизнес-процесс и больше заказов, тем выше вероятность, что понадобится кастомная логика поверх штатного механизма.

Поделиться:

Заказы теряются или расходятся с 1С?

Настроим надёжный двусторонний обмен заказами: выгрузку, возврат статусов и оплаты, защиту от потерь и дублей, мониторинг сбоев. Работаем с 1С-Битрикс.

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: настраиваем обмен товарами, ценами, остатками и заказами с 1С для среднего и крупного бизнеса.

← Все статьи блога