При разработке отчетов по взаиморасчетам с покупателями (счет 62) программисты часто сталкиваются с задачей: не просто показать сумму долга, но и расшифровать, за какой именно товар этот долг висит. Однако типовой план счетов в 1С не предусматривает аналитику Номенклатура на счете 62. В этой статье мы подробно разберем, почему данные нельзя получить напрямую, и какими способами можно решить эту задачу программно.
Для начала проанализируем структуру бухгалтерского учета. Счет 62 «Расчеты с покупателями и заказчиками» предназначен для учета денежных обязательств. Его субконто — это Контрагенты, Договоры и (опционально) Документы расчетов. Номенклатура же является признаком складского учета или учета затрат (например, на счетах 41, 10, 43 или 90).
Таким образом, когда мы запрашиваем виртуальную таблицу Хозрасчетный.Остатки, система выдает нам только остатки денег в разрезе договоров. Чтобы «увидеть» товар, нам необходимо связать эти денежные остатки с первичными документами, которые зафиксировали отгрузку этого товара.
Самый точный способ получить номенклатуру — это ведение учета на счете 62 в разрезе конкретных документов (накладных, актов). Если в настройках Плана счетов включено третье субконто Документы расчетов с контрагентами, мы можем напрямую соединить остатки по счету с табличными частями этих документов.
Рассмотрим пример построения такого запроса. Сначала мы получаем остатки по счету 62.01, а затем левым соединением подключаем таблицу Товары из документа РеализацияТоваровУслуг.
ВЫБРАТЬ
Остатки.Субконто1 КАК Контрагент,
Остатки.Субконто2 КАК Договор,
Остатки.Субконто3 КАК ДокументРасчетов,
Остатки.СуммаОстатокДт КАК СуммаДолга,
РеализацияТовары.Номенклатура КАК Номенклатура,
РеализацияТовары.Количество КАК КоличествоВДокументе
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет62_01, , ) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ПО
Остатки.Субконто3 = РеализацияТовары.Ссылка
ГДЕ
Остатки.СуммаОстатокДт > 0
Важный нюанс: Если документ РеализацияТоваровУслуг оплачен частично, сумма долга на счете 62 будет меньше, чем общая сумма документа. В этом случае встает вопрос: какой именно товар из накладной считается оплаченным? Чаще всего в отчетах применяется метод пропорционального распределения.
Посмотрим на алгоритм расчета количества товара, которое «соответствует» текущему остатку долга. Если документ оплачен наполовину, то логично предположить, что и каждого товара в нем не оплачено ровно половина (если иное не закреплено в учетной политике). Формула выглядит так:
Количество к выводу = (Остаток долга по документу / Общая сумма документа) * Количество товара в строке.
Проанализируем ситуацию на примере кода:
ВЫБРАТЬ
Остатки.Субконто3 КАК Документ,
РеализацияТовары.Номенклатура КАК Номенклатура,
(Остатки.СуммаОстатокДт / ДокументРеализация.СуммаДокумента) * РеализацияТовары.Количество КАК КоличествоОстаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет62_01, , ) КАК Остатки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.РеализацияТоваровУслуг КАК ДокументРеализация
ПО
Остатки.Субконто3 = ДокументРеализация.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ПО
Остатки.Субконто3 = РеализацияТовары.Ссылка
Бывают случаи, когда учет ведется только в разрезе договоров (так называемое «котловое» ведение взаиморасчетов). В такой ситуации система не знает, за какую именно реализацию пришла оплата. Выясним, как программно определить номенклатуру в этом случае.
Для этого используется метод ФИФО (First In, First Out). Алгоритм действий следующий:
Этот метод технически сложнее реализовать одним запросом, часто требуется использование временных таблиц и циклов в языке 1С или сложных соединений с накоплением итогов.
Если вы работаете в конфигурациях 1С:Управление торговлей или 1С:ERP, использование регистра бухгалтерии для таких задач — не самый оптимальный путь. Разберем, почему.
В этих программах существуют специализированные регистры накопления:
РасчетыСКлиентами — содержит информацию о долгах и документах-основаниях.ВыручкаИСебестоимостьПродаж — содержит детальную информацию о том, какой товар, в каком количестве и по какому документу был продан.Связав эти два регистра по измерению Заказ или Документ продажи, можно получить гораздо более детальный и быстрый отчет, чем при использовании Хозрасчетного регистра.
Проанализируем ситуацию с кредитовым остатком. Если у покупателя висит аванс (счет 62.02), то никакой номенклатуры в отчете быть не может. Товар еще не отгружен, и мы не знаем достоверно, что именно клиент купит на эти деньги (даже если есть Заказ клиента, он может измениться).
В таких случаях рекомендуется:
Подводя итог, отметим: прямого способа «вытащить» товар из счета 62 не существует. Мы всегда имеем дело с косвенным получением данных через соединение с первичными документами.
Для реализации качественного отчета рекомендуем придерживаться следующей последовательности действий:
Товары соответствующих документов.Такой подход позволит создать информативный и технически грамотный отчет, который покажет реальную картину задолженности в разрезе товарных позиций.