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

Управление дебиторкой в 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.