-10%Переходите к нам от другого подрядчика — дадим скидку на первый этап работ

Кредитные лимиты и отсрочка платежа для B2B-портала на 1С-Битрикс

Кредитный лимит и отсрочка платежа в B2B-кабинете на 1С-Битрикс: баланс контрагента, доступный остаток и контроль дебиторки

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

Эта статья — практическое руководство, как выстроить кредитные лимиты и отсрочку платежа на B2B-портале, собранном на 1С-Битрикс: какую модель данных завести, как проверять лимит при оформлении заказа, как блокировать превышение и просрочку, как обмениваться взаиморасчётами с 1С и что показывать дилеру в личном кабинете. Это выжимка из наших внедрений по разработке B2B-порталов на 1С-Битрикс — без общих слов, с конкретикой по событиям, свойствам и обмену.

Коротко

  • Кредитный лимит — потолок долга на контрагента; отсрочка — срок, за который он обязан оплатить отгрузку.
  • Доступный остаток = лимит − текущая дебиторка − сумма неоплаченных заказов в работе.
  • Проверка лимита вешается на события оформления заказа модуля sale; превышение блокирует или уводит на согласование.
  • Просрочка блокирует новые заказы, даже если формально лимит не выбран.
  • Сальдо, оплаты и лимит приходят из 1С обменом взаиморасчётов; кабинет показывает актуальный баланс и остаток.

Зачем оптовикам отсрочка и кредитный лимит

Чтобы правильно спроектировать механику, надо понимать экономику по обе стороны сделки. Для дилера отсрочка — это способ работать с чужими деньгами: он берёт партию товара, продаёт её своим клиентам и рассчитывается с поставщиком уже из выручки. Без отсрочки ему пришлось бы замораживать собственный оборотный капитал на весь цикл «закупка — продажа — поступление денег», а это либо кредит в банке, либо отказ от закупки. Поэтому наличие отсрочки для многих оптовиков — не бонус, а условие, при котором они вообще выбирают поставщика.

Для поставщика отсрочка — инструмент конкуренции и роста среднего чека. Клиент, которому не нужно вынимать деньги здесь и сейчас, закупает больше и чаще, охотнее пробует новые позиции, реже уходит к конкурентам. Но у медали есть обратная сторона: каждая отгрузка в долг — это выданный товарный кредит. Если таких кредитов много и они не контролируются, у компании возникает кассовый разрыв: товар уехал, деньги ещё не пришли, а поставщикам и сотрудникам платить надо уже сейчас.

Кредитный лимит — это способ разрешить отсрочку, но ограничить риск. Он отвечает на вопрос «какую максимальную сумму долга мы готовы держать на этом контрагенте одновременно». Лимит назначается индивидуально и опирается на историю платежей, обороты, надёжность клиента и договорённости с финансовым отделом. Новому клиенту дают маленький лимит или не дают вовсе, проверенному — большой. Отсрочка отвечает на второй вопрос — «за какой срок клиент обязан закрыть конкретную поставку». Вместе эти два параметра описывают всю политику товарного кредитования.

Важно: лимит и отсрочка — разные ограничения и работают вместе. Лимит ограничивает сумму одновременного долга, отсрочка ограничивает время до оплаты каждой поставки. Клиент может не превышать лимит, но иметь просрочку — и наоборот. Контролировать нужно обе границы.
Товарный кредит: два ограничения Кредитный лимит ограничивает СУММУ долга занято остаток Лимит: 1 000 000 ₽ Долг: 660 000 ₽ Доступно: 340 000 ₽ Отсрочка платежа ограничивает СРОК оплаты отгрузка срок оплаты просрочка отсрочка 30 дней от отгрузки
Схема: кредитный лимит ограничивает максимальную сумму долга, отсрочка — время до оплаты каждой поставки. Контролировать нужно обе оси.

Модель данных: лимит, сальдо, отсрочка

Первое проектное решение — где и в каком виде хранить финансовые атрибуты контрагента. В B2B на 1С-Битрикс покупатель обычно представлен не только пользователем, но и профилем контрагента (юрлицом). Именно к контрагенту логично привязывать кредитный лимит и баланс, потому что договор и взаиморасчёты ведутся с юрлицом, а не с конкретным сотрудником, который зашёл на портал.

Минимальный набор полей, который нужно завести на контрагента:

ПолеЧто хранитИсточник
Кредитный лимитМаксимально допустимую сумму долга по контрагенту1С / согласование финотдела
Текущее сальдоСумму взаиморасчётов: сколько контрагент должен на данный моментОбмен с 1С
Срок отсрочки (дней)Число дней от отгрузки до обязательной оплатыДоговор / 1С
Валюта расчётовВалюту лимита и сальдоДоговор
Признак «отсрочка разрешена»Разрешён ли товарный кредит вообщеДоговор / статус клиента
Дата последнего обменаКогда баланс синхронизировался с 1ССлужебное

Технически на стороне Битрикса эти атрибуты удобно держать в свойствах профиля контрагента или в отдельной служебной таблице (highload-блок либо своя таблица через ORM D7). Плоские значения — лимит, сальдо, срок — можно вынести в свойства; детализацию по документам (какой заказ, на какую сумму, до какого числа отсрочка) лучше хранить в отдельной таблице строк, потому что их много и они регулярно обновляются обменом.

Отдельно стоит спроектировать таблицу открытых документов — по сути реестр дебиторки. Каждая строка описывает одну неоплаченную (или частично оплаченную) отгрузку: контрагент, номер документа, сумма, оплачено, дата отгрузки, дата, до которой действует отсрочка, признак просрочки. Именно из этой таблицы считаются и текущий долг, и просрочка, и доступный остаток лимита. Держать всё это только в свойствах контрагента нельзя — потеряете детализацию, без которой невозможно ни показать клиенту разбивку, ни корректно блокировать заказы.

Совет: не считайте баланс на лету из заказов Битрикса. Источник истины по взаиморасчётам — 1С: там учтены оплаты, возвраты, корректировки и ручные проводки бухгалтера. Портал только принимает готовые цифры и красиво их показывает. Так вы избежите расхождений между кабинетом и реальным учётом.

Как считается доступный остаток лимита

Ключевая величина всей механики — доступный остаток кредитного лимита. Именно с ним сравнивается сумма нового заказа. Ошибка в его расчёте приводит либо к тому, что клиенту разрешают набрать долгов сверх лимита, либо к тому, что его блокируют без причины. Поэтому формулу стоит зафиксировать явно и одинаково применять и на портале, и в отчёте менеджера.

Базовая формула такая:

Доступный остаток = Кредитный лимит − Текущая дебиторка − Сумма заказов «в работе», где «в работе» — это оформленные, но ещё не отгруженные/не учтённые в сальдо заказы портала.

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

Разберём на примере. Лимит контрагента — 1 000 000 ₽. Сальдо из 1С (отгружено и не оплачено) — 600 000 ₽. На портале висит оформленный, но не отгруженный заказ на 60 000 ₽. Тогда доступный остаток = 1 000 000 − 600 000 − 60 000 = 340 000 ₽. Новый заказ на 400 000 ₽ не пройдёт: он превышает остаток на 60 000 ₽. Заказ на 300 000 ₽ пройдёт и уменьшит остаток до 40 000 ₽.

Из чего складывается лимит 1 000 000 ₽ Дебиторка 600 000 ₽ 60т Доступно 340 000 ₽ Текущая дебиторка (сальдо из 1С) — отгружено, не оплачено Заказы «в работе» на портале — оформлены, не отгружены Доступный остаток — на него можно оформить новый заказ
Схема: доступный остаток — это лимит за вычетом текущей дебиторки и уже оформленных, но не отгруженных заказов портала.

Отдельный вопрос — как учитывать просрочку в остатке. Есть два подхода. Первый: просрочка не меняет формулу остатка, но включает отдельную блокировку — «есть просрочка, новые заказы запрещены до погашения». Второй: просроченный долг вычитается из лимита с повышенным коэффициентом или обнуляет доступный остаток. На практике чаще берут первый подход: он проще, понятнее клиенту и не смешивает две разные проблемы. О блокировке при просрочке — отдельный раздел ниже.

Проверка лимита при оформлении заказа

Теперь самое важное с точки зрения кода — где именно вклиниться в процесс оформления заказа. В 1С-Битрикс за заказы отвечает модуль sale, и у него есть события жизненного цикла заказа. Проверку лимита вешают на серверные события, а не на JavaScript, потому что клиентскую проверку легко обойти, а деньги — вещь серьёзная.

Ключевые точки для обработчика:

Логика обработчика на OnSaleOrderBeforeSaved по шагам:

  1. Определите контрагента заказа. По пользователю и выбранному профилю плательщика найдите юрлицо, к которому привязаны лимит и сальдо. Если отсрочка контрагенту не разрешена — пропускаем проверку (он платит по предоплате) или требуем предоплатный способ оплаты.
  2. Проверьте способ оплаты. Проверка лимита нужна только для оплаты «в кредит» (по счёту с отсрочкой). Если клиент выбрал предоплату, лимит не трогаем — деньги придут вперёд товара.
  3. Посчитайте доступный остаток. Возьмите лимит, вычтите сальдо из 1С и сумму других незакрытых заказов портала этого контрагента.
  4. Проверьте просрочку. Пробегитесь по реестру открытых документов: есть ли отгрузки с истёкшим сроком отсрочки. Если есть — блокировка по просрочке.
  5. Сравните с суммой заказа. Если сумма нового заказа больше доступного остатка — превышение лимита.
  6. Примите решение. В зависимости от политики: заблокировать оформление с сообщением, либо разрешить сохранить, но перевести в статус «на согласовании» для менеджера.
Важно: проверку обязательно дублируйте на сервере, даже если рисуете доступный остаток в корзине через JavaScript. Клиентская подсказка улучшает UX, но единственный настоящий рубеж — обработчик события sale. Всё, что можно обойти в браузере, рано или поздно обойдут.

Ещё один нюанс — конкурентные заказы. Если два сотрудника контрагента оформляют заказы одновременно, оба могут пройти проверку по одному и тому же остатку и вместе превысить лимит. Для критичных внедрений остаток фиксируют транзакционно: на время проверки и сохранения заказа блокируют строку контрагента (SELECT ... FOR UPDATE или логическая блокировка), чтобы расчёт остатка был атомарным. Для большинства оптовых сценариев с редкими одновременными заказами хватает и обычной проверки, но о риске стоит знать заранее.

Блокировка заказов при превышении и просрочке

Блокировка — это не «показать красную надпись», а чётко описанный сценарий с понятным клиенту выходом. Плохая блокировка выглядит как «Ошибка. Заказ не сохранён» без объяснений — клиент не понимает, что делать, и пишет менеджеру или уходит. Хорошая блокировка объясняет причину, показывает цифры и предлагает действие.

Разделяйте две причины блокировки, потому что выходы из них разные:

ПричинаЧто показать клиентуВыход
Превышение лимитаДоступный остаток и на сколько заказ его превышаетУменьшить заказ, оплатить часть долга или запросить одобрение менеджера
Просроченная задолженностьСумму и срок просрочки, список просроченных документовОплатить просрочку; до погашения новые заказы недоступны
Отсрочка не разрешенаЧто этому контрагенту доступна только предоплатаВыбрать предоплатный способ оплаты

По степени жёсткости блокировки бывают трёх видов, и их выбирают под клиента и под сумму:

Для просрочки почти всегда выбирают жёсткий вариант. Логика простая: если клиент уже нарушил договорённость по срокам, наращивать ему долг новыми отгрузками — прямой путь к невозврату. Даже если формально лимит ещё не выбран, просрочка сама по себе достаточное основание, чтобы приостановить отгрузки до погашения. Это дисциплинирует и защищает поставщика.

Заказ оформлен Есть просрочка? Блокировка оплатите просрочку да Лимит превышен? нет На согласование менеджеру да — превышение Проведён остаток уменьшен нет
Схема: сначала заказ проверяется на просрочку, затем на лимит; превышение уводит на согласование, чистый заказ проводится и уменьшает доступный остаток.

Тесно связанная тема — согласование заказов, вышедших за рамки автоматических правил. Механику маршрутов согласования, статусов и уведомлений мы подробно разбираем в статье про согласование заказов на B2B-портале — кредитные блокировки естественно встраиваются в тот же процесс согласования.

Контроль дебиторской задолженности

Дебиторская задолженность — это деньги, которые вам должны за уже отгруженный товар. Управлять ею — значит видеть её структуру: сколько всего должны, кто именно, какая часть в пределах срока, а какая просрочена и на сколько дней. B2B-портал даёт удобную витрину для этой картины, если правильно организовать реестр открытых документов.

Практический инструмент контроля — реестр дебиторки с разбивкой по срокам (aging report, «отчёт по срокам задолженности»). Он группирует долг по «возрасту»: текущий (в пределах отсрочки), просрочка 1–7 дней, 8–30 дней, свыше 30 дней. Такая разбивка сразу показывает проблемные зоны: небольшая свежая просрочка — рабочий момент, а долги старше месяца — сигнал к жёстким мерам.

КатегорияЧто означаетДействие
Текущая (в срок)Отсрочка ещё действуетНаблюдать, напомнить перед сроком
Просрочка 1–7 днейСрок истёк недавноАвтонапоминание, звонок менеджера
Просрочка 8–30 днейУстойчивая задержкаБлокировка новых заказов, претензия
Свыше 30 днейРиск невозвратаЭскалация, работа юротдела

Важно, чтобы дебиторка на портале считалась из достоверного источника. Каждая строка реестра — это документ реализации из 1С с суммой и датой отгрузки, от которой отсчитывается срок отсрочки, плюс сумма поступивших по нему оплат. Долг по строке = сумма документа − оплачено. Признак просрочки = «сегодня позже, чем дата отгрузки + срок отсрочки, и долг больше нуля». Из этих строк складываются и общий баланс контрагента, и разбивка по срокам, и решение о блокировке.

Для менеджера полезно вывести сводный отчёт: список контрагентов, у которых есть просрочка или которые близки к лимиту, отсортированный по сумме риска. Это превращает контроль дебиторки из пассивного «когда-нибудь заметим» в проактивную работу: менеджер каждое утро видит, кому звонить и кого притормозить. Часть этой логики можно вынести в регулярные уведомления, о которых ниже.

Обмен взаиморасчётами и балансом с 1С

Сердце всей механики — обмен данными с 1С. Портал не считает деньги сам, он отражает то, что посчитала учётная система. Из 1С на сайт должны приходить четыре вещи: кредитные лимиты контрагентов, текущее сальдо, реестр открытых документов (отгрузки с суммами и сроками) и поступившие оплаты. Обратно из Битрикса в 1С уходят заказы. Такое разделение ответственности — правильное: учёт живёт в 1С, витрина и оформление — на портале.

Что именно выгружается из 1С:

Технически обмен на 1С-Битрикс обычно строят одним из способов: через типовой протокол обмена CommerceML (расширяя выгрузку взаиморасчётами), через отдельный REST/HTTP-сервис, отдающий баланс по запросу, или через промежуточную интеграционную шину. Для большинства проектов достаточно расширить существующий обмен товарами и заказами дополнительным пакетом взаиморасчётов, который принимает свой обработчик на стороне сайта и раскладывает данные по свойствам контрагента и таблице открытых документов.

Важно: согласуйте частоту обмена с бизнесом. Если баланс обновляется раз в сутки, клиент может оплатить долг утром, а блокировка снимется только ночью — это раздражает. Критичные события (оплата, снятие блокировки) лучше передавать чаще: по расписанию раз в 15–30 минут или по событию оплаты в 1С. Общий обмен документами может идти реже.

Ещё один практический момент — идемпотентность и порядок. Обмен должен корректно переживать повторную загрузку одного и того же пакета (например, при сбое связи), не задваивая оплаты и не путая сальдо. Каждый документ и каждая оплата приходят с уникальным идентификатором из 1С, по которому портал понимает, новая это запись или обновление уже известной. Дату последнего успешного обмена стоит хранить и показывать в кабинете — чтобы и клиент, и менеджер понимали, насколько свежие цифры они видят.

1С учёт и взаиморасчёты B2B-портал Битрикс: кабинет и оформление сальдо · документы · оплаты · лимит заказы обмен по расписанию + событие оплаты · идемпотентно по ID
Схема: 1С остаётся источником истины по деньгам и шлёт на портал сальдо, документы, оплаты и лимиты; портал возвращает в 1С оформленные заказы.

Настройка обмена взаиморасчётами — часть более широкой работы по связке сайта и учётной системы. Общие принципы такой интеграции, форматы и типовые грабли мы разбираем в услуге по интеграциям с 1С и внешними системами.

Отображение баланса и лимита в личном кабинете

Данные посчитаны и синхронизированы — теперь их надо показать так, чтобы клиент понимал своё финансовое положение с первого взгляда. Личный кабинет дилера — то место, где встречаются баланс, лимит, доступный остаток и история расчётов. Хорошо оформленный финансовый блок снимает половину звонков в бухгалтерию с вопросом «сколько я должен».

Что стоит вывести в кабинете:

Важна и точка контакта прямо в корзине. Когда клиент собирает заказ, полезно показывать доступный остаток лимита тут же: «Доступно по лимиту: 340 000 ₽. Ваш заказ: 300 000 ₽». Тогда превышение не станет неприятным сюрпризом на последнем шаге оформления — клиент видит границу заранее и планирует закупку под неё. Это та же серверная величина, что проверяется при сохранении, просто показанная раньше.

Финансовый блок — часть более широкого личного кабинета оптовика с заказами, договорами и ценами. Как устроен такой кабинет целиком — от структуры разделов до прав доступа — мы разбираем в отдельной статье про личный кабинет дилера на 1С-Битрикс. Кредитный блок логично встраивается в него как ещё один раздел.

Уведомления о лимите и просрочке

Молчаливая блокировка на последнем шаге оформления — плохой клиентский опыт. Гораздо лучше предупреждать заранее, чтобы клиент управлял ситуацией, а не упирался в стену. Система уведомлений превращает жёсткий контроль в заботливый: клиент вовремя узнаёт о приближении к лимиту и о приближении срока оплаты и успевает отреагировать.

Набор полезных триггеров:

СобытиеКомуКанал
Выбрано 80% лимитаКлиенту и менеджеруКабинет, e-mail
Лимит почти исчерпан (95%)Клиенту и менеджеруE-mail, мессенджер
3 дня до срока оплатыКлиентуE-mail, SMS/мессенджер
Наступила просрочкаКлиенту и менеджеруE-mail, звонок менеджера
Заказ ушёл на согласованиеМенеджеруКабинет, e-mail, Битрикс24

Технически уведомления удобно строить на агентах и событиях Битрикса. Регулярный агент раз в сутки пробегает по реестру дебиторки, находит контрагентов, приблизившихся к лимиту или к сроку оплаты, и рассылает напоминания по почтовым шаблонам (событиям почтовых событий модуля main). Событийные уведомления (заказ на согласовании, наступление просрочки) шлются в момент действия. Если у поставщика есть Битрикс24, менеджерские оповещения удобно заводить туда как задачи или уведомления — тогда работа с дебиторкой встроена в CRM.

Совет: напоминание об оплате за несколько дней до срока окупается быстрее любой блокировки. Часть просрочек возникает не от нежелания платить, а от того, что клиент банально забыл про срок. Вежливое «через 3 дня оплата по счёту №… на сумму…» снимает изрядную долю просрочки без всякого давления.

Сценарии частичной отгрузки

В опте редко бывает, что заказ отгружается целиком и разом. Часть позиций есть на складе, часть под заказ, что-то отгружается сегодня, что-то через неделю. Частичная отгрузка ломает наивную модель «заказ = долг» и требует аккуратной работы с лимитом и дебиторкой. Разберём, что меняется.

Ключевая идея: долг возникает не в момент оформления заказа, а в момент отгрузки. Пока товар не уехал, юридически долга нет — есть обязательство поставщика отгрузить. Поэтому в дебиторку попадает не сумма заказа, а сумма фактической отгрузки. Если заказ на 100 000 ₽ отгрузили наполовину, в долг встают 50 000 ₽, а не 100 000 ₽. Срок отсрочки по этой части считается от даты именно этой отгрузки.

Отсюда следствия для механики лимита:

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

Заказ 100 000 ₽ → две отгрузки Заказ №1204 оформлен, 100 000 ₽ Отгрузка 1 — 60 000 ₽ · 3 июля оплатить до 2 августа (отсрочка 30 дней) Отгрузка 2 — 40 000 ₽ · 12 июля оплатить до 11 августа (отсрочка 30 дней) Долг растёт по факту отгрузки, у каждой партии — свой срок оплаты
Схема: один заказ отгружается частями, каждая часть создаёт свой долг со своим сроком оплаты — поэтому дебиторка ведётся по отгрузкам, а не по заказам.

Роли: менеджер одобряет превышение

Полностью автоматический контроль без человека работает только в идеальном мире. В реальности бывают ситуации, когда заказ надо провести, несмотря на превышение: клиент вот-вот оплатит, есть личная договорённость, стратегически важная сделка. Для этого нужна роль, которая имеет право одобрить превышение под свою ответственность.

Типовой набор ролей в кредитной механике:

РольПрава
Дилер (клиент)Оформляет заказы, видит свой баланс и лимит, получает уведомления
МенеджерВидит дебиторку своих клиентов, согласует заказы, одобряет превышение в пределах своих полномочий
Руководитель отдела продажОдобряет крупные превышения, меняет лимиты в согласованных границах
Финансовый контролёрУстанавливает лимиты, разрешает/запрещает отсрочку, видит всю дебиторку

Как это работает в потоке. Заказ, превысивший лимит, не блокируется наглухо, а переходит в статус «на согласовании» и попадает в очередь ответственного менеджера. Менеджер видит заказ, доступный остаток, размер превышения и историю платежей клиента — и принимает решение: одобрить, отклонить или запросить предоплату. При одобрении в заказе фиксируется, кто и когда его одобрил и на каком основании. Эта запись — не формальность: она даёт прослеживаемость, если позже возникнут вопросы к невозврату.

Разграничение полномочий по сумме превышения — обязательная практика. Менеджер может одобрить небольшое превышение сам, крупное уходит выше — руководителю или финконтролёру. Так решение о риске принимает тот, кто за этот уровень риска отвечает. Уровни порогов и маршруты согласования настраиваются под структуру компании и естественно ложатся на уже существующий на портале процесс согласования заказов.

Важно: любое одобрение превышения должно логироваться — кто, когда, какой заказ, на какую сумму сверх лимита и по какому основанию. Без этого журнала при возникновении невозврата невозможно понять, кто принял решение о риске, и невозможно улучшить процесс.

Реализация в 1С-Битрикс

Сведём архитектуру в конкретные модули и шаги на платформе. Кредитная механика на 1С-Битрикс собирается из штатных кирпичей — событий модуля sale, хранилища на свойствах и ORM, обмена и почтовых событий. Ничего экзотического не требуется, важна аккуратная сборка.

  1. Хранилище атрибутов контрагента. Заведите поля «Кредитный лимит», «Сальдо», «Срок отсрочки», «Отсрочка разрешена», «Дата обмена» — на свойствах профиля плательщика или в highload-блоке. Реестр открытых документов вынесите в отдельную таблицу через ORM D7 (класс DataManager).
  2. Обработчик проверки лимита. Зарегистрируйте обработчик на событие sale:OnSaleOrderBeforeSaved (и вспомогательный на OnSaleOrderSaved). В нём считайте доступный остаток и просрочку, принимайте решение о блокировке или согласовании.
  3. Статусы заказа. Добавьте статус «На согласовании (превышение лимита)» и, при необходимости, «Заблокирован (просрочка)». Настройте, какие статусы уходят в работу, а какие ждут менеджера.
  4. Обмен взаиморасчётами. Расширьте обмен с 1С пакетом взаиморасчётов: приём сальдо, открытых документов, оплат и лимитов. Обработчик приёма должен быть идемпотентным по идентификаторам из 1С. Повесьте обмен на агент/крон и, для оплат, на событийную передачу.
  5. Личный кабинет. Выведите виджет баланса, реестр документов, историю оплат и доступный остаток в корзине. Данные берите из хранилища, обновляемого обменом.
  6. Уведомления. Настройте почтовые/пуш-события: приближение к лимиту, скорый срок оплаты, просрочка, заказ на согласовании. Регулярные — на агенте, событийные — по факту действия.
  7. Роли и права. Разграничьте, кто видит дебиторку, кто одобряет превышение и до какой суммы. Логируйте одобрения.

Схематично интерфейс менеджера с карточкой согласования превышения выглядит так:

Согласование заказа №1204 — превышение лимита Контрагент ООО «Северный склад» Кредитный лимит 1 000 000 ₽ Текущий долг 660 000 ₽ Доступный остаток 340 000 ₽ Сумма заказа 400 000 ₽ Превышение 60 000 ₽ Одобрить Отклонить Решение фиксируется: кто, когда, основание
Схема: карточка согласования показывает менеджеру лимит, долг, остаток и превышение; решение логируется с автором и основанием. Реальный вид зависит от версии платформы.

Способ оплаты «по счёту с отсрочкой» — отдельная настройка платёжной системы и оформления. Как правильно организовать безналичную оплату по счёту для юрлиц, счета и закрывающие документы, мы разбираем в статье про оплату по счёту для B2B на 1С-Битрикс — кредитный лимит надстраивается ровно над этим способом оплаты.

Безопасность и права доступа

Финансовые данные — чувствительная зона. Ошибка в правах доступа здесь стоит дороже, чем в каталоге: клиент не должен видеть чужой баланс, не должен уметь изменить свой лимит, не должен обходить блокировку. Безопасность кредитной механики держится на нескольких принципах.

Отдельно про доступ менеджеров: разграничивайте не только «кто что делает», но и «кто чьих клиентов видит». Менеджер обычно должен видеть дебиторку только закреплённых за ним контрагентов, а всю картину — только руководитель и финконтролёр. Это и вопрос коммерческой тайны, и защита от того, чтобы менеджер «помогал» дружественному клиенту обойти лимит.

Частые ошибки

Мини-FAQ. Нужно ли блокировать заказ, если клиент в пределах лимита, но с просрочкой? Да. Просрочка — это уже нарушенная договорённость по срокам, и наращивать долг новыми отгрузками рискованно, даже если сумма лимита формально не выбрана.

Чек-лист внедрения

Сведём всё в практический список, по которому удобно принимать готовность кредитной механики перед запуском:

  1. Модель данных заведена. На контрагенте есть лимит, сальдо, срок отсрочки, признак разрешения отсрочки; реестр открытых документов — в отдельной таблице.
  2. Формула остатка зафиксирована. Доступный остаток = лимит − дебиторка − заказы в работе; одинаково применяется на портале и в отчёте менеджера.
  3. Проверка на сервере. Лимит и просрочка проверяются в обработчике события sale, а не только в браузере.
  4. Сценарии блокировки описаны. Понятно, когда заказ блокируется, когда уходит на согласование, что видит клиент и как выйти из ситуации.
  5. Обмен с 1С настроен. Приходят сальдо, документы, оплаты, лимиты; обмен идемпотентен; оплаты передаются событийно или часто.
  6. Кабинет показывает баланс. Виджет лимита, реестр документов, история оплат, доступный остаток в корзине, дата актуальности.
  7. Уведомления работают. Приближение к лимиту, скорый срок оплаты, просрочка, заказ на согласовании — по нужным каналам.
  8. Частичная отгрузка учтена. Долг растёт по факту отгрузки, дебиторка ведётся по документам с индивидуальными сроками.
  9. Роли и одобрения. Настроено, кто одобряет превышение и до какой суммы; одобрения логируются.
  10. Безопасность проверена. Изоляция данных контрагента, серверные проверки, защищённый обмен, журнал финансовых действий.

Вывод

Кредитные лимиты и отсрочка на B2B-портале — это не про «разрешить платить потом», а про управляемый товарный кредит: чёткая модель данных, честная формула доступного остатка, серверная проверка при оформлении, аккуратные блокировки при превышении и просрочке и надёжный обмен взаиморасчётами с 1С. Сложите эти части правильно — и отсрочка станет инструментом роста продаж, а не источником кассовых разрывов и невозвратов. 1С-Битрикс даёт для этого все штатные кирпичи: события заказа, хранилище на ORM, обмен с 1С и почтовые уведомления. Дело за грамотной сборкой под вашу финансовую политику.

Частые вопросы

Зачем оптовому клиенту кредитный лимит и отсрочка платежа?

Отсрочка позволяет дилеру закупить товар и рассчитаться за него после того, как он его перепродаст или пустит в оборот. Это снимает кассовый разрыв и делает поставщика удобнее конкурентов, которые работают только по предоплате. Кредитный лимит — это верхняя граница долга, которую вы готовы держать на конкретном контрагенте, чтобы отсрочка не превратилась в неконтролируемую дебиторскую задолженность. Вместе они дают клиенту гибкость, а вам — управляемый риск.

Как проверить кредитный лимит при оформлении заказа на 1С-Битрикс?

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

Как контролировать дебиторскую задолженность на портале?

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

Что происходит при превышении лимита или просрочке?

Сценарии настраиваются под бизнес. Мягкий вариант — заказ оформляется, но переходит в статус «на согласовании» и ждёт одобрения менеджера. Жёсткий вариант — оформление блокируется с понятным сообщением, что превышен лимит или есть просроченная задолженность, и предлагается оплатить или связаться с менеджером. При просрочке разумно блокировать новые заказы полностью, даже если формально лимит не выбран, потому что просрочка — это уже нарушенные договорённости.

Как данные о балансе и лимите попадают из 1С на сайт?

Через обмен взаиморасчётами. Из 1С выгружаются текущее сальдо контрагента, список неоплаченных документов с суммами и сроками, поступившие оплаты и величина кредитного лимита. На стороне Битрикса эти данные принимает обработчик обмена и раскладывает в свойства контрагента и служебные таблицы. Обмен идёт по расписанию (агент или крон) либо по событию оплаты, чтобы баланс в кабинете не отставал от учёта в 1С больше, чем на согласованный интервал.

Можно ли одобрять превышение лимита вручную?

Да, и это частый сценарий. Менеджеру дают право одобрить конкретный заказ, который вышел за лимит, — например, под личную договорённость или под ожидаемую оплату. Заказ при этом фиксирует, кто и когда одобрил превышение, чтобы решение было прослеживаемым. Права на одобрение выдаются только ответственным ролям, а сам факт превышения и одобрения логируется для последующего разбора с финансовым отделом.

Поделиться:

Нужен B2B-портал с кредитными лимитами и отсрочкой?

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

Услуга «B2B-портал»

Игорь Воскресенский

Основатель студии B2Bsite. С 2014 года команда разрабатывает и поддерживает интернет-магазины и B2B-порталы на 1С-Битрикс, настраивает личные кабинеты дилеров, кредитные лимиты, контроль дебиторки и обмен взаиморасчётами с 1С для среднего и крупного бизнеса.

← Все статьи блога