К другим статьям
1С-БитриксОбмен даннымиЗаказыCommerceML
Для бизнеса

Заказы с сайта не уходят в 1С: как диагностировать обмен

Заказы с сайта не уходят в 1С: как диагностировать обмен

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

Как проектировать обмен целиком — в чек-листе до запуска. Здесь только ситуация «оплата или оформление прошло, в учёте пусто».

Сначала докажите, что сайт вообще отправил документ

Откройте заказ в админке Битрикс и ответьте письменно:

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

Типовой обмен часто не выгружает заказ в момент нажатия «оформить». Он ждёт статус, оплату, агента по cron или ручной запуск. Если правило — «только после оплаты», неоплаченный заказ в 1С не появится, и это ожидаемое поведение.

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

Три развилки, не одна «ошибка обмена»

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

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

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

Согласуйте таблицу: статус сайта → действие обмена → статус в 1С. Без неё исполнитель и учёт спорят на каждом заказе.

Типичные разрывы:

  • сайт считает заказ «выполнен», 1С ждёт «к обеспечению»;
  • онлайн-оплата меняет статус через webhook позже, чем сработал обмен;
  • отмена на сайте не должна создавать документ в 1С, но правило не записано;
  • менеджер меняет статус руками, обмен воспринимает это как новый документ или наоборот игнорирует.

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

Поля, из‑за которых 1С молча отказывает

1С часто не создаёт документ, если не с чем работать: контрагент, договор, организация, склад, ставка НДС, номенклатура без XML_ID. На сайте при этом заказ выглядит нормально: ФИО, телефон, состав корзины.

Проверьте на проблемном заказе:

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

Отказ может быть в журнале 1С как предупреждение при «успешном» сеансе обмена. Зелёный статус транспорта не равен проведённому заказу.

Повторная отправка и дубли

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

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

Журналы и агенты

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

Проверьте, что агент обмена активен, NEXT_EXEC не в прошлом на часы, cron реально бьёт в PHP. Как смотреть агентов — в заметке про cron и b_agent. Если агент жив, а заказов в логе нет, снова вернитесь к статусу и отбору, а не к серверу.

Сбой обмена каталога (цены, остатки) и сбой заказов часто независимы. Каталог может быть свежим, а заказы стоять. Разбор витрины — в ценах и остатках, которые не совпадают с 1С.

Как проверить одним тестовым заказом

На копии или в согласованное окно на проде:

  1. Оформить заказ с одной простой позицией, без скидки, с заполненными реквизитами.
  2. Довести его до статуса, с которого по регламенту идёт выгрузка.
  3. Дождаться прогона или запустить выгрузку вручную.
  4. Найти запись в журнале сайта и документ либо отказ в 1С.
  5. Повторить отправку того же заказа: второго документа быть не должно.
  6. Отдельно проверить заказ с SKU, скидкой, доставкой и юрлицом.

«Один заказ когда-то прошёл» недостаточен, если ломаются только оплаченные или только оптовые.

Не перезапускайте полный обмен каталога, чтобы «подтолкнуть заказы». Это другая очередь и лишняя нагрузка. Формат разбора живого обмена — на странице интеграции с 1С.

Итог

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

Похожая задача?

Разберём вашу ситуацию с 1С-Битрикс

Опишите, что сейчас не работает или что нужно сделать — отвечу с планом и ориентиром по срокам.