В типовой конфигурации «1С:Бухгалтерия предприятия 3.0» (БП 3.0) задача получения дебиторской задолженности с детализацией до конкретного документа отгрузки или оплаты является классической, но требует понимания архитектуры метаданных и настроек системы. Рассмотрим подробно, как реализовать этот функционал с помощью запросов и встроенных инструментов.
Прежде чем приступать к написанию программного кода или сложного отчета, нам необходимо выяснить, хранит ли система нужные нам данные. В БП 3.0 учет по документам расчетов на счетах 60, 62 и 76 является опциональным. Если эта настройка выключена, в регистре бухгалтерии Хозрасчетный поле Субконто3 (которое обычно отвечает за документы расчетов) будет пустым.
Проверим настройки по следующему алгоритму:
Если эта настройка включена, то на счетах 62.01 (задолженность) и 62.02 (авансы) появляется третье субконто типа ДокументРасчетовСКонтрагентом. Именно из него мы будем извлекать данные в нашем запросе.
Для получения остатков мы будем использовать виртуальную таблицу РегистрБухгалтерии.Хозрасчетный.Остатки. Основная сложность заключается в том, чтобы корректно разделить «чистый» долг и полученные авансы, а также учесть обеспечительные платежи.
Рассмотрим пример построения запроса, который выбирает данные по счетам расчетов с покупателями. Нам важно использовать поле СуммаРазвернутыйОстаток, так как обычный остаток по счету 62 может быть «свернутым», что не даст нам увидеть одновременно и долг, и аванс по одному договору.
ВЫБРАТЬ
ХозрасчетныйОстатки.Организация КАК Организация,
ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
ХозрасчетныйОстатки.Субконто2 КАК Договор,
ХозрасчетныйОстатки.Субконто3 КАК ДокументРасчетов,
ХозрасчетныйОстатки.СуммаРазвернутыйОстатокДт КАК ДебиторскаяЗадолженность,
ХозрасчетныйОстатки.СуммаРазвернутыйОстатокКт КАК АвансПокупателя
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
&Период,
Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками)),
&ВидыСубконто,
Организация = &Организация
) КАК ХозрасчетныйОстатки
В данном запросе параметр &ВидыСубконто должен содержать массив ссылок на виды субконто: Контрагенты, Договоры, ДокументыРасчетов. Это гарантирует, что виртуальная таблица правильно развернет остатки по всем трем уровням аналитики.
Обеспечительные платежи часто учитываются на отдельных субсчетах счета 76 (например, 76.05 или 76.09). Если ваша методика учета предполагает выделение таких платежей, нам нужно расширить список счетов в условии запроса. Посмотрим, как это сделать:
// В коде 1С подготовим массив счетов
МассивСчетов = Новый Массив;
МассивСчетов.Добавить(ПланСчетов.Хозрасчетный.РасчетыСПокупателями);
МассивСчетов.Добавить(ПланСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами);
// В запросе используем условие
Счет В ИЕРАРХИИ (&МассивСчетов)
Важный момент: если обеспечительный платеж ничем не отличается от аванса на уровне счета (например, оба на 62.02), отличить его можно только по аналитике Договор. В этом случае в запрос следует добавить проверку реквизитов договора, например, ХозрасчетныйОстатки.Субконто2.ВидДоговора или искать ключевые слова в наименовании.
Проанализируем ситуацию, упомянутую в обсуждении: что делать, если третье субконто пустое? В этом случае реальной связи «Отгрузка — Оплата» в регистрах нет. Чтобы получить задолженность «по документам» в такой базе, необходимо применять математический алгоритм распределения оплат по документам отгрузки (метод ФИФО — First In, First Out).
Процесс выглядит так:
Однако помните, что такой результат будет «расчетным» и может не совпадать с реальным положением дел, если бухгалтер закрывал документы вручную не по порядку.
Если вам нужно быстро проверить данные без написания кода, воспользуйтесь стандартными инструментами:
Хозрасчетный (Остатки и обороты). Добавьте группировки по субконто и выведите ресурсы СуммаДт и СуммаКт.Резюмируем: для получения точной дебиторской задолженности в БП 3.0 необходимо использовать виртуальную таблицу остатков регистра бухгалтерии с обязательным указанием трех уровней субконто и использованием развернутого остатка. Это позволит корректно отобразить долги, авансы и другие виды взаиморасчетов в одном отчете.