Учёт кредитов и лизинга: тест нулевого остатка перед платёжным бюджетом
У реестра финансовых инструментов есть проверяемое ограничение: остаток долга рассчитывается по прошедшим месяцам. Фактическая сумма погашения не вводится. Если период достигает срока договора, кредит исчезает из расчёта независимо от банковской выписки.
Проверка выполнена на демонстрационном шаблоне Finspect. Исходный кредит — 12 000 000 ₽, ставка — 16% годовых, срок — 36 месяцев, прошедший период — 8 месяцев. Соседние строки представляют лизинг и выданный заём. Все числа являются демонстрационными; рыночные ставки и реальные договорные условия по ним не оцениваются.
Задача теста — определить, какие выводы можно передавать в платёжный бюджет. Расчётная сумма, технический контроль и подтверждённое обязательство проверяются отдельно. Последнее требует договора, графика и движения денег, которых сама формула не получает.
Четыре части расчёта
Для заполненной строки остаток определяется как максимум из нуля и первоначальной суммы за вычетом равномерно погашенного тела. Тело ближайшего платежа ограничено остатком. Проценты считаются от остатка с делением годовой ставки на число месяцев года. Платёж складывается из тела и процентов.
Остаток = MAX(0; сумма − сумма / срок × прошедшие месяцы).
Тело = MIN(остаток; сумма / срок). Проценты = остаток × годовая ставка / 12. Выплата = тело + проценты.
На исходных входах расчётный остаток кредита после округления равен 9 333 333 ₽. Платёж вычисляется так: 12 000 000 / 36 + (12 000 000 − 12 000 000 / 36 × 8) × 0,16 / 12. Конечный результат — 457 778 ₽. Внутри выражения округления нет.
В этой логике прошедшие месяцы фактически представляют завершённый период равномерного погашения. Если в поле попадает возраст договора, а погашения отстают от графика, остаток становится меньше действительного. Если был досрочный возврат, расчёт, наоборот, может сохранить лишний долг. Обе причины выясняются по документам, а не по общему статусу книги.
Подстановки вокруг срока
Для граничного теста менялось поле прошедших месяцев одной кредитной строки. Остальные суммы, ставки, сроки и периоды оставлены без изменений. Результаты показаны в целых рублях.
По обе стороны границы результат вычисляется устойчиво. При равенстве срока и прошедшего периода остаток уже нулевой. При превышении срока исходное выражение становится отрицательным. Для 37 месяцев оно даёт −333 333 ₽ после округления, но MAX скрывает отрицательное значение.
Ограничитель MIN решает другую задачу: тело платежа не превышает остатка при положительных корректных входах. Например, при 35,5 месяца остаток округляется до 166 667 ₽. Формула берёт весь этот остаток как тело, добавляет проценты и получает 168 889 ₽ выплаты. Это свойство вычисления, а не предусмотренная договором возможность погашать за дробный месяц.
Если срок равен нулю, остаток даёт ошибку деления. IFERROR внутри расчёта тела не защищает выражение остатка. Поэтому по одному наличию IFERROR нельзя обещать, что все пропуски и ошибки будут преобразованы в корректный ноль.
Что проверяет каждый сигнал
«Срок больше нуля для заполненных инструментов» ищет неположительный срок у строки с положительной первоначальной суммой. «Прошедшие месяцы не превышают срок» сравнивает суммы столбцов. «Ставки в диапазоне 0–100%» проверяет технический диапазон, причём верхняя граница в формуле строгая: ровно 100% не проходят.
Для второго сигнала сумма сроков исходных инструментов равна 36 + 48 + 24 = 108. При 37 месяцах кредита сумма прошедших периодов составляет 37 + 12 + 6 = 55. Условие выполняется; строка кредита уже превышает свой срок, но общий сигнал остаётся OK. Итоговый MODEL STATUS сохраняет PASS.
В том же наборе строк 90 месяцев кредита ещё дают равенство общих сумм. При 91 месяце получается 109, поэтому контроль выдаёт «ПРОВЕРИТЬ», а итог — FAIL. Эта граница меняется вместе с соседними договорами. Она не может служить разрешением на исключение отдельного обязательства.
Недостающая следующая дата, контрагент или ставка также не имеют отдельного сигнала полноты. Отрицательные прошедшие месяцы могут увеличить остаток и оставить PASS. Отрицательная первоначальная сумма способна дать отрицательный платёж без FAIL. Поэтому входы всё равно проверяет специалист: технический контроль этого не делает.
Направление денег сохраняется в реестре
На листе «Свод» типы инструментов группируются отдельно. Но заголовок «Ближайший платёж» не говорит, кто платит. Кредит и полученный заём предполагают исходящую выплату; выданный заём — ожидаемое поступление. Для решения собственника эти суммы нельзя объединять без обозначения направления.
В демонстрации лизинг даёт 147 188 ₽ выплаты после округления. Выданный заём даёт 88 500 ₽ поступления: 75 000 ₽ тела плюс 13 500 ₽ процентов. В исходных исторических датах ожидаемый возврат стоит позже кредита и лизинга. Его включение в общий итог не создаёт денег для ранней выплаты.
Лизинговая строка считается без налога: поля НДС в книге нет. Лизингодатель — плательщик НДС выставляет платёж с налогом 22%, и в дату по графику уходит вся сумма. Расчёт на демонстрационных данных, если сумма строки указана без налога:
Лизинг с НДС: 147 188 × 1,22 ≈ 179 569 ₽. Проверка: 457 778 + 179 569 = 637 347 ₽; разница 32 381 ₽ равна налогу. Вычет у компании на общей системе уменьшит налог к уплате позже, по декларации, и денег в дату платежа не добавит. Поэтому сумма лизинга в бюджет берётся из графика лизингодателя.
Проверка дат раскрыта в тесте платёжного календаря. Отличие нынешней задачи в том, что календарю сначала требуется полный перечень действующих обязательств. Если срок обнулил непогашенный кредит, календарь может выглядеть согласованным просто потому, что выплата в него не попала.
В прошлом выпуске серии отрицательные часы в модели рентабельности проектов тоже проходили контроль. Здесь тот же способ исследования применяется к сроку договора. Оба теста показывают локальное поведение формулы; ни один не подтверждает всю хозяйственную модель одним словом PASS.
Решение по результатам сверки
Файл предназначен для первичного обзора финансовых инструментов. Его равномерная схема не заменяет договорный график лизинга, расчёт комиссий, подтверждение вклада собственника или основания дивидендов. Реальные выплаты берутся из документов, а расчёт помогает найти строку, требующую объяснения.
«Поручение финансовому директору: за пять рабочих дней проверить действующие кредиты, полученные займы и лизинг одного юридического лица на одну дату. По каждой строке показать: остаток по договору и банковской выписке; ближайшую сумму и дату выплаты по графику, для лизинга — с НДС; подтверждение погашения или причину расхождения. Выданные займы и строки с истёкшим сроком без подтверждения погашения выделить отдельно. До сверки спорный долг не исключать из бюджета и не учитывать ожидаемый возврат займа как доступные деньги. Формат — проверенный XLSX и одна страница расхождений с суммой, документом, ответственной ролью и решением собственника.»
Проверенный результат сохраняет отдельно закрытые договоры, действующие выплаты и ожидаемые возвраты. У каждого исключённого долга есть основание закрытия; у неподтверждённого поступления — дата и ответственная роль для следующей сверки. До получения документа обязательство остаётся в бюджете.
Полный разбор и XLSX для учёта инструментов — на странице Finspect.