Налаштування обміну статусами оплати між 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С).







