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