Как в отчете СКД вывести данные одной широкой группировки в несколько строк?

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

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

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

Способ 1: Использование пользовательских макетов (гибкий вариант)

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

Разберем по шагам, как это сделать:

  1. Создание макета заголовка. Первым делом создадим макет для шапки нашей многострочной группировки. Перейдите на вкладку "Макеты" в настройках схемы компоновки данных. Создайте новый макет и установите для него Тип макета: Макет заголовка группировки. В области макета спроектируйте шапку так, как она должна выглядеть в отчете, разместив заголовки колонок в две или более строки.

  2. Создание макета для данных. Теперь создадим второй макет, который будет отвечать за вывод самих данных. Создайте еще один макет и установите для него Тип макета: Макет группировки. Структура этого макета должна повторять структуру макета заголовка.

  3. Настройка полей и параметров. В ячейки второго макета (Макет группировки), куда должны выводиться данные, нужно вставить не сами поля, а параметры. Для каждой такой ячейки в свойствах установите Заполнение в значение Параметр. Имена параметров можно задавать произвольно, но для удобства лучше называть их так же, как и поля отчета (например, Номенклатура, Количество, Сумма). После этого все созданные параметры появятся в списке "Параметры макета".

  4. Связывание параметров с полями данных. Для каждого параметра в списке "Параметры макета" необходимо указать выражение. В колонке "Выражение" просто напишите имя соответствующего поля из набора данных отчета. Например, для параметра Номенклатура выражением будет Номенклатура.

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

    • Не указывайте имя группировки в поле "Группировка" в свойствах макета. Оставьте это поле пустым.
    • Вместо этого, в списке "Поля группировки" для макета добавьте новое поле и выберите то поле, по которому у вас построена группировка в отчете (например, Номенклатура). Это нужно сделать для обоих макетов.

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

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

Способ 2: Группа выбранных полей (простой вариант)

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

Рассмотрим, как его применить:

  1. Перейдите в настройки структуры отчета. Откройте настройки вашего варианта отчета и перейдите на вкладку "Выбранные поля".

  2. Создайте группу полей. Нажмите кнопку "Добавить новую группу". В списке полей появится новая строка типа Группа.

  3. Перенесите поля в группу. Перетащите мышью все поля, которые вы хотите расположить вертикально, внутрь этой группы. Они станут дочерними элементами для созданной группы.

  4. Установите вертикальное расположение. Выделите строку с вашей новой группой. В колонке свойств для этой строки найдите свойство "Расположение". По умолчанию там стоит "Авто" или "Горизонтально". Измените это значение на "Вертикально".

Вот и все! Теперь при формировании отчета СКД выведет все поля, находящиеся внутри этой группы, друг под другом, каждое в новой строке, в рамках одной записи группировки. Это очень быстрый и эффективный способ для решения задачи без лишних сложностей.

Какой способ выбрать?

Выбор метода зависит от ваших требований к отчету:

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

← На главную