Перейти к основному содержимому

Таблица с информацией о циклах в иерархиях

Таблица с информацией о наличии циклов в иерархиях создается для иерархического справочника и каждой дополнительной иерархии справочника.

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

Для иерархических справочников и дополнительных иерархий порождаются следующие таблицы языка запросов с информацией о наличии циклов:

  • ИмяСправочника.Иерархия.Циклы — таблица для иерархического справочника;
  • ИмяСправочника.ИмяИерархии.Циклы — таблица для дополнительной иерархии.

Таблицы с информацией о циклах являются виртуальными без параметров.

Таблицы иерархий не содержат данных, требующих защиты с помощью контроля доступа. Они доступны всем для чтения.

Поля таблицы

ВершинаЦикла

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

Элемент

Элемент, который образует цикл. Ссылочный тип, входящий в иерархию как родитель или как ребенок.

Контроль отсутствия циклов

При записи объектов, входящих в иерархию (если объект новый или изменено значение родителя), проверяется, что эта запись не создаст цикл в иерархии.

Если обнаруживается цикл:

  • при отсутствии активного контекста загрузки выкидывается исключение;
  • при наличии активного контекста загрузки запись выполняется, при этом в таблицы ИмяСправочника.Иерархия.Циклы или ИмяСправочника.ИмяИерархии.Циклы записывается информация о наличии циклов для всех входящих в цикл объектов. При разрыве циклов эта информация автоматически удаляется.

Цикл из одного объекта (когда объект является собственным родителем) нельзя записать ни в каком режиме.

См. также