Управление дебиторкой в 1С 2026: автоматизация и БДДС

Коротко: В 2026 году автоматизация дебиторской задолженности в 1С строится на трёх китах: автоматические уведомления при превышении лимитов (срок настройки — 1–2 дня), интеграция с БДДС для прогноза cashflow на 30–90 дней вперёд и использование регистров накопления для мониторинга просроченных долгов в реальном времени. Правильно настроенная система сокращает просроченную дебиторку на 25–40% уже в первые три месяца.
Почему управление дебиторкой в 1С стало критичным в 2026 году?
Экономическая турбулентность последних лет изменила отношение бизнеса к дебиторской задолженности. Если раньше многие компании допускали рост дебиторки как «нормальную» часть торговых отношений, то сегодня каждый рубль, зависший у контрагента, — это прямой удар по ликвидности. По данным аналитиков рынка, в 2025–2026 годах средний срок оборачиваемости дебиторской задолженности в российском B2B-сегменте вырос до 47 дней, что на 12 дней больше показателей 2022 года.
Платформа 1С:Предприятие 8.3 предоставляет мощный инструментарий для решения этой задачи: от встроенных механизмов контроля кредитных лимитов до сложных аналитических отчётов по cashflow. Однако большинство компаний использует лишь 20–30% возможностей платформы. В этой статье мы разберём актуальные тренды 2026 года и покажем, как реализовать их на практике.
Если вы занимаетесь автоматизацией в 1С:Бухгалтерия на Кодерион, многие описанные подходы применимы прямо «из коробки» с небольшими доработками. Для более сложных задач потребуется привлечение разработчика.
Тренд 1: Автоматический мониторинг лимитов в реальном времени
Первый и самый распространённый тренд — отказ от ручной проверки дебиторки в пользу автоматических триггеров. Суть подхода: система сама отслеживает задолженность каждого контрагента и блокирует отгрузку или уведомляет менеджера при превышении установленного лимита.
Как реализовать автоматический контроль лимитов в 1С?
Для реализации потребуется регистр сведений с кредитными лимитами и обработчик события перед проведением документа отгрузки. Ниже приведён рабочий пример для типовой конфигурации:
// Процедура проверки кредитного лимита контрагента
// Вызывается из обработчика ОбработкаПроверкиЗаполнения документа
Процедура ПроверитьКредитныйЛимитКонтрагента(Контрагент, Организация, СуммаДокумента, Отказ)
// Получаем установленный лимит из регистра сведений
ЛимитКонтрагента = РегистрыСведений.КредитныеЛимитыКонтрагентов.ПолучитьПоследнее(
ТекущаяДата(),
Новый Структура("Контрагент, Организация", Контрагент, Организация)
);
Если НЕ ЗначениеЗаполнено(ЛимитКонтрагента.КредитныйЛимит) Тогда
// Лимит не установлен — пропускаем проверку
Возврат;
КонецЕсли;
// Запрос текущей дебиторской задолженности
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(РасчетыСКонтрагентамиОстатки.СуммаОстаток, 0) КАК ТекущаяЗадолженность
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Остатки(
| ,
| Контрагент = &Контрагент
| И Организация = &Организация
| ) КАК РасчетыСКонтрагентамиОстатки";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Организация", Организация);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ТекущаяЗадолженность = 0;
Если Выборка.Следующий() Тогда
ТекущаяЗадолженность = Выборка.ТекущаяЗадолженность;
КонецЕсли;
// Проверяем: текущая задолженность + сумма нового документа > лимит
Если (ТекущаяЗадолженность + СуммаДокумента) > ЛимитКонтрагента.КредитныйЛимит Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Превышен кредитный лимит контрагента "
+ Строка(Контрагент)
+ ". Лимит: " + Формат(ЛимитКонтрагента.КредитныйЛимит, "ЧДЦ=2")
+ " руб. Текущая задолженность: " + Формат(ТекущаяЗадолженность, "ЧДЦ=2")
+ " руб.";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Этот подход позволяет мгновенно реагировать на попытки создать задолженность сверх лимита. Важно дополнить его системой согласования: руководитель должен иметь возможность разрешить отгрузку сверх лимита с фиксацией причины в базе данных.
Тренд 2: Прогнозирование cashflow на основе данных дебиторки
В 2026 году управление денежными потоками невозможно без точного прогноза поступлений. Cashflow-планирование на основе дебиторской задолженности — это не просто сводка «кто сколько должен», а математическая модель вероятных поступлений с учётом платёжной дисциплины каждого контрагента.
Как построить прогноз поступлений в 1С?
Ключевой инструмент — анализ исторической платёжной дисциплины. Система рассчитывает средний процент своевременных оплат по каждому контрагенту за последние 6–12 месяцев и применяет этот коэффициент к текущей дебиторке.
// Функция расчёта прогнозируемых поступлений от контрагента
// Возвращает структуру с суммами по периодам
Функция РассчитатьПрогнозПоступлений(Контрагент, Организация, ДатаНачала, ДатаОкончания)
// Запрос просроченной и текущей дебиторки с датами ожидаемой оплаты
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДокументРасчетов,
| ДатаПлатежа,
| СуммаОстаток,
| ДатаПлатежа < &ТекущаяДата КАК Просрочена
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Остатки(
| ,
| Контрагент = &Контрагент
| И Организация = &Организация
| И СуммаОстаток > 0
| ) КАК Остатки
|УПОРЯДОЧИТЬ ПО
| ДатаПлатежа";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
// Получаем коэффициент платёжной дисциплины
КоэффициентОплаты = ПолучитьКоэффициентПлатежнойДисциплины(Контрагент, Организация);
Прогноз = Новый Структура;
Прогноз.Вставить("ПоступленияДо30Дней", 0);
Прогноз.Вставить("ПоступленияДо60Дней", 0);
Прогноз.Вставить("ПоступленияДо90Дней", 0);
Прогноз.Вставить("ПросроченнаяЗадолженность", 0);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Просрочена Тогда
Прогноз.ПросроченнаяЗадолженность = Прогноз.ПросроченнаяЗадолженность
+ Выборка.СуммаОстаток;
Иначе
ДнейДоОплаты = (Выборка.ДатаПлатежа - ТекущаяДата()) / 86400;
ПрогнозируемаяСумма = Выборка.СуммаОстаток * КоэффициентОплаты;
Если ДнейДоОплаты <= 30 Тогда
Прогноз.ПоступленияДо30Дней = Прогноз.ПоступленияДо30Дней + ПрогнозируемаяСумма;
ИначеЕсли ДнейДоОплаты <= 60 Тогда
Прогноз.ПоступленияДо60Дней = Прогноз.ПоступленияДо60Дней + ПрогнозируемаяСумма;
ИначеЕсли ДнейДоОплаты <= 90 Тогда
Прогноз.ПоступленияДо90Дней = Прогноз.ПоступленияДо90Дней + ПрогнозируемаяСумма;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Прогноз;
КонецФункции
// Вспомогательная функция расчёта коэффициента платёжной дисциплины
// Анализирует историю оплат за последние 12 месяцев
Функция ПолучитьКоэффициентПлатежнойДисциплины(Контрагент, Организация)
ЗапросИстории = Новый Запрос;
ЗапросИстории.Текст =
"ВЫБРАТЬ
| СУММА(Обороты.СуммаОборот) КАК ВсегоНачислено,
| СУММА(
| ВЫБОР
| КОГДА Обороты.ДатаПлатежа >= Обороты.ДатаОплаты
| ТОГДА Обороты.СуммаОборот
| ИНАЧЕ 0
| КОНЕЦ
| ) КАК ОплаченоВСрок
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Обороты(
| &НачалоПериода,
| &КонецПериода,
| ,
| Контрагент = &Контрагент
| И Организация = &Организация
| ) КАК Обороты";
ЗапросИстории.УстановитьПараметр("Контрагент", Контрагент);
ЗапросИстории.УстановитьПараметр("Организация", Организация);
ЗапросИстории.УстановитьПараметр("НачалоПериода", НачалоГода(ДобавитьМесяц(ТекущаяДата(), -12)));
ЗапросИстории.УстановитьПараметр("КонецПериода", ТекущаяДата());
ВыборкаИстории = ЗапросИстории.Выполнить().Выбрать();
Если Выборкаистории.Следующий() И Выборкаистории.ВсегоНачислено > 0 Тогда
Возврат Выборкаистории.ОплаченоВСрок / Выборкаистории.ВсегоНачислено;
КонецЕсли;
// По умолчанию — 80% вероятность оплаты
Возврат 0.8;
КонецФункции
Тренд 3: Интеграция дебиторки с БДДС в 1С
Бюджет движения денежных средств (БДДС) в 2026 году невозможно составить без данных о дебиторской задолженности. Прогрессивные компании автоматически переносят данные о плановых поступлениях из реестра дебиторки в статьи БДДС, исключая ручной ввод и связанные с ним ошибки.
Как автоматически формировать плановые поступления в БДДС?
В конфигурациях на базе задачи по 1С:ERP эта интеграция реализована частично. Для полноценной автоматизации необходима регламентная процедура, которая запускается ежедневно и обновляет плановые строки БДДС на основе актуальных данных дебиторки.
// Регламентная процедура автоматического обновления БДДС
// на основе данных дебиторской задолженности
// Запускается ежедневно в 07:00 через регламентное задание
Процедура ОбновитьПлановыеПоступленияВБДДС()
НачалоТранзакции();
Попытка
// Удаляем старые плановые строки, сформированные автоматически
ЗапросУдаления = Новый Запрос;
ЗапросУдаления.Текст =
"ВЫБРАТЬ
| БДДСПлан.Ссылка
|ИЗ
| Документ.БюджетДвиженияДенежныхСредств КАК БДДСПлан
|ГДЕ
| БДДСПлан.АвтоматическиСформирован = ИСТИНА
| И БДДСПлан.ПериодНачала >= &НачалоПериода";
ЗапросУдаления.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
// Получаем агрегированный прогноз поступлений по периодам
ЗапросПрогноза = Новый Запрос;
ЗапросПрогноза.Текст =
"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(Остатки.ДатаПлатежа, МЕСЯЦ) КАК ПланируемыйМесяц,
| Остатки.Организация,
| Остатки.СтатьяДвиженияДС,
| СУММА(Остатки.СуммаОстаток) КАК СуммаПоступлений
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Остатки(
| ,
| СуммаОстаток > 0
| И ДатаПлатежа >= &ТекущаяДата
| И ДатаПлатежа <= &ДатаОкончания
| ) КАК Остатки
|СГРУППИРОВАТЬ ПО
| НАЧАЛОПЕРИОДА(Остатки.ДатаПлатежа, МЕСЯЦ),
| Остатки.Организация,
| Остатки.СтатьяДвиженияДС
|УПОРЯДОЧИТЬ ПО
| ПланируемыйМесяц";
ЗапросПрогноза.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата()));
ЗапросПрогноза.УстановитьПараметр("ДатаОкончания", КонецМесяца(ДобавитьМесяц(ТекущаяДата(), 3)));
ВыборкаПрогноза = ЗапросПрогноза.Выполнить().Выбрать();
Пока Выборкапрогноза.Следующий() Цикл
// Создаём плановый документ БДДС для каждой строки
НовыйБДДС = Документы.БюджетДвиженияДенежныхСредств.СоздатьДокумент();
НовыйБДДС.Дата = ТекущаяДата();
НовыйБДДС.Организация = ВыборкаПрогноза.Организация;
НовыйБДДС.ПериодНачала = ВыборкаПрогноза.ПланируемыйМесяц;
НовыйБДДС.АвтоматическиСформирован = Истина;
НовыйБДДС.Комментарий = "Автоформирование из реестра дебиторской задолженности";
СтрокаБДДС = НовыйБДДС.Строки.Добавить();
СтрокаБДДС.СтатьяДвиженияДС = ВыборкаПрогноза.СтатьяДвиженияДС;
СтрокаБДДС.Сумма = ВыборкаПрогноза.СуммаПоступлений;
СтрокаБДДС.НаправлениеДвижения = Перечисления.НаправленияДвиженияДС.Поступление;
НовыйБДДС.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(
"ОбновлениеБДДС",
УровеньЖурналаРегистрации.Ошибка,
,
,
ОписаниеОшибки()
);
КонецПопытки;
КонецПроцедуры
Тренд 4: Автоматические уведомления и эскалация
Ручной обзвон должников уходит в прошлое. В 2026 году ведущие компании внедряют многоуровневые системы автоматических уведомлений: за 3 дня до срока оплаты, в день просрочки, через 7 и 14 дней после. Каждый уровень имеет свой сценарий — от дружеского напоминания до официальной претензии.
Как настроить многоуровневую эскалацию в 1С?
Реализация строится на регламентном задании, которое анализирует реестр дебиторки и формирует задачи для менеджеров или отправляет письма напрямую контрагентам через встроенный механизм почтовых сообщений.
// Процедура многоуровневой эскалации по просроченной дебиторке
// Уровни: 1 — уведомление менеджера, 2 — письмо контрагенту,
// 3 — задача руководителю, 4 — передача в юридический отдел
Процедура ЗапуститьЭскалациюПоДебиторке()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Контрагент,
| Остатки.Организация,
| Остатки.ДокументРасчетов,
| Остатки.ДатаПлатежа,
| Остатки.СуммаОстаток,
| РАЗНОСТЬДАТ(&ТекущаяДата, Остатки.ДатаПлатежа, ДЕНЬ) КАК ДнейПросрочки,
| Остатки.МенеджерКонтрагента
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Остатки(
| ,
| СуммаОстаток > 0
| И ДатаПлатежа < &ТекущаяДата
| ) КАК Остатки
|УПОРЯДОЧИТЬ ПО
| ДнейПросрочки УБЫВ";
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата()));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДнейПросрочки = Выборка.ДнейПросрочки;
Если ДнейПросрочки >= 1 И ДнейПросрочки < 7 Тогда
// Уровень 1
// Уровень 1: уведомление менеджера о просрочке СоздатьЗадачуМенеджеру(Выборка, "Уровень 1: Просрочка до 7 дней"); ИначеЕсли ДнейПросрочки >= 7 И ДнейПросрочки < 14 Тогда // Уровень 2: автоматическое письмо контрагенту ОтправитьПисьмоКонтрагенту(Выборка, "Уровень 2: Просрочка 7-14 дней"); ИначеЕсли ДнейПросрочки >= 14 И ДнейПросрочки < 30 Тогда // Уровень 3: задача руководителю отдела продаж СоздатьЗадачуРуководителю(Выборка, "Уровень 3: Просрочка 14-30 дней"); ИначеЕсли ДнейПросрочки >= 30 Тогда // Уровень 4: передача в юридический отдел ПередатьВЮридическийОтдел(Выборка, "Уровень 4: Критическая просрочка свыше 30 дней"); КонецЕсли; КонецЦикла; КонецПроцедуры
Найдите специалиста для решения этой задачи на koderion.ru
Автор: редакция Koderion. Обновлено: 1 мая 2026. Источники: Документация платформы 1С:Предприятие, Бухгалтерия.ру, Infostart.