Отчеты и Аналитика · 10 мин
Как свернуть колонки в отчете СКД 1С
Разбираем, как свернуть колонки в СКД 1С: группировки колонок, настройки варианта отчета, сворачивание в режиме пользователя, типичные ошибки и проверка результата.
Под «сворачиванием колонок» в системе компоновки данных (СКД) обычно понимают три разные задачи: объединение детальных полей в группировку колонок, скрытие лишних колонок в настройках варианта отчета и сворачивание уже сформированной таблицы в режиме пользователя (когда строки или колонки сворачиваются до итогов). Все три сценария решаются штатными средствами СКД без изменения кода запроса.
Ключевой механизм — структура настроек компоновки. В ней поля можно размещать в группировках строк и колонок, а также в выбранных полях отчета. Если в таблице СКД у колонок задана группировка, то в готовом отчете появляются заголовки с возможностью свернуть/развернуть уровень — аналогично сворачиванию группировок строк.
Ниже разобраны практические способы: от простой настройки в конфигураторе до программного изменения настроек и сворачивания в уже сформированном отчете.
Что именно нужно свернуть: определяем задачу
Прежде чем менять настройки, важно понять, какой результат требуется. От этого зависит, где вносить изменения: в конфигураторе, в пользовательских настройках или в готовом отчете.
Как выбрать действие
Частая ситуация: отчет выводит продажи по месяцам, и каждый месяц — отдельная колонка. Если месяцев много, таблица становится нечитаемой. Здесь правильное решение — группировка колонок по периоду (например, по кварталу или году), внутри которой лежат месяцы. Пользователь сможет свернуть месяцы до квартала одним щелчком.
Способ 1: группировка колонок в настройках СКД
Основной способ — добавить группировку колонок в конструкторе настроек. Порядок действий в конфигураторе:
- 1Откройте схему компоновки данных отчета и перейдите на закладку «Настройки»
- 2В дереве структуры выберите или добавьте элемент «Таблица»
- 3Перейдите на закладку «Колонки» внутри настройки таблицы
- 4Добавьте новую группировку колонок и укажите поле группировки (например, «Период.Квартал»)
- 5Внутрь этой группировки добавьте вложенную группировку по детальному полю (например, «Период.Месяц»)
- 6Убедитесь, что ресурсы (суммы, количества) добавлены в закладку «Ресурсы» схемы
- 7Сформируйте отчет и проверьте наличие кнопок сворачивания в заголовках колонок
После этого в сформированном отчете заголовки колонок верхнего уровня получат стандартные кнопки «минус/плюс» — как у группировок строк. Нажатие на «минус» сворачивает детальные колонки до уровня группировки, при этом итоги по ресурсам отображаются корректно, потому что СКД сама рассчитывает агрегаты по каждому уровню.
Важный нюанс: поле, по которому строится группировка колонок, должно присутствовать в наборе данных. Если поле вычисляемое или берется из периодического регистра, убедитесь, что оно доступно в списке доступных полей на закладке «Настройки».
Способ 2: скрытие лишних колонок через выбранные поля
Если задача не в сворачивании с итогами, а просто в том, чтобы убрать лишние колонки, достаточно настроить выбранные поля. Это можно сделать и в конфигураторе, и прямо в режиме предприятия через «Изменить вариант» (или «Настройки» в типовых отчетах).
Откройте настройки варианта, найдите список полей (в расширенном режиме настроек это закладка «Поля» или «Выбранные поля») и снимите флажки с ненужных колонок. Отчет перестроится без них. Порядок колонок меняется перетаскиванием полей в списке.
Для пользователя это самый безопасный способ: он не меняет схему компоновки, настройку можно сохранить как свой вариант отчета и вернуться к стандартному в любой момент.
Способ 3: сворачивание в сформированном отчете
Если отчет уже сформирован и содержит группировки (строк или колонок), свернуть уровни можно непосредственно в табличном документе. В типовых конфигурациях на командной панели отчета есть кнопки «Свернуть группировки» / «Развернуть группировки», а также кнопки «минус/плюс» у каждого заголовка группы.
Для колонок механизм аналогичен: щелчок по кнопке в заголовке колонки верхнего уровня сворачивает вложенные колонки. Это не меняет настройки — меняется только отображение результата, поэтому при следующем формировании отчет снова появится развернутым, если не задано иное.
Если нужно, чтобы отчет формировался сразу свернутым, задайте это в настройках: у группировки есть параметры вывода, а в пользовательском режиме типовые отчеты часто предлагают переключатель уровня детализации. Либо сохраните вариант, где детальные поля колонок скрыты, а показываются только итоги по группировке.
Программное изменение настроек
Во внешних отчетах и расширениях структуру колонок иногда нужно менять кодом — например, строить колонки по динамическому списку периодов. Для этого используется объект настроек компоновки данных.
// Получаем настройки компоновщика
Настройки = КомпоновщикНастроек.Настройки;
// Находим таблицу в структуре
Для Каждого Элемент Из Настройки.Структура Цикл
Если ТипЗнч(Элемент) = Тип("ТаблицаКомпоновкиДанных") Тогда
// Добавляем группировку колонок
ГруппировкаКолонок = Элемент.Колонки.Добавить();
ПолеГруппировки = ГруппировкаКолонок.ПоляГруппировки.Элементы.Добавить(
Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("ПериодМесяц");
ПолеГруппировки.Использование = Истина;
КонецЕсли;
КонецЦикла;
Программное изменение требует аккуратности: если отчет уже выведен в форму, после изменения настроек нужно заново загрузить настройки в компоновщик и пересформировать результат. Также помните, что пользовательские настройки могут перекрывать изменения, сделанные в основных настройках.
Проверка результата и типичные ошибки
Как проверить результат
У заголовков есть кнопки сворачивания, итоги по ресурсам видны
Колонки идут сплошным списком без иерархии
При свернутых колонках суммы соответствуют развернутому виду
Итоги пропадают или удваиваются
Поле группировки есть в списке доступных полей настроек
Поле не найдено — его нет в наборе данных или оно отключено
Отчет формируется без ошибок и предупреждений
Ошибка «Поле не найдено» или пустые колонки
Отдельно стоит упомянуть производительность. Если группировка колонок строится по полю с большим количеством значений (например, по дням за несколько лет), отчет будет формироваться долго, а табличный документ станет огромным. В таких случаях ограничьте период отбором или поднимите уровень группировки до месяца/квартала.
Когда группировка колонок не подходит: альтернативы
Не всегда сворачивание колонок — лучшее решение. Если значений много и структура нестабильна, рассмотрите варианты:
- Поворот таблицы: перенесите измерение из колонок в строки — строки сворачиваются и фильтруются удобнее, а отчет остается компактным.
- Отбор вместо сворачивания: дайте пользователю отбор по периоду или номенклатуре, чтобы в колонки попадало только нужное.
- Два варианта отчета: детальный вариант с развернутыми колонками и сводный вариант только с итогами по группировке — пользователь переключается между ними.
- Вывод в сводную диаграмму: для визуального анализа по колонкам иногда удобнее диаграмма, где детализация регулируется точками и сериями.
Выбор зависит от того, как отчет используется: для печати лучше фиксированная структура, для анализа на экране — интерактивные группировки со сворачиванием.
Что важно запомнить
Сворачивание колонок в СКД делается через группировку колонок в структуре «Таблица»; лишние колонки скрываются в выбранных полях; в готовом отчете уровни сворачиваются кнопками в заголовках. Ресурсы должны быть описаны в схеме, иначе итоги не посчитаются. Типовые схемы меняйте через варианты или расширения.
Частые вопросы
Почему в отчете нет кнопок сворачивания у колонок?
Кнопки появляются только если в структуре настроек используется «Таблица» с иерархией группировок колонок. Если колонки заданы простым списком полей или структура — обычная группировка строк, сворачивать нечего. Добавьте группировку колонок и вложите в неё детальные поля.
Можно ли свернуть колонки, чтобы итог считался только по видимым?
Нет, и это правильно: СКД всегда считает итоги по полным данным группировки, а не по отображаемым. Скрытие колонки влияет только на представление. Если нужен итог по части данных — используйте отбор в настройках.
Как сделать, чтобы отчет открывался сразу со свернутыми колонками?
Штатного флага «свернуть при формировании» у группировок колонок нет. Рабочие варианты: сохранить вариант, где детальные поля колонок скрыты, либо программно после формирования пройтись по табличному документу и свернуть уровни группировок через методы работы с группировками результата.
Группировка колонок создана, но значения в ней пустые. Что не так?
Чаще всего ресурс не добавлен на закладку «Ресурсы» схемы компоновки либо у ресурса не указано выражение агрегирования (Сумма, Количество и т.д.). Также проверьте, что поле группировки заполнено в данных — пустые значения дают колонку без итогов.
Можно ли сворачивать колонки в динамическом списке или обычной таблице формы?
Нет, механизм сворачивания группировок относится только к результату компоновки данных — табличному документу, сформированному СКД. Для таблиц форм и динамических списков такой возможности нет, там колонки только скрываются через настройку видимости.
Изменил настройки в конфигураторе, а у пользователей отчет выглядит по-старому. Почему?
У пользователей сохранены собственные варианты или пользовательские настройки, которые перекрывают настройки из схемы. Попросите сбросить настройки отчета к стандартным («Установить стандартные настройки») или очистите сохраненные варианты через хранилище вариантов отчетов.