При разработке отчетов в 1С:Бухгалтерия предприятия 8.3 (БП 3.0) часто возникает ситуация, когда стандартные настройки или некорректно написанные запросы ограничивают видимость данных. Особенно это касается учета денежных средств, где поступления могут проходить по разным счетам и типам документов. Если ваш отчет показывает только оплату от покупателей по расчетному счету и кассе, но игнорирует эквайринг, прочие поступления или валютные операции, значит, пришло время проанализировать структуру запроса в Системе компоновки данных (СКД).
В этой статье мы подробно разберем, как модифицировать отчет, чтобы он охватывал абсолютно все банковские и кассовые движения, учитывая архитектуру регистра бухгалтерии Хозрасчетный.
Для начала разберем типичную ошибку. Часто разработчики устанавливают жесткий фильтр на конкретный счет расчетов (например, Счет = &Счет76П) или ограничиваются только счетами 50.01 и 51. Однако в типовой конфигурации «Бухгалтерия предприятия» денежные поступления могут отражаться на целой группе счетов. Проанализируем, какие счета необходимо включить в выборку для полного охвата:
Рассмотрим ситуацию с эквайрингом подробнее. Когда клиент расплачивается картой, документ «Операция по платежной карте» формирует проводку Дт 57.03 — Кт 62. В этот момент деньги еще не поступили на расчетный счет предприятия. Когда банк зачисляет средства (за вычетом комиссии), создается документ «Поступление на расчетный счет» с видом операции «Поступления от продаж по платежным картам и банковским кредитам», который делает проводку Дт 51 — Кт 57.03. Если ваш отчет смотрит только на 51 счет и анализирует контрагента в корреспонденции, вы можете не увидеть аналитику по конечному покупателю, так как на 51 счете в корреспонденции будет стоять банк (счет 57), а не покупатель (счет 62).
Для построения отчета по оборотам денежных средств мы рекомендуем использовать виртуальную таблицу Хозрасчетный.Обороты. В отличие от таблицы ОстаткиИОбороты, она работает быстрее и позволяет более гибко настраивать условия по корреспонденции счетов. Проанализируем параметры этой таблицы:
Нам важно отбирать записи, где денежный счет проходит по Дебету. Это и будет означать поступление средств. При этом в поле «Счет» мы должны передать список всех интересующих нас счетов денежных средств.
Рассмотрим пример запроса, который позволит собрать данные по всем типам поступлений. Мы будем использовать проверку на вхождение счета в иерархию группы «Денежные средства» и выводить информацию о регистраторе и виде операции.
ВЫБРАТЬ
ХозрасчетныйОбороты.Период КАК ДатаОперации,
ХозрасчетныйОбороты.Регистратор КАК Документ,
ХозрасчетныйОбороты.Регистратор.ВидОперации КАК ВидОперации,
ХозрасчетныйОбороты.Счет КАК СчетУчета,
ХозрасчетныйОбороты.КорСчет КАК КорСчет,
ХозрасчетныйОбороты.Субконто1 КАК АналитикаДенег,
ХозрасчетныйОбороты.КорСубконто1 КАК Контрагент,
ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаПоступления
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(
&НачалоПериода,
&КонецПериода,
Запись,
Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ДенежныеСредства)),
,
,
,
) КАК ХозрасчетныйОбороты
ГДЕ
ХозрасчетныйОбороты.СуммаОборотДт > 0
В данном запросе мы используем Счет В ИЕРАРХИИ. Это позволяет автоматически подтянуть данные по всем субсчетам 50, 51, 52, 55 и 57 счетов. Обратим внимание на поле ХозрасчетныйОбороты.Регистратор.ВидОперации. Это поле позволит пользователю в отчете четко видеть, было ли это «Поступление от покупателя», «Прочее поступление» или «Возврат от поставщика».
После того как мы определились с запросом, перейдем к настройке схемы компоновки данных. Чтобы отчет был удобным для бухгалтера, выполним следующие шаги:
&НачалоПериода и &КонецПериода доступны для пользователя и имеют тип СтандартныйПериод.СуммаПоступления установим роль «Остатки», если мы хотим видеть итоговые суммы по дебету в разрезе периодов.КорСчет. Например, счета 60, 62, 76. Но будьте осторожны: «Прочие поступления» могут корреспондировать со счетом 91.01.Проанализируем ситуацию из вопроса пользователя: необходимо видеть начисление и оплату пеней. Пени обычно учитываются на счете 76.02 «Расчеты по претензиям» или 76.05. В проводках это выглядит как Дт 51 — Кт 76.02.
Если в старом отчете стоял жесткий отбор Счет = &Счет76П, то отчет искал записи, где 76 счет стоит в колонке «Счет». Но при поступлении денег 76 счет является корреспондирующим (кредитовым), а основным счетом является 51. Именно поэтому отчет ничего не показывал. Нам нужно проверять КорСчет.
Посмотрим на пример условия для выделения платежей по пеням в общем списке:
ВЫБОР
КОГДА ХозрасчетныйОбороты.КорСчет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоПретензиям))
ТОГДА "Поступление пеней/штрафов"
ИНАЧЕ "Прочее поступление"
КОНЕЦ КАК КатегорияПлатежа
Прежде чем переносить запрос в отчет СКД, обязательно воспользуйтесь Консолью запросов. Выполните следующие действия:
Хозрасчетный.Обороты с фильтром по этому регистратору.СуммаОборотДт.Если вы видите данные в консоли, значит, структура запроса верна, и теперь ее можно смело интегрировать в СКД. Помните, что использование ХозрасчетныйОбороты.Регистратор дает вам доступ ко всем реквизитам документа-основания, что позволяет выводить в отчет комментарии, назначение платежа и даже ответственного менеджера.
Таким образом, комбинируя правильный выбор счетов денежных средств (50, 51, 52, 55, 57) и анализ корреспонденции через виртуальные таблицы оборотов, мы получаем гибкий и мощный инструмент для анализа всех финансовых потоков предприятия в 1С:Бухгалтерия 8.3.