1с запрос иерархия справочника

  • Автор темы Lucania
  • 25
  • Обновлено
  • 02, May 2023
  • #1
Для построения иерархической структуры справочника в 1С необходимо выполнить запрос, используя рекурсивную выборку.

Например, если нужно построить иерархию подразделений, можно выполнить следующий запрос: markdownCopy code
 ВЫБРАТЬ

Подразделения.Ссылка,

Подразделения.Наименование,

Подразделения.Родитель,

0 КАК Уровень

ИЗ

Справочник.Подразделения КАК Подразделения

ГДЕ

Подразделения.Родитель = &Родитель

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ

Подразделения.Ссылка,

Подразделения.Наименование,

Подразделения.Родитель,

ПодразделенияУровень.Уровень + 1

ИЗ

Справочник.Подразделения КАК Подразделения

ВНУТРЕННЕЕ СОЕДИНЕНИЕ (

ЗНАЧЕНИЕ (ТаблицаЗначений ((

'Родитель', 'Справочник.Подразделения', &Родитель

))) КАК ПодразделенияУровень

ПО

Подразделения.Родитель = ПодразделенияУровень.Ссылка

УПОРЯДОЧИТЬ ПО

Уровень,

Наименование

В данном запросе используется рекурсивная выборка для построения дерева подразделений.

В первой части запроса выбираются корневые элементы (те, у которых нет родителя), а во второй части - дочерние элементы.

Затем результаты объединяются в единую таблицу, которая упорядочивается по уровню и наименованию элементов. Значение параметра & Родитель заменяется на ссылку на родительский элемент, для которого нужно построить иерархию.

Lucania


Рег
02 Feb, 2023

Тем
27158

Постов
27328

Баллов
298908
Тем
49554
Комментарии
57426
Опыт
552966

Интересно