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

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

Как в 1С свернуть иерархию: списки, деревья и отчёты

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

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

В тонком клиенте и веб-клиенте деревья и группировки управляются кнопками командной панели, контекстным меню и горячими клавишами. В отчётах на системе компоновки данных уровень детализации задаётся структурой настроек, а не кликами по строкам. В коде используются методы объекта «ДеревоЗначений» и свойства табличного поля.

Ниже разобраны все три сценария с конкретными действиями, ограничениями и способами проверить результат. Инструкции применимы к типовым конфигурациям на управляемых формах (БП, УТ, ERP, ЗУП); в обычных формах названия команд могут отличаться.

Определяем, где именно нужно свернуть иерархию

Прежде чем искать кнопку, определите, с каким объектом работаете. Это может быть иерархический список справочника (номенклатура, контрагенты, статьи затрат), дерево в документе или обработке, отчёт с группировками или план видов характеристик. Механика сворачивания у них разная.

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

Папки со знаком «+» в спискеИерархический список справочника

Сворачивается кнопками панели или горячими клавишами

Отчёт с уровнями детализацииГруппировки СКД

Меняется в настройках отчёта, а не кликами

Дерево в обработке или документеДерево значений на форме

Управляется командами формы или кодом

Сворачиваем иерархию в списке справочника

Откройте список и убедитесь, что включён режим иерархического просмотра: «Ещё → Режим просмотра → Дерево» (в ряде конфигураций — «Иерархический список»). Без этого режима сворачивать нечего — элементы показываются плоским списком.

Чтобы свернуть всё дерево сразу, откройте меню «Ещё» и найдите команду «Свернуть все» либо используйте сочетание Ctrl+Shift+«минус» на цифровом блоке клавиатуры. Разворачивание всего дерева выполняется командой «Развернуть все» или Ctrl+Shift+«плюс». Отдельная ветка сворачивается кликом по значку «минус» у папки или клавишей «минус» на выделенной строке.

В некоторых конфигурациях список запоминает состояние развёрнутости между сеансами, в других при каждом открытии дерево разворачивается заново. Это поведение зашито в форму и пользователем не настраивается.

Порядок действий в списке
  1. 1
    Откройте справочник и включите режим «Дерево» через «Ещё → Режим просмотра»
  2. 2
    Для сворачивания всего: «Ещё → Свернуть все» или Ctrl+Shift+«минус»
  3. 3
    Для одной ветки: клик по значку у папки или клавиша «минус» на строке
  4. 4
    Проверьте: видны только группы верхнего уровня, элементы скрыты

Сворачиваем группировки в отчёте на СКД

В отчётах на системе компоновки данных «иерархия» — это уровни группировок: например, «Склад → Номенклатура → Документ». Чтобы свернуть отчёт до верхнего уровня, откройте «Настройки», перейдите на вкладку «Группировка» и удалите или отключите нижние уровни, оставив только нужный. После этого нажмите «Сформировать».

Если удалять группировки нельзя (отчёт используется в разных видах), есть альтернатива: в расширенных настройках группировки снимите флажок использования у вложенных группировок либо сохраните несколько вариантов отчёта — детальный и свёрнутый — через «Ещё → Сохранить вариант отчёта».

Обратите внимание: в уже сформированном табличном документе тоже есть группировки строк. Их можно свернуть кнопками уровней (цифры 1, 2, 3 в левом верхнем углу табличного документа) или через меню «Таблица → Группировки». Это визуальное сворачивание: данные в отчёте остаются полными, скрывается только отображение.

Программное сворачивание дерева значений

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

Для Каждого Строка Из Дерево.ПолучитьЭлементы() Цикл

Элементы.ДеревоФормы.Свернуть(Строка.ПолучитьИдентификатор());

КонецЦикла;

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

Если нужно «свернуть» данные, а не отображение — например, агрегировать строки дерева до уровня групп — используйте свёртку таблицы значений методом Свернуть("КолонкиГруппировок", "КолонкиСумм") либо запрос с итогами по иерархии (ИТОГИ ПО ... ИЕРАРХИЯ).

1c
Таблица.Свернуть("Номенклатура", "Количество, Сумма");

Типичные ошибки и ограничения

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

В веб-клиенте часть горячих клавиш перехватывается браузером, поэтому надёжнее пользоваться командами меню «Ещё». В тонком клиенте сочетания Ctrl+Shift+«плюс/минус» работают именно с цифрового блока клавиатуры — на ноутбуках без numpad используйте меню.

Типичные ошибки
01
Сворачивание табличного документа вместо настройки группировок — после переформирования всё разворачивается обратно
02
Передача строки дерева вместо её идентификатора в метод Свернуть() — ошибка исполнения кода
03
Ожидание, что режим «Список» покажет иерархию — в плоском режиме папки и сворачивание недоступны

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

После сворачивания списка на экране должны остаться только папки верхнего уровня; развёрнутые ветки помечаются значком «минус», свёрнутые — «плюс». Если часть веток осталась развёрнутой, повторите команду «Свернуть все» — команда применяется ко всему дереву, но при большом объёме данных отработка может занять заметное время.

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

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

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

Вид списка после сворачивания
Норма

Видны только группы верхнего уровня

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

Часть веток развёрнута или список пуст

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

Совпадают с итогами детального варианта

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

Суммы изменились — проверяйте ресурсы и отборы

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

Отчёт сразу строится свёрнутым

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

Детализация возвращается — настройки не сохранены

Часто задаваемые вопросы

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

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

Почему команда «Свернуть все» неактивна?

Чаще всего список находится в плоском режиме просмотра. Переключитесь через «Ещё → Режим просмотра» в режим «Дерево» или «Иерархический список» — после этого команды сворачивания станут доступны.

Как свернуть отчёт, не меняя его настройки?

Используйте кнопки уровней группировки в левом верхнем углу сформированного табличного документа (цифры 1, 2, 3). Это скроет детальные строки только на экране; при следующем формировании отчёт снова будет полным.

Чем свёртка таблицы значений отличается от сворачивания дерева?

Метод Свернуть() у таблицы значений агрегирует данные: строки объединяются, числовые колонки суммируются. Сворачивание дерева на форме меняет только отображение — данные остаются без изменений.

Работают ли горячие клавиши сворачивания в веб-клиенте?

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

Итог

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

Сворачивание иерархии в 1С зависит от контекста: в списках — команда «Свернуть все» или Ctrl+Shift+«минус», в отчётах СКД — настройка группировок, в коде — метод Свернуть() с идентификатором строки. Перед действием определите тип объекта, после — проверьте итоги и повторное формирование.