Вход | Регистрация
 

Запросом получить все группы с особенными элементами

Запросом получить все группы с особенными элементами
Я
   ДНН
 
04.01.19 - 16:36
Доброго времени суток, коллеги.

Есть иерархический справочник, иерархия групп и элементов. Может быть произвольное количество уровней иерархии.
У элементов есть реквизит "Особенный" типа булево.
Есть таблица значений с одной колонкой "Группа". В этой колонке группы данного справочника, причем произвольного уровня иерархии. Как группы первого уровня, так и 2-го, 3-го и т.д
Нужно запросом получить таблицу из 2-х колонок: "Группа", "Есть особенный элемент" (не обязательно в этой группе, в том числе во вложенных группах, грубо говоря "в иерархии"). Именно запросом, без запроса сделать не проблема. Запрос не обязательно один, может быть пакет запросов.
У кого какие мысли?
Спасибо.
 
 
   azernot
 
1 - 04.01.19 - 16:50
Количество уровней иерархии фиксировано?
Текст запроса можно программного скомпоновать?

Идея в том, чтобы объединить несколько запросов, в которых получить разные уровни групп

Для группы 1-го уровня конструкция такая:
Выбрать
Выбор когда МойСправочник.Владелец = Значение(Справочник.мойСправочник.ПустаяСсылка) ТОгда
Значение(Справочник.мойСправочник.ПустаяСсылка)
когда МойСправочник.Владелец.Владелец = Значение(Справочник.мойСправочник.ПустаяСсылка) ТОгда
МойСправочник.Владелец
когда МойСправочник.Владелец.Владелец = Значение(Справочник.мойСправочник.ПустаяСсылка) ТОгда
МойСправочник.Владелец
когда МойСправочник.Владелец.Владелец.Владелец = Значение(Справочник.мойСправочник.ПустаяСсылка) ТОгда
МойСправочник.Владелец.Владелец

...
Конец как Группа1Уровня
Из Справочники.МойСправочник
Где МойСправочник.Особенный
   ДНН
 
2 - 04.01.19 - 16:59
Количество уровней иерархии фиксировано?  - нет
Текст запроса можно программного скомпоновать? - не желательно
   Злопчинский
 
3 - 04.01.19 - 17:19
задача мудачно поставлена
"Нужно запросом получить таблицу из 2-х колонок: "Группа", "Есть особенный элемент" (не обязательно в этой группе, в том числе во вложенных группах, грубо говоря "в иерархии")."

Группа21
  Группа211
    Группа2111 - здесь лежит особенный элемент.

какая группа должна быть указана в таблице?

Группа21 здесь лежит особенный элемент.
  Группа211
    Группа2111 - здесь лежит особенный элемент.

- какая группа/группы должны быть указаны в таблице?
   MetaDon
 
4 - 04.01.19 - 17:43
(0) используй ПолныйКод ;
   МихаилМ
 
5 - 05.01.19 - 13:04
(0)
ищите "транзитивное замыкание запросом"
   Конструктор1С
 
6 - 05.01.19 - 13:10
Кривое проектирование приводит к кривым задачам и кривым алгоритмам

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует