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