Имя: Пароль:
1C
 
Запросом получить все группы с особенными элементами
0 ДНН
 
04.01.19
16:36
Доброго времени суток, коллеги.

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

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