Почему в отчете СКД не отображаются итоги по ресурсам и как это исправить?

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

Часто при разработке отчетов на базе Системы компоновки данных (СКД) в 1С разработчики сталкиваются с ситуацией, когда по детальным записям данные выводятся корректно, а итоговые показатели по группировкам оказываются равными нулю или отсутствуют вовсе. Давайте разберем, почему это происходит и как вернуть корректный расчет сумм.

Причина проблемы: «схлопывание» данных через роли

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

При расчете итогов по группировкам система начинает применять логику оборотно-сальдовой ведомости. Она «понимает», что дебет и кредит должны взаимоуничтожаться (сальдироваться). Если у одного контрагента в отчете присутствуют суммы по дебету и кредиту, СКД автоматически вычисляет разницу. Если значения равны, итоговый результат становится нулевым. Именно это часто принимается за «отсутствие итогов».

Пошаговое решение: как отключить автоматическое сальдирование

Если ваша задача — вывести общую сумму оборотов или просто просуммировать показатели, не учитывая бухгалтерскую логику сальдирования, выполните следующие действия:

  1. Откройте схему компоновки данных вашего отчета.
  2. Перейдите на вкладку Наборы данных.
  3. Выберите нужный набор данных и найдите поле, для которого неверно рассчитываются итоги.
  4. В колонке Роль откройте окно редактирования роли.
  5. Очистите все назначенные роли, чтобы поле стало обычным числовым ресурсом.
  6. Нажмите кнопку «ОК» и сохраните настройки.

После удаления ролей Система компоновки данных перестанет интерпретировать число как дебетовое или кредитовое сальдо и начнет выполнять обычное арифметическое суммирование всех значений в рамках группировки.

Что делать, если роли все же необходимы?

Бывают ситуации, когда в одном отчете вам нужно и выводить сальдо, и видеть общие обороты. В таком случае удаление ролей может нарушить работу других частей отчета. Рассмотрим альтернативный подход:

  1. Оставьте исходные поля с ролями для корректной работы штатных механизмов учета.
  2. Перейдите на вкладку Вычисляемые поля в СКД.
  3. Создайте новое поле, например, СуммаБезРоли.
  4. В выражении поля просто укажите исходное поле (например, СуммаДт).
  5. Используйте именно это вычисляемое поле в настройках вашего отчета для отображения итогов.

Поскольку у вычисляемого поля нет назначенной роли «Дебет» или «Кредит», СКД будет суммировать его как обычное число, игнорируя бухгалтерскую логику «схлопывания».

Проверка настроек вывода

Если после проверки ролей итоги все еще не отображаются, обратите внимание на настройки вывода в Других настройках:

Иногда система рассчитывает нулевой итог, и этот ноль просто скрыт настройками оформления. Убедитесь, что у вас не установлены параметры, подавляющие вывод нулевых значений. Проверьте:

Разобравшись с механизмом ролей, вы сможете гибко управлять поведением СКД и добиваться именно того результата, который требуется заказчику, будь то чистый оборот или классическое бухгалтерское сальдо.

← На главную