При построении аналитических отчетов по взаиморасчетам с покупателями часто возникает задача разделить продажи или поступившие оплаты на две категории: исполненные в установленный срок (по условиям договора) и прошедшие с нарушением сроков (просроченные). Разберем, как устроена эта логика в типовой конфигурации 1С:Бухгалтерия предприятия 3.0 и как корректно извлечь эти данные с помощью запроса к регистру бухгалтерии Хозрасчетный.
В отличие от решений 1С:ERP или 1С:Управление торговлей, в бухгалтерской конфигурации отсутствуют отдельные регистры накопления для графиков платежей. Вся информация о расчетах с контрагентами хранится непосредственно в регистре бухгалтерии на счетах 62.01 («Расчеты с покупателями и заказчиками») и 62.02 («Расчеты по авансам полученным»).
Плановый срок оплаты покупателем в конфигурации может определяться на нескольких уровнях:
СрокОплаты документа Реализация (акт, накладная).Чтобы сопоставить конкретный платеж с конкретной накладной, на счете 62.01 обязательно должен быть включен аналитический разрез по документам. Для этого в настройках плана счетов должна быть установлена функциональная опция «Вести учет расчетов по документам», добавляющая третье субконто Документы расчетов с контрагентом.
Если это субконто заполнено, проводка оплаты (по дебету счетов 50, 51 и кредиту счета 62.01) содержит ссылку на исходный документ Реализация (акт, накладная).
Разберем по шагам логику анализа движений:
62.01.ДатаОплаты <= ДатаПредельнойОплаты, то сумма относится к своевременно погашенной задолженности.ДатаОплаты > ДатаПредельнойОплаты, то сумма считается просроченной.62.02 — кредит 62.01) означают, что деньги поступили до или в момент отгрузки, поэтому такие суммы всегда считаются погашенными вовремя.Рассмотрим структуру запроса к регистру бухгалтерии Хозрасчетный.ДвиженияССубконто, который позволяет получить суммы оплат с признаком просрочки:
ВЫБРАТЬ
Хозрасчетный.Период КАК ДатаОплаты,
Хозрасчетный.Регистратор КАК ДокументОплаты,
Хозрасчетный.СубконтоКт1 КАК Контрагент,
Хозрасчетный.СубконтоКт2 КАК Договор,
ВЫРАЗИТЬ(Хозрасчетный.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг) КАК ДокументОтгрузки,
ВЫРАЗИТЬ(Хозрасчетный.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг).СрокОплаты КАК ПлановыйСрокОплаты,
Хозрасчетный.Сумма КАК СуммаОплаты,
ВЫБОР
КОГДА Хозрасчетный.СчетДт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным)
ТОГДА ЛОЖЬ
КОГДА ВЫРАЗИТЬ(Хозрасчетный.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг).СрокОплаты ЕСТЬ NULL
ТОГДА ЛОЖЬ
КОГДА НАЧАЛОПЕРИОДА(Хозрасчетный.Период, ДЕНЬ) > НАЧАЛОПЕРИОДА(ВЫРАЗИТЬ(Хозрасчетный.СубконтоКт3 КАК Документ.РеализацияТоваровУслуг).СрокОплаты, ДЕНЬ)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЭтоПросроченнаяОплата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&НачалоПериода,
&КонецПериода,
СчетКт = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Покупатели),
,
) КАК Хозрасчетный
ГДЕ
Хозрасчетный.СчетДт В (
ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Касса),
ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета),
ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным)
)
Проанализируем ситуации, которые требуют дополнительного внимания при реализации отчета:
ОстаткиИОбороты, проверяя, наступил ли срок оплаты для еще не закрытых долгов.