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

Справочники и Данные · 11 мин

Иерархия в 1С: как она устроена и как с ней работать

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

Иерархия в 1С — это механизм вложенной структуры элементов справочника, при котором каждый элемент может иметь родителя. Классический пример — справочник «Номенклатура»: группа «Товары» содержит группу «Канцелярия», а внутри неё — конкретные позиции «Ручка шариковая» и «Блокнот А5». Благодаря иерархии тысячи позиций не превращаются в плоский бесконечный список, а раскладываются по понятным папкам.

Технически иерархия реализована через реквизит «Родитель» (Parent), который платформа автоматически добавляет к иерархическому справочнику. У каждого элемента есть ссылка на родительский элемент, а у элементов верхнего уровня родитель пустой. Это позволяет платформе строить дерево, выполнять отборы «по группе с учётом вложенных» и контролировать, куда пользователь помещает новые записи.

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

Какие виды иерархии существуют в 1С

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

Первый вид — иерархия групп и элементов. Здесь справочник состоит из объектов двух типов: групп (папок) и элементов. Группа может содержать другие группы и элементы, но сама не несет прикладных данных — например, группу «Канцелярия» нельзя выбрать в документе как товар, если разработчик запретил это. Так устроены справочники «Номенклатура», «Контрагенты» в типовых конфигурациях.

Второй вид — иерархия элементов. Здесь нет отдельного типа «группа»: любой элемент может быть одновременно позицией и родителем для других позиций. Классический пример — справочник «Подразделения»: подразделение «Завод» является реальным объектом учёта и одновременно содержит в себе «Цех №1» и «Цех №2». Такой вид выбирают, когда родительский объект сам участвует в учёте.

Сравнение видов иерархии

Иерархия групп и элементов

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

Иерархия элементов

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

Где настраивается иерархия в конфигураторе

Настройка выполняется в конфигураторе в свойствах справочника на закладке «Иерархия». Там задаётся три ключевых параметра: признак «Иерархический справочник», вид иерархии и ограничение количества уровней вложенности.

Флажок «Иерархический справочник» включает механизм в целом — после этого у справочника появляется реквизит «Родитель». Поле «Вид иерархии» определяет один из двух описанных выше вариантов. Параметр «Количество уровней иерархии» ограничивает глубину дерева: если указать, например, 3, пользователь не сможет создать четвёртый уровень вложенности.

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

Как пользователь работает с иерархией в режиме «Предприятие»

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

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

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

Как переместить элемент в другую группу
  1. 1
    Откройте справочник и найдите нужный элемент через поиск или дерево групп.
  2. 2
    Выделите элемент и в меню «Ещё» выберите команду «Переместить в группу».
  3. 3
    В открывшемся дереве укажите целевую группу и подтвердите выбор.
  4. 4
    Проверьте результат: откройте целевую группу и убедитесь, что элемент отображается в ней.

Как иерархия влияет на отчёты и отборы

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

В языке запросов 1С этому соответствует оператор В ИЕРАРХИИ: условие Номенклатура В ИЕРАРХИИ(&Группа) вернёт все позиции группы и её подгрупп. Если использовать обычное равенство Родитель = &Группа, будут выбраны только элементы первого уровня вложенности — это частая причина «неполных» данных в самописных отчётах.

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

bsl
Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)"

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

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

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

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

Отображение дерева в списке
Норма

Группы раскрываются, элементы лежат в ожидаемых папках

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

Элементы видны только в режиме «без иерархии», дерево пустое

Отбор по группе в отчёте
Норма

В отбор попадают позиции из вложенных подгрупп

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

Выбираются только элементы первого уровня — проверьте оператор сравнения

Удаление группы
Норма

Пустая группа удаляется без предупреждений о связях

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

Платформа сообщает о наличии вложенных элементов — сначала переместите их

Выбор группы в документе
Норма

Группа недоступна для выбора как значение (для иерархии групп и элементов)

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

Группу можно подставить в документ как товар — проверьте настройки выбора

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

Первая распространённая ошибка — создание дублирующих групп из-за того, что пользователь не нашёл существующую папку. Со временем в справочнике появляются «Товары», «ТОВАРЫ» и «Товары (новые)», и отчёты по категориям распадаются. Профилактика — перед созданием группы искать по справочнику и периодически проводить ревизию структуры.

Вторая ошибка — чрезмерная глубина вложенности. Структура из 7–10 уровней неудобна в навигации и замедляет восприятие. На практике для большинства справочников достаточно 2–4 уровней; более глубокую классификацию лучше выносить в дополнительные реквизиты и свойства, по которым тоже можно строить отборы.

Третья ошибка касается разработчиков: использование сравнения на равенство с родителем вместо оператора «В ИЕРАРХИИ» в запросах. Внешне всё работает, пока в структуре один уровень, но с появлением подгрупп отчёт начинает терять данные без каких-либо сообщений об ошибке.

Типичные ошибки
01
Дубли групп с похожими названиями — отчёты по категориям дробятся и искажают аналитику.
02
Избыточная глубина дерева — навигация усложняется, пользователи перестают находить элементы.
03
Равенство родителю вместо «В ИЕРАРХИИ» в запросе — отчёт теряет позиции из вложенных групп.
04
Удаление групп без переноса элементов — позиции остаются без понятной классификации или блокируют удаление.

Когда иерархия не нужна и чем её заменить

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

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

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

Как выбрать подход

Элементов много, есть чёткое дерево категорий, нужна аналитика по группамИспользуйте иерархию групп и элементов
Родительский объект сам участвует в учёте (подразделение, сотрудник-руководитель)Используйте иерархию элементов
Элемент может относиться к нескольким категориям одновременноНе используйте иерархию — примените дополнительные реквизиты, свойства или теги
Справочник небольшой и линейныйОставьте плоский список без иерархии
Итог

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

Иерархия в 1С строится через реквизит «Родитель» и бывает двух видов: групп и элементов либо элементов. Она настраивается в конфигураторе, влияет на отборы и отчёты (оператор «В ИЕРАРХИИ»), а основные проблемы — дубли групп, избыточная глубина и некорректные сравнения в запросах. Изменения настроек в рабочей базе делайте только после резервного копирования.

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

Можно ли изменить вид иерархии у уже заполненного справочника?

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

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

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

Как удалить группу, внутри которой есть элементы?

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

Чем «В группе» отличается от «В иерархии» в отборах?

«В группе» обычно означает отбор с учётом вложенности в пользовательских отборах списков, а в языке запросов аналог — оператор «В ИЕРАРХИИ». Простое равенство родителю выбирает только прямых «потомков» первого уровня, игнорируя подгруппы.

Сколько уровней иерархии оптимально для номенклатуры?

Универсальной нормы нет, но практика показывает, что 2–4 уровня достаточно для большинства каталогов. Более глубокую классификацию удобнее реализовать через дополнительные свойства и виды номенклатуры — это упрощает навигацию и не ограничивает аналитику.

Может ли один элемент входить сразу в две группы?

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