При разработке отчетов на Системе Компоновки Данных (СКД) для бухгалтерских конфигураций часто возникает ситуация, когда итоговые суммы по счетам отображаются не так, как ожидалось. Особенно это заметно при использовании полей развернутого сальдо, когда отрицательные значения «перескакивают» из кредита в дебет или не схлопываются при группировке. Давайте разберем, почему это происходит и как настроить отчет правильно.
Первое, что необходимо понять — это разница в том, как 1С хранит и отдает данные из виртуальных таблиц регистра бухгалтерии. В системе существуют два принципиально разных типа показателей:
СуммаОстатокДт и СуммаОстатокКт): Это классическое сальдо на конец периода. Если по счету (или аналитике) есть обороты в обе стороны, система сама вычитает меньшее из большего. В результате у вас либо дебетовый остаток, либо кредитовый.СуммаРазвернутыйОстатокДт и СуммаРазвернутыйОстатокКт): Эти поля показывают остатки без учета взаимозачета. Если на субконто висит «виртуальный» долг в обе стороны, вы увидите и дебет, и кредит одновременно.Проблема возникает, когда мы пытаемся суммировать эти показатели в СКД. Если в настройках ресурсов выбрано простое суммирование для развернутых полей, то система будет математически складывать все значения, игнорируя бухгалтерскую логику «схлопывания». Именно поэтому при группировке по счету итоговые цифры могут выглядеть как «странные», так как отрицательные значения в развернутых полях не нивелируются, а просто суммируются.
Чтобы избежать путаницы с итогами, рассмотрим пошагово, как правильно организовать работу с ресурсами в СКД.
Если ваша задача — получить стандартный бухгалтерский итог, попробуйте отказаться от использования развернутых остатков в детальных записях. Для вывода стандартных оборотно-сальдовых ведомостей или отчетов по остаткам по счету достаточно использовать:
СуммаОстатокДт и СуммаОстатокКт
Когда вы используете эти поля, система автоматически производит свертку, и итоговые значения по группировкам будут соответствовать реальности.
ОстаткиИОборотыЧасто ошибкой является использование таблицы Остатки, когда отчет должен показывать движение за период. При работе с ОстаткиИОбороты система предоставляет гораздо больше возможностей для настройки иерархических итогов. Разберем, почему это важно:
ОстаткиИОбороты в настройках СКД вы можете задать роль полей, что позволит системе корректно интерпретировать группировки.СУММА().Если вам жизненно необходимо видеть развернутое сальдо, но вы хотите, чтобы итоги считались «умно», используйте выражение ресурса в СКД. Вместо того чтобы полагаться на автоматическую сумму, напишите формулу в поле Выражение в настройках ресурсов:
Например, вы можете использовать конструкцию:
ВычислитьВыражение(\"Сумма(СуммаРазвернутыйОстатокДт) - Сумма(СуммаРазвернутыйОстатокКт)\", \"Счет\")
Этот метод позволяет вам принудительно управлять тем, как система схлопывает данные на верхних уровнях группировки. Анализируя таким образом ситуацию, вы сможете добиться корректного отображения итогов вне зависимости от того, в какой колонке возник минус.
Счет и вложенная группировка по Субконто, убедитесь, что ресурсы для них настроены единообразно.ОстаткиИОбороты убедитесь, что параметр Период правильно передан из настроек СКД.Работая с Системой Компоновки Данных, всегда держите в уме разницу между математическим сложением и бухгалтерским сальдированием. Если вы будете следовать этим правилам и правильно выбирать поля из виртуальных таблиц, вы сможете построить точный и надежный отчет, который будет верно отображать итоги по любому счету.