Как получить данные о поступлениях на расчетный счет и сальдо контрагентов в 1С:Бухгалтерия 3.0

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

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

Использование стандартных бухгалтерских отчетов

Прежде чем приступать к разработке собственного отчета, проанализируем типовой функционал системы. Программа 1С уже содержит мощные инструменты, которые позволяют получить требуемые данные без написания кода. Рассмотрим два основных отчета:

  1. Карточка счета: Если нам нужно увидеть все движения по счету 51 в разрезе конкретных документов, этот отчет является идеальным решением. В нем отражаются все поступления, даты, суммы и документы-основания. Если добавить в настройки отбор по корреспондирующему счету 62, мы получим список всех оплат от покупателей.
  2. Оборотно-сальдовая ведомость по счету (ОСВ): Для получения сальдо абонента (дебетового или кредитового остатка) по счету 62 следует использовать именно этот отчет. Он показывает начальный остаток, обороты за период и конечный остаток в разрезе контрагентов и договоров.

Проанализируем ситуацию, когда пользователю нужно объединить эти данные в одну таблицу. Если стандартные отчеты не подходят по формату, мы переходим к использованию регистров.

Выбор регистра для построения отчета

Многие новички задаются вопросом: из какого регистра «тащить» данные? В 1С:Бухгалтерии 3.0 основным источником финансовой информации является Регистр бухгалтерии «Хозрасчетный». В отличие от управленческих конфигураций (УТ, ERP), здесь почти вся аналитика строится на бухгалтерских проводках.

Разберем, почему не стоит использовать физическую таблицу документа. Документ ПоступлениеНаРасчетныйСчет делает записи в несколько регистров, но именно Хозрасчетный гарантирует актуальность данных в соответствии с учетной политикой. Для решения задачи нам понадобятся виртуальные таблицы этого регистра.

Программная реализация с использованием СКД

Если нам необходимо создать кастомный отчет, лучше всего воспользоваться Системой Компоновки Данных (СКД). Выясним, какие таблицы регистра Хозрасчетный будут наиболее эффективны:

Для получения списка поступлений с одновременным расчетом сальдо наиболее подходящей является виртуальная таблица ОстаткиИОбороты. Рассмотрим пример структуры запроса, который позволит вытащить данные по счету 51 в корреспонденции со счетом 62.


ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Период КАК ДатаОперации,
    ХозрасчетныйОстаткиИОбороты.Регистратор КАК ДокументПоступления,
    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаПоступления,
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК КонечноеСальдо
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета), , КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками))) КАК ХозрасчетныйОстаткиИОбороты

Важный момент: При работе со счетом 62 необходимо помнить, что он является активно-пассивным и имеет субсчета (62.01 — расчеты, 62.02 — авансы). Чтобы получить корректное «общее сальдо», в настройках запроса нужно указывать счет 62 целиком (без детализации до субсчетов), тогда система автоматически схлопнет остатки по дебету и кредиту.

Настройка фильтрации по виду операции

Как прозвучало в обсуждении, автору требуется отфильтровать только «Оплату от покупателя». В регистре бухгалтерии нет прямого поля «Вид операции», так как это реквизит документа-регистратора. Рассмотрим, как решить эту задачу в запросе:

  1. Использовать соединение с таблицей документа ПоступлениеНаРасчетныйСчет.
  2. В условии запроса прописать проверку: ГДЕ ВЫРАЗИТЬ(Регистратор КАК Документ.ПоступлениеНаРасчетныйСчет).ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя).

Рассмотрим подробнее способ через Универсальный отчет. Это мощный инструмент для тех, кто не хочет писать код:

  1. Перейдем в раздел «Отчеты» — «Универсальный отчет».
  2. В поле «Тип данных» выберем Регистр бухгалтерии.
  3. В поле «Объект» выберем Хозрасчетный, а в таблице — Остатки и обороты.
  4. В настройках (кнопка «Показать настройки») на закладке «Отборы» добавим условие: Счет Равно 62 (или 51 в зависимости от цели), а также Кор. счет Равно 51 (для получения только оплат).
  5. На закладке «Поля и сортировки» добавим нужные колонки: Сумма оборот, Сумма конечный остаток, Регистратор.

Нюансы учета авансов

Проанализируем ситуацию с авансами. В 1С:Бухгалтерии при поступлении денег на счет 51 программа автоматически распределяет сумму: часть может уйти на погашение долга на счет 62.01, а остаток — на аванс на счет 62.02. Если вы строите отчет только по одному из этих субсчетов, данные о сальдо будут неверными.

Рекомендация: Всегда анализируйте счет 62 в целом. Сальдо абонента — это разница между всеми его долгами и всеми его переплатами. Именно поэтому использование виртуальных таблиц остатков по группе счетов является стандартом качественной разработки в 1С.

Таким образом, для получения качественного отчета по поступлениям с сальдо, мы рекомендуем использовать регистр Хозрасчетный, виртуальную таблицу ОстаткиИОбороты и обязательную группировку по контрагенту без жесткой привязки к конкретному субсчету 62.01 или 62.02.

← На главную