Настройка лимитов кредитования для B2B-клиентов 1С-Битрикс
Кредитный лимит — это максимальная сумма неоплаченных заказов, которую компания может иметь одновременно. Если лимит превышен, новые заказы не принимаются до погашения долга. Без этой проверки в Битриксе портал принимает заказы даже у клиентов с уже накопленной задолженностью выше допустимой.
Где хранятся данные о лимитах
Битрикс не имеет встроенного механизма кредитных лимитов — это данные из бухгалтерской системы. Источник данных — 1С. Синхронизация по схеме:
1С выгружает JSON/XML → агент Битрикс читает файл или запрашивает REST-сервис → данные пишутся в Highload-блок b2b_credit_status.
Структура Highload-блока:
| Поле | Описание |
|---|---|
UF_COMPANY_ID |
ID компании в Битриксе |
UF_1C_COMPANY_ID |
Код контрагента в 1С |
UF_CREDIT_LIMIT |
Установленный лимит |
UF_USED_AMOUNT |
Использованная сумма (неоплаченные заказы) |
UF_OVERDUE_AMOUNT |
Просроченная задолженность |
UF_OVERDUE_DAYS |
Дней просрочки |
UF_BLOCK_ORDERS |
Флаг блокировки заказов |
UF_UPDATED_AT |
Время последней синхронизации |
Проверка при оформлении заказа
Обработчик события OnBeforeSaleOrderAdd:
- Получаем компанию текущего пользователя из
b2b_company_users - Читаем запись
b2b_credit_statusдля этой компании - Если
UF_BLOCK_ORDERS= true или (UF_USED_AMOUNT+ сумма нового заказа) >UF_CREDIT_LIMIT— добавляем ошибку, заказ не создаётся - Текст ошибки: «Превышен кредитный лимит. Доступно: X руб. Задолженность: Y руб.»
Для VIP-клиентов с безлимитным кредитом — поле UF_CREDIT_LIMIT = 0, в проверке обрабатываем как «без ограничений».
Отображение лимита в кабинете
В личном кабинете B2B-клиента виджет с актуальным состоянием лимита: прогресс-бар (использовано/доступно), сумма просрочки если есть, дата обновления данных. Если данные обновлялись более 12 часов назад — пометка «Данные могут быть устаревшими».
При наличии блокировки — предупреждение в шапке каждой страницы кабинета. Кнопка «Оформить заказ» в корзине заменяется на «Свяжитесь с менеджером для снятия блокировки» со ссылкой на контакты.
Синхронизация и актуальность данных
Агент обновления запускается каждые 2-4 часа через CAgent::AddAgent. Дополнительно — событийный триггер: при смене статуса заказа на «Оплачен» в Битриксе (из 1С через вебхук) — принудительно обновляем запись клиента.
Настройка хранилища и проверки при оформлении: 1 неделя. С синхронизацией из 1С и виджетом в кабинете: 2-3 недели.







