Иерархический справочник
В текущей версии «1С:Шины» поддерживается создание только одного справочника, что ограничивает функциональность работы с иерархиями — доступна только иерархия по умолчанию, настройка дополнительных иерархий невозможна.
Чтобы указать, что справочник является иерархическим, задайте его свойству Иерархический значение Истина.
Выберите Вид иерархии:
- ИерархияГруппИЭлементов — значение по умолчанию,
- ИерархияЭлементов.
Иерархия групп и элементов
При выборе вида иерархии ИерархияГруппИЭлементов автоматически создается справочник групп {ИмяСправочника}.Группы с иерархией, в которой в качестве родителя выступает элемент справочника групп, а в качество потомка — элемент иерархического справочника, по которому порождается справочник групп.
Настройки справочника групп задаются в разделе СправочникГрупп панели свойств.
Пример иерархического справочника с группами
ВидЭлемента: Справочник
Ид: 43bb178c-1f7c-4e42-a5c8-14f9722e2e89
Имя: Товары
ОбластьВидимости: ВПодсистеме
Иерархический: Истина
РежимУдаления: Немедленно
Иерархия:
Вид: ИерархияГруппИЭлементов
СправочникГрупп:
Автонумерация:
ДлинаНумерации: 3
Постфикс: Гр
Префикс: ПС
Формат:
ДлинаПостфикса: 2
ДлинаПрефикса: 2
РазделительПостфикса: "-"
РазделительПрефикса: "-"
Представление:
Объект: Товары (Группа)
Список: Товары (Группы)
Реквизиты:
-
Имя: Наименование
-
Имя: Код
Длина: 9

Для справочника групп формы не включаются в интерфейс автоматически. При необходимости вы можете задать автоматическое включение форм в настройке справочника групп ВключатьВАвтоИнтерфейс или указать их самостоятельно. Например:
ТипФормы: Товары.Группы.АвтоматическаяФормаСписка
Для справочника с иерархией групп и элементов:
- автоматически создается реквизит Родитель,
- порождаются следующие таблицы языка запросов:
ИмяСправочника.Группы,ИмяСправочника.Группы.Иерархия,ИмяСправочника.Группы.Иерархия.Циклы,ИмяСправочника.ИерархияГруппИЭлементов,ИмяСправочника.ИерархияГруппИЭлементов.Циклы.
Иерархия элементов
На автоматические формы объекта и списка такого справочника добавляется поле Родитель. Динамический список начинает работать в иерархическом режиме:

Для иерархических справочников:
- автоматически создается реквизит Родитель,
- порождаются следующие таблицы языка запросов:
Реквизит «Родитель»
Если для справочника устанавливается свойство Иерархический, то для него автоматически создается реквизит с именем Родитель, который имеет тип ИмяСправочника.Ссылка?. Если у справочника был собственный реквизит с именем Родитель, то при установке флажка Иерархический:
- этот реквизит удаляется и заменяется на системный;
- начинают действовать следующие требования:
- отсутствие свойств реквизита Ид и Тип,
- отсутствие каких-либо ограничений типа.
Реквизит «Владелец»
Если у справочника есть поле Владелец, то его значение должно быть одинаковым для всех дочерних элементов и быть таким же, как у родительского элемента. В противном случае возникает ИсключениеНесоответствияВладельцевИерархии.
Проверка значения поля Владелец отключена в контексте загрузки (РежимЗагрузкиДанных = Истина).
Таблицы языка запросов с информацией об иерархических связях
Для иерархических справочников и дополнительных иерархий порождаются следующие таблицы языка запросов:
ИмяСправочника.Иерархия— таблица для иерархического справочника с информацией о связях;ИмяСправочника.Иерархия.Циклы— таблица для иерархического справочника с информацией о циклах;ИмяСправочника.ИмяИерархии— таблица для дополнительной иерархии с информацией о связях;ИмяСправочника.ИмяИерархии.Циклы— таблица для дополнительной иерархии с информацией о циклах.
Подробнее о таблицах, порождаемых в языке запросов для справочников с иерархией
Таблицы иерархий не содержат данных, требующих защиты с помощью контроля доступа. Они доступны всем для чтения.
Примеры получения данных с помощью языка запросов
ВЫБРАТЬ
Подразделения.Ссылка,
Подразделения.Код,
Подразделения.Наименование
ИЗ
Подразделения как Подразделения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Подразделения.Иерархия КАК ТаблицаИерархии
ПО Подразделения.Ссылка == ТаблицаИерархии.Родитель И ТаблицаИерархии.Ребенок == %Ребенок
ВЫБРАТЬ
Ссылка,
Код,
Наименование
ИЗ
Сотрудники
ГДЕ
Ссылка В ИЕРАРХИИ Сотрудники.Подразделения (%Подразделение)
ВЫБРАТЬ
Подразделения.Ссылка,
Подразделения.Код,
Подразделения.Наименование,
Подразделения.Уровень
ИЗ
Подразделения КАК Подразделения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Подразделения.Иерархия КАК ТаблицаИерархии
ПО Подразделения.Ссылка == ТаблицаИерархии.Ребенок