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