Работа с иерархическими таблицами

Данная библиотека содержит ряд полезных функций, которые для таблицы БД 1С позволяют:

Таблица с Иерархией от таблицы с Родителями отличается тем, что в первой иерархия строится от корня (Уровень0) до элементов (УровеньХ). И при этом каждое значение таблицы БД может быть только в одной колонке результирующей таблицы. А во второй иерархия строится от элементов (Ссылка) до корня (РодительХ). И при этом каждое значение таблицы БД может в разных строках результирующей таблицы встречаться в разных колонках (для одних элементов он первый родитель, а для других - родитель родителя и т.п.).

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

В случае с иерархическими таблицами БД - происходящее понятно.
Пояснения требует случай, когда таблица БД не иерархическая. В этом случае, библиотека рассматривает такую таблицу как иерархическую с единичной глубиной иерархии. Т.е. все элементы такой таблицы считаются подчиненными пустой ссылке соответствующего типа.

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

При разработке библиотеки использовались некоторые идеи и приемы из следующих статей (которые рекомендую изучить, т.к. в них есть материалы, не вошедшие в библиотеку):
Транзитивное замыкание запросом
Уровни, глубина, прародители, циклы и аналоги запросом

Библиотека распространяется в виде файла конфигурации (.cf), в котором есть три общих модуля и используемое в функциях перечисление.

Общие модули:

На случай, если у кого-то возникнут проблемы с открытием файла cf, сохранил тексты модулей в текстовые файлы и запаковал их в архив. Значения перечисления же можно понять из описаний перед функциями.

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

Файлы для скачивания

Файл конфигурации (формата 8.3.9.1818) (33 КБ)
Архив (7-Zip) с текстами модулей (16 КБ)