Настройка обмена статусами оплаты между 1С и 1С-Битрикс
Статус оплаты заказа — один из главных источников конфликтов при интеграции 1С и Битрикс. Оплата может прийти в 1С через банковскую выписку, а Битрикс об этом не узнает. Или наоборот: платёж прошёл через эквайринг на сайте, попал в Битрикс, а в 1С документ не создан. Синхронизация статусов оплаты устраняет эти расхождения.
Откуда приходит информация об оплате
Понять архитектуру синхронизации невозможно без понимания того, где фактически фиксируется оплата:
Сценарий 1: Онлайн-оплата на сайте. Покупатель платит картой через эквайринг (Сбербанк, Тинькофф, ЮКасса). Платёж фиксируется в Битрикс через коллбэк платёжной системы. Нужно передать факт оплаты в 1С — чтобы бухгалтер не разносил банковскую выписку вручную.
Сценарий 2: Оплата по счёту (B2B). Покупатель получает счёт (из 1С или с сайта), платит через банк. Платёж приходит в 1С через банковскую выписку (ПоступлениеДенежныхСредств). Нужно передать факт оплаты из 1С в Битрикс — чтобы заказ сменил статус и покупатель получил уведомление.
Сценарий 3: Оплата наличными при получении. Курьер или пункт выдачи фиксирует оплату. Зависит от системы: либо через Битрикс (приложение курьера), либо через 1С (кассовый документ).
Для каждого сценария — своя логика синхронизации.
Передача онлайн-оплаты из Битрикс в 1С
При успешной оплате в Битрикс создаётся платёж (Bitrix\Sale\Payment) с PAID = Y. При следующем обмене заказов этот статус передаётся в XML:
<Документ>
<Ид>заказ-guid</Ид>
<Оплачен>true</Оплачен>
<СуммаОплаты>4500.00</СуммаОплаты>
<ДатаОплаты>2024-03-15T14:30:00</ДатаОплаты>
</Документ>
В 1С при импорте заказа с <Оплачен>true</Оплачен> можно настроить автоматическое создание документа «Поступление денежных средств» (для 1С:Бухгалтерия) или операции в регистре взаиморасчётов (для 1С:УТ).
Это автоматизирует разноску онлайн-платежей и снимает с бухгалтера рутину.
Передача статуса оплаты из 1С в Битрикс
Когда банковская выписка разнесена в 1С и документ «Поступление» проведён — нужно обновить заказ в Битрикс.
Механизм: при изменении статуса документа заказа в 1С (или при проведении поступления денег) — отмечаем заказ как «Оплачен». При следующем обмене заказов 1С отправляет обновлённый статус в Битрикс.
На стороне Битрикс обработчик обновления заказа из 1С:
// При получении обновления заказа из 1С
if ($arOrder['PAID'] === 'Y') {
$payment = $order->getPaymentCollection()->getItemByIndex(0);
if ($payment && $payment->isPaid() === false) {
$payment->setPaid('Y');
$order->save();
// Запуск автоматических событий: email покупателю, уведомление менеджеру
}
}
Частичная оплата
В B2B-сценариях часто встречается частичная оплата: аванс 30% → остаток 70%. В 1С это два документа поступления. В Битрикс — один заказ с несколькими платежами.
При передаче частичной оплаты из 1С в Битрикс: можно создавать отдельные платежи для каждого поступления или обновлять единственный платёж с нарастающей суммой. Второй вариант проще в реализации.
Индикация для покупателя: «Оплачено: 1 500 из 5 000 руб. (30%)» — через кастомное свойство заказа PAID_AMOUNT, обновляемое при каждом обмене.
Возвраты: синхронизация в обе стороны
Возврат денег покупателю — ещё один критичный случай. Если возврат инициирован в 1С (менеджер выписал возврат) — об этом нужно уведомить Битрикс, чтобы:
- Обновить статус заказа
- Запустить процесс возврата через эквайринг (если оплата была онлайн)
- Отправить покупателю уведомление
Если возврат инициирован через эквайринг (покупатель сделал чарджбэк) — Битрикс получает уведомление от платёжной системы, статус платежа меняется на «Возвращён», это нужно передать в 1С для создания документа возврата.
Кейс: синхронизация оплаты в реальном времени
Интернет-магазин с высокой долей B2B: 60% заказов оплачиваются по счёту через банк. Проблема: заказ в 1С переходил в статус «Оплачен» только после ручной разноски выписки (1–2 дня). Покупатель видел неактуальный статус.
Решение: настроили автоматическую загрузку банковской выписки в 1С (через сервис «1С-ДиректБанк»). Выписка загружается и автоматически разносится раз в 30 минут. После разноски — регламентное задание запускает обмен с Битрикс, обновляет статус заказа.
Задержка от поступления платежа до обновления статуса на сайте: 30–60 минут. Покупатель получает email о подтверждении оплаты без участия менеджера.
Дополнительно: при поступлении оплаты в Битрикс — автоматически запускается резервирование товара на складе в 1С (через событие изменения статуса заказа, которое вызывает API 1С).







