Почему в 1С:ERP 2.4 автоматическое закрытие задолженности по ФИФО учитывает даты документов, а не сроки оплаты?

Бизнес-аналитик 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

При работе в 1С:ERP Управление предприятием 2.4 многие пользователи и аналитики сталкиваются с особенностью: при использовании объекта расчетов «По договору» автоматическое распределение оплат по методу ФИФО (First In, First Out) происходит строго по хронологии первичных документов (накладных, актов). Это часто вызывает вопросы, особенно когда в системе зафиксированы четкие графики платежей и отсрочки, которые, казалось бы, должны определять приоритет погашения долга. В этой статье мы подробно разберем внутреннюю архитектуру расчетов, выясним причины такого поведения системы и найдем способы корректной настройки отчетности.

Понятие «Факта» и «Плана» в архитектуре расчетов

Для начала проанализируем, как 1С:ERP разделяет информацию о долгах. В системе сосуществуют два параллельных слоя данных, которые не всегда пересекаются в момент проведения документов:

  1. Фактические расчеты: фиксируют момент возникновения юридического обязательства. Это происходит в дату перехода прав собственности (дата документа ПриобретениеТоваровУслуг или РеализацияТоваровУслуг). Именно на этом слое работает бухгалтерский учет и регистры накопления, отвечающие за сальдо расчетов.
  2. Плановые расчеты (графики): фиксируют ожидаемые даты прихода или ухода денежных средств. Эти даты зависят от условий договора, соглашений и указанных в документах отсрочек.

Разберем ситуацию: у вас есть две накладные. Первая от 1-го числа с отсрочкой 30 дней, вторая от 5-го числа с оплатой по факту (0 дней). С точки зрения «Плана», первой должна быть оплачена вторая накладная. Однако механизм ФИФО при объекте расчетов «По договору» всегда выберет накладную от 1-го числа, так как она является более ранним «фактическим» возникновением долга.

Логика работы механизма распределения при объекте «По договору»

Выясним, почему разработчики выбрали именно такой подход. Когда в качестве объекта расчетов выбран «Договор», система воспринимает его как единую «корзину» задолженности. При поступлении оплаты или проведении взаимозачета запускается фоновое регламентное задание ВыполнениеОтложенныхДвиженийПоРасчетам.

Этот алгоритм работает следующим образом:

Проблема «некорректных» отчетов по просроченной задолженности

Проанализируем претензию многих пользователей: «Отчеты по просрочке показывают ерунду». Это происходит из-за конфликта ФИФО и графиков. Если оплата закрыла раннюю накладную (которая еще не просрочена по графику), то более поздняя накладная (у которой срок оплаты уже наступил) остается «висеть» в системе как неоплаченная.

Рассмотрим пример в цифрах:

  1. Реализация №1 от 01.10 на 1000 руб. Срок оплаты — 30.10.
  2. Реализация №2 от 05.10 на 1000 руб. Срок оплаты — 06.10.
  3. Поступила оплата 10.10 на 1000 руб.

Алгоритм ФИФО закроет Реализацию №1. В итоге в отчете по задолженности мы увидим: долг по Реализации №2 (1000 руб.), который является просроченным на 4 дня. Пользователь возмущен: «Я же заплатил, почему у меня висит просрочка?». Но с точки зрения системы, вы закрыли обязательство, возникшее первым по времени.

Как изменить поведение системы: выбор объекта расчетов

Если для вашего бизнеса критично, чтобы оплаты закрывали задолженность именно в соответствии со сроками оплаты (плановыми датами), необходимо пересмотреть настройки ведения расчетов. Рассмотрим основные варианты:

1. Детализация «По заказам» или «По накладным»

Это самый эффективный способ решить проблему. Когда объектом расчетов является конкретный документ (заказ или накладная), оплата привязывается к нему напрямую (либо вручную в платежном документе, либо через подбор). В этом случае:

2. Новая архитектура расчетов (версии 2.4.11 и выше)

Начиная с поздних релизов ветки 2.4 и в версии 2.5, была внедрена новая архитектура расчетов. Разберем ее ключевые отличия:

Методологическое обоснование от фирмы 1С

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

Посмотрим на технический аспект реализации в коде (схематично):


Процедура РаспределитьДолгПоФИФО(ОбъектРасчетов)
    // Система выбирает документы, увеличивающие долг, 
    // упорядочивая их по МоментуВремени (Дата + Ссылка)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Документ, СуммаДолг ИЗ РегистрРасчетыСКлиентами 
                   ГДЕ ОбъектРасчетов = &ОбъектРасчетов 
                   УПОРЯДОЧИТЬ ПО Период, Регистратор.МоментВремени";
    // ... логика распределения суммы платежа по найденным строкам
КонецПроцедуры

Как видим, в запросе отсутствует поле ДатаПлатежа. Это подтверждает, что механизм спроектирован для работы с хронологией документов.

Резюме и рекомендации

Подведем итоги нашего анализа. Автоматическое закрытие по ФИФО в 1С:ERP — это инструмент для массового учета, где приоритетом является хронология возникновения обязательств, а не графики оплат. Если для вас важна точность отчетов по просрочке при использовании объекта «По договору», мы рекомендуем:

  1. Использовать отчет «Задолженность клиентов по срокам», но помнить о правилах распределения ФИФО.
  2. Рассмотреть возможность перехода на объект расчетов «По заказам / накладным» для тех контрагентов, где критичен контроль каждого платежа.
  3. Следить за актуальностью версии программы, так как в версии 2.5 механизмы связки «плана» и «факта» были значительно оптимизированы.

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

← На главную