К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как свернуть колонки в отчете СКД 1С

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

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

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

Ниже разобраны практические способы: от простой настройки в конфигураторе до программного изменения настроек и сворачивания в уже сформированном отчете.

Что именно нужно свернуть: определяем задачу

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

Маршрут решения

Как выбрать действие

Нужно, чтобы колонки объединялись в разворачиваемые группы с итогамиСоздайте группировку колонок в структуре настроек СКД
Нужно просто убрать лишние колонки из отчетаСнимите флажки с полей в «Выбранных полях» настроек варианта
Нужно свернуть уже сформированный отчет до верхнего уровняИспользуйте кнопки сворачивания группировок в табличном документе
Настройку нужно задать из кода (внешний отчет, расширение)Меняйте структуру настроек программно через НастройкиКомпоновкиДанных

Частая ситуация: отчет выводит продажи по месяцам, и каждый месяц — отдельная колонка. Если месяцев много, таблица становится нечитаемой. Здесь правильное решение — группировка колонок по периоду (например, по кварталу или году), внутри которой лежат месяцы. Пользователь сможет свернуть месяцы до квартала одним щелчком.

Способ 1: группировка колонок в настройках СКД

Основной способ — добавить группировку колонок в конструкторе настроек. Порядок действий в конфигураторе:

Порядок действий в конфигураторе
  1. 1
    Откройте схему компоновки данных отчета и перейдите на закладку «Настройки»
  2. 2
    В дереве структуры выберите или добавьте элемент «Таблица»
  3. 3
    Перейдите на закладку «Колонки» внутри настройки таблицы
  4. 4
    Добавьте новую группировку колонок и укажите поле группировки (например, «Период.Квартал»)
  5. 5
    Внутрь этой группировки добавьте вложенную группировку по детальному полю (например, «Период.Месяц»)
  6. 6
    Убедитесь, что ресурсы (суммы, количества) добавлены в закладку «Ресурсы» схемы
  7. 7
    Сформируйте отчет и проверьте наличие кнопок сворачивания в заголовках колонок

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

Важный нюанс: поле, по которому строится группировка колонок, должно присутствовать в наборе данных. Если поле вычисляемое или берется из периодического регистра, убедитесь, что оно доступно в списке доступных полей на закладке «Настройки».

Способ 2: скрытие лишних колонок через выбранные поля

Если задача не в сворачивании с итогами, а просто в том, чтобы убрать лишние колонки, достаточно настроить выбранные поля. Это можно сделать и в конфигураторе, и прямо в режиме предприятия через «Изменить вариант» (или «Настройки» в типовых отчетах).

Откройте настройки варианта, найдите список полей (в расширенном режиме настроек это закладка «Поля» или «Выбранные поля») и снимите флажки с ненужных колонок. Отчет перестроится без них. Порядок колонок меняется перетаскиванием полей в списке.

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

Способ 3: сворачивание в сформированном отчете

Если отчет уже сформирован и содержит группировки (строк или колонок), свернуть уровни можно непосредственно в табличном документе. В типовых конфигурациях на командной панели отчета есть кнопки «Свернуть группировки» / «Развернуть группировки», а также кнопки «минус/плюс» у каждого заголовка группы.

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

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

Программное изменение настроек

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

// Получаем настройки компоновщика

Настройки = КомпоновщикНастроек.Настройки;

// Находим таблицу в структуре

Для Каждого Элемент Из Настройки.Структура Цикл

Если ТипЗнч(Элемент) = Тип("ТаблицаКомпоновкиДанных") Тогда

// Добавляем группировку колонок

ГруппировкаКолонок = Элемент.Колонки.Добавить();

ПолеГруппировки = ГруппировкаКолонок.ПоляГруппировки.Элементы.Добавить(

Тип("ПолеГруппировкиКомпоновкиДанных"));

ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("ПериодМесяц");

ПолеГруппировки.Использование = Истина;

КонецЕсли;

КонецЦикла;

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

Проверка результата и типичные ошибки

Контрольные точки

Как проверить результат

Заголовки колонок группировки
Норма

У заголовков есть кнопки сворачивания, итоги по ресурсам видны

Тревожный признак

Колонки идут сплошным списком без иерархии

Итоги при сворачивании
Норма

При свернутых колонках суммы соответствуют развернутому виду

Тревожный признак

Итоги пропадают или удваиваются

Доступные поля
Норма

Поле группировки есть в списке доступных полей настроек

Тревожный признак

Поле не найдено — его нет в наборе данных или оно отключено

Повторное формирование
Норма

Отчет формируется без ошибок и предупреждений

Тревожный признак

Ошибка «Поле не найдено» или пустые колонки

Типичные ошибки
01
Добавление полей колонок в выбранные поля вместо группировки колонок — итоги не считаются, сворачивание невозможно
02
Отсутствие ресурса в закладке «Ресурсы» схемы — колонки группировки появляются, но значения пустые
03
Использование авто-поля в группировке без явного указания полей — пользователь не видит нужных колонок
04
Правка типовой схемы вместо создания своего варианта — изменения теряются при обновлении
05
Попытка свернуть колонки в структуре «Список» — там группировок колонок нет в принципе

Отдельно стоит упомянуть производительность. Если группировка колонок строится по полю с большим количеством значений (например, по дням за несколько лет), отчет будет формироваться долго, а табличный документ станет огромным. В таких случаях ограничьте период отбором или поднимите уровень группировки до месяца/квартала.

Когда группировка колонок не подходит: альтернативы

Не всегда сворачивание колонок — лучшее решение. Если значений много и структура нестабильна, рассмотрите варианты:

  • Поворот таблицы: перенесите измерение из колонок в строки — строки сворачиваются и фильтруются удобнее, а отчет остается компактным.
  • Отбор вместо сворачивания: дайте пользователю отбор по периоду или номенклатуре, чтобы в колонки попадало только нужное.
  • Два варианта отчета: детальный вариант с развернутыми колонками и сводный вариант только с итогами по группировке — пользователь переключается между ними.
  • Вывод в сводную диаграмму: для визуального анализа по колонкам иногда удобнее диаграмма, где детализация регулируется точками и сериями.

Выбор зависит от того, как отчет используется: для печати лучше фиксированная структура, для анализа на экране — интерактивные группировки со сворачиванием.

Итог

Что важно запомнить

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

Частые вопросы

Почему в отчете нет кнопок сворачивания у колонок?

Кнопки появляются только если в структуре настроек используется «Таблица» с иерархией группировок колонок. Если колонки заданы простым списком полей или структура — обычная группировка строк, сворачивать нечего. Добавьте группировку колонок и вложите в неё детальные поля.

Можно ли свернуть колонки, чтобы итог считался только по видимым?

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

Как сделать, чтобы отчет открывался сразу со свернутыми колонками?

Штатного флага «свернуть при формировании» у группировок колонок нет. Рабочие варианты: сохранить вариант, где детальные поля колонок скрыты, либо программно после формирования пройтись по табличному документу и свернуть уровни группировок через методы работы с группировками результата.

Группировка колонок создана, но значения в ней пустые. Что не так?

Чаще всего ресурс не добавлен на закладку «Ресурсы» схемы компоновки либо у ресурса не указано выражение агрегирования (Сумма, Количество и т.д.). Также проверьте, что поле группировки заполнено в данных — пустые значения дают колонку без итогов.

Можно ли сворачивать колонки в динамическом списке или обычной таблице формы?

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

Изменил настройки в конфигураторе, а у пользователей отчет выглядит по-старому. Почему?

У пользователей сохранены собственные варианты или пользовательские настройки, которые перекрывают настройки из схемы. Попросите сбросить настройки отчета к стандартным («Установить стандартные настройки») или очистите сохраненные варианты через хранилище вариантов отчетов.