Статус оплаты и отгрузки — это не текстовые статусы заказа, а служебные флаги в XML-обмене CommerceML. Именно они говорят 1С, что заказ проплачен и что его пора отгружать, а сайту — что документ реализации проведён. Разбираемся, где эти признаки живут и как настроить их корректную передачу в обе стороны.
Что именно передаётся: флаги, а не «статусы»
В обмене заказами между 1С-Битрикс и 1С участвуют не привычные пользователю статусы (N, P, F), а два служебных признака внутри XML-документа заказа: оплачен и отгружен/доставлен. В формате CommerceML они передаются реквизитами документа Документ в узле orders.
- Оплата. Реквизит
Заказ оплаченсо значениемtrue/false, а также блокПлатёжс суммой, датой и типом. - Отгрузка. Реквизит
Заказ отгружен(в старых версиях —Доставка разрешена) и признакОтменён. - Финализация. Реквизит
Финальный статус— сигнал, что заказ закрыт и больше не редактируется на сайте.
Текстовые статусы из справочника заказов Битрикса в 1С напрямую не уезжают — 1С оперирует именно флагами. Поэтому «передать статус» на практике означает маппинг статуса заказа Битрикса на признаки оплаты/отгрузки.
В какую сторону идёт признак
Ключевой момент, который путают чаще всего: оплата и отгрузка ходят в разных направлениях в зависимости от того, где происходит событие.
| Событие | Источник | Приёмник |
|---|---|---|
| Онлайн-оплата на сайте (эквайринг, ЮKassa) | Сайт | 1С |
| Оплата в кассе / по счёту в 1С | 1С | Сайт |
| Отгрузка, проведение реализации | 1С | Сайт |
| Отметка «выдан» менеджером на сайте | Сайт | 1С |
Обмен двусторонний: при выгрузке заказов сайт отдаёт свои признаки, а во встречном пакете 1С возвращает файл import.xml с обновлёнными флагами. Побеждает та сторона, которая изменила заказ последней в рамках сессии обмена, поэтому важно не редактировать один и тот же признак одновременно в двух местах.
Настройка на стороне Битрикса
Приём и передача флагов настраиваются в Магазин → Настройки → Обмен с 1С (компонент sale.export.1c и обработчик импорта). Основные шаги:
- Убедитесь, что включён обмен заказами, а не только каталогом — это отдельный узел выгрузки.
- Сопоставьте платёжные системы сайта с типами оплат 1С в разделе соответствия — иначе признак оплаты придёт «в никуда».
- Настройте, какой статус заказа выставлять при получении флага
Заказ оплачениЗаказ отгружениз 1С — это делается в настройках обмена, поля «Статус оплаченного заказа» и «Статус отгруженного заказа».
sale используется сущность Платёж (Payment) и Отгрузка (Shipment), отделённые от самого заказа. Флаг оплаты пишется в конкретный платёж, а отгрузки — в конкретную отгрузку, а не в заказ целиком.Что настраивается в 1С
Со стороны 1С за признаки отвечает типовая обработка обмена (ОбменССайтом / узел плана обмена с сайтом). Проверьте в настройках узла:
- Выгружать оплату. Обработка формирует блок
Платёж, когда по заказу проведён приходный кассовый ордер или платёжное поручение. - Выгружать отгрузку. Признак
Заказ отгруженставится по проведённому документу «Реализация товаров и услуг». - Правила загрузки. Как 1С реагирует на пришедший с сайта флаг оплаты: создавать документ оплаты автоматически или только помечать заказ.
Частая ошибка внедрения — ожидание, что отгрузка «сама» уедет на сайт. Она уедет только после проведения реализации в 1С и запуска очередного сеанса обмена по расписанию.
Логика сопоставления статусов
Поскольку в 1С только флаги, а в Битриксе — цепочка статусов, нужно заранее описать таблицу соответствий и согласовать её с менеджерами. Пример типового маппинга:
| Событие в 1С | Флаг | Статус на сайте |
|---|---|---|
| Проведена оплата | Заказ оплачен = true | «Оплачен» (P) |
| Проведена реализация | Заказ отгружен = true | «Отгружен» / «Выполнен» (F) |
| Отмена документа | Отменён = true | «Отменён» |
Финальный статус), Битрикс перестаёт принимать по нему изменения из 1С. Если реализацию провели позже оплаты, а заказ уже финализирован, отгрузка не подтянется — заказ придётся «размораживать» вручную.Как проверить и отладить
Отладка почти всегда сводится к разбору XML и логов. Полезные точки контроля:
- Каталог обмена. Файлы сессии лежат в
/bitrix/php_interface/dbconn.php-каталоге экспорта, обычно/upload/1c_exchange/. Ищитеorders_*.xmlи проверяйте наличие реквизитов оплаты/отгрузки. - Лог обмена. Включите режим отладки в настройках обмена — появится файл
1c_exchange.logс пошаговыми запросамиcheckauth,init,query,success. - История заказа. В карточке заказа Битрикса на вкладке изменений видно, каким сеансом обмена был проставлен статус.
Если флаг ушёл, а статус не сменился — почти всегда дело в незаполненном соответствии «платёжная система ↔ тип оплаты 1С» или в правиле статусов, где для нужного флага не выбран целевой статус.
Типичные проблемы
Набор ошибок повторяется от проекта к проекту:
- Оплата на сайте не видна в 1С. Платёжная система создана в Битриксе, но не сопоставлена с видом оплаты 1С — блок
Платёжуходит без привязки и игнорируется обработкой. - Отгрузка «застревает». Реализация не проведена или узел плана обмена в 1С не выгружает заказы, только каталог.
- Двойная смена статуса. Менеджер меняет статус вручную и одновременно приходит флаг из 1С — статусы «прыгают». Решается разделением зон ответственности.
- Заказ финализирован раньше времени. Отгрузка после финального статуса не принимается (см. предупреждение выше).
- Частичная оплата. Стандартный флаг
Заказ оплаченбинарный — предоплату он не отражает, нужен обмен через сущностьPaymentс суммами.
Итог
Передача оплаты и отгрузки в 1С — это работа не со «статусами», а со служебными флагами CommerceML: оплата чаще идёт с сайта в 1С, отгрузка — из 1С на сайт. Чтобы всё работало предсказуемо, нужны три вещи: корректное соответствие платёжных систем и типов оплат, продуманная таблица маппинга флагов на статусы заказа и аккуратное обращение с финальными статусами. Отдельного внимания требуют частичные оплаты и разделение зон, где заказ правит менеджер, а где — 1С.
Если обмен заказами уже «плывёт» или его нужно выстроить с нуля, мы помогаем настроить признаки оплаты и отгрузки, доработать типовую обработку под частичные платежи и наладить мониторинг сессий обмена, чтобы флаги не терялись между сеансами.
Частые вопросы
Почему статус заказа с сайта не передаётся в 1С?
1С принимает не текстовые статусы, а флаги оплаты и отгрузки. Если статус Битрикса не сопоставлен с этими признаками в настройках обмена, в 1С не уйдёт ничего.
Оплата прошла на сайте, но в 1С заказ не помечен оплаченным. В чём дело?
Чаще всего платёжная система сайта не сопоставлена с видом оплаты в 1С. Блок платежа уходит в XML, но обработка обмена его не привязывает и игнорирует.
Отгрузка в 1С проведена, а на сайте статус не сменился. Почему?
Признак отгрузки формируется только после проведения документа «Реализация товаров и услуг» и уезжает на сайт в следующем сеансе обмена. Проверьте, что узел плана обмена выгружает заказы, а не только каталог.
Можно ли передать частичную оплату (предоплату)?
Стандартный флаг «Заказ оплачен» бинарный и предоплату не отражает. Для частичных платежей нужен обмен через сущность Payment с передачей конкретных сумм и дат.
Что такое финальный статус и чем он опасен для обмена?
Это статус из группы «финальных», после которого Битрикс перестаёт принимать изменения заказа из 1С. Если реализацию провели после финализации, отгрузка не подтянется, пока заказ не вернут в нефинальный статус.
Где посмотреть, ушёл ли флаг оплаты или отгрузки?
В каталоге обмена (обычно /upload/1c_exchange/) в файлах orders_*.xml и в логе 1c_exchange.log при включённой отладке. Там видны реквизиты «Заказ оплачен» и «Заказ отгружен».
Почему статусы заказа «прыгают» туда-сюда?
Обычно из-за одновременного редактирования: менеджер меняет статус вручную, а встречный сеанс обмена перезаписывает его флагом из 1С. Нужно чётко разделить, какая сторона отвечает за оплату, а какая — за отгрузку.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.