Как в СКД вывести каждую группировку в отдельную колонку

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

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

Метод 1. Глобальная настройка расположения полей группировок

Самый быстрый и простой способ изменить вид всего отчета — воспользоваться общими настройками компоновки. Разберем этот процесс по шагам:

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

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

Метод 2. Индивидуальная настройка для конкретных группировок

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

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

Стоит обратить внимание на вариант Отдельно и только в отдельных колонках. Этот режим исключает дублирование названий группировок в иерархических строках, что делает таблицу максимально «чистой» и читаемой.

Управление итогами и решение проблемы «исчезновения данных»

Рассмотрим ситуацию, с которой часто сталкиваются разработчики (она упоминалась в сообщении №6): при попытке убрать итоги по группировкам через снятие флага «Выводить итоги», данные в колонках просто исчезают. Это происходит потому, что СКД воспринимает отключение итогов группировки как команду не выводить саму строку группировки.

Чтобы оставить названия группировок в своих колонках, но при этом убрать числовые показатели (ресурсы) из промежуточных строк, выполним следующие действия:

  1. Перейдем в Другие настройки.
  2. Найдем параметр Расположение итогов.
  3. Установим значение Нет (вместо «Начало», «Конец» или «Начало и конец»).

В этом случае строки с названиями группировок останутся на месте, обеспечивая структуру таблицы, но пустые или ненужные суммы в этих строках отображаться не будут. Если же нужно убрать только общие итоги по всему отчету, используем параметры Расположение общих итогов по горизонтали и Расположение общих итогов по вертикали.

Настройка ресурсов для «табличного» вида

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

Если установить Расположение ресурсов = Вертикально, то все числовые показатели будут всегда находиться в колонках справа от группировок. Это исключает ситуацию, когда ресурсы «подлезают» под названия группировок, нарушая строгую табличную структуру.

Использование «Детальных записей» для плоских списков

Если заказчику не нужна возможность сворачивать и разворачивать узлы (плюсики слева), а нужен просто линейный список всех записей, мы можем поступить иначе:

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

В таком режиме отчет по умолчанию будет выведен в виде плоской таблицы без каких-либо иерархических смещений, и дополнительные настройки расположения полей не потребуются.

Программная установка настроек

Иногда требуется изменить поведение отчета программно, например, в зависимости от прав пользователя или выбранного варианта. Разберем пример кода, который устанавливает расположение группировок отдельно:


// Получаем настройки компоновщика данных
Настройки = КомпоновщикНастроек.Настройки;

// Устанавливаем параметр "Расположение полей группировок"
ПараметрРасположения = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РасположениеПолейГруппировок"));

Если ПараметрРасположения <> Неопределено Тогда
    ПараметрРасположения.Значение = РасположениеПолейГруппировокКомпоновкиДанных.Отдельно;
    ПараметрРасположения.Использование = Истина;
КонецЕсли;

Этот код позволяет гибко управлять внешним видом отчета непосредственно в момент его формирования в модуле объекта или форме отчета.

Дополнительное оформление: Автоотступ и границы

Выясним еще одну деталь: даже при выводе в отдельные колонки 1С может сохранять небольшой отступ (иерархический сдвиг) текста внутри ячейки. Чтобы колонки выглядели идеально ровно:

Таким образом, комбинируя настройки РасположениеПолейГруппировок, РасположениеИтогов и Автоотступ, мы получаем полный контроль над визуализацией отчета, делая его максимально удобным для пользователей, привыкших к работе с табличными процессорами.

← На главную