Имя: Пароль:
1C
 
СКД. Используя 2 набора получить самого последнего родителя
,
0 Радим1987
 
16.06.20
15:25
Всем привет.
Уважаемые, собственно вопрос, как в СКД используя 2 набора данных получить самого последнего родителя иерархического справочника? Гуглил, не нашел подходящий вариант.

Элемент.Родитель
Элемент.Родитель.Родитель
.... Не подходит.  


Допустим это справочник "Подразделения"

Первый набор

Выбрать
   Ссылка
Из Справочника.Подразделения

Второй набор

Выбрать
   Ссылка,
   Ссылка.Родитель
Из Справочника.Подразделения

как их соединить?
1 savaB
 
16.06.20
15:48
в гугле - собственная иерархия СКД
2 Радим1987
 
16.06.20
15:58
(1) Такой вариант выводит все иерархии
1
  2
   3
    4
А нужно только

4
3 Радим1987
 
16.06.20
15:59
Тьфу только 1
4 Радим1987
 
16.06.20
16:00
В итоговой таблице я должен получить 2 записи

1(самый самый) и 4(текущий)
5 polosov
 
16.06.20
16:07
(4) Так ты определись какой элемент тебе нужен.
Если верхний в иерархии, то получай элементы с пустым родителем. Если последний, то нужно в запросе отобрать только элементы не являющиеся никому родителями.
6 Радим1987
 
16.06.20
16:09
(5) Вот это интересно, и как это провернуть?
7 Флориан
 
16.06.20
16:14
(6)
ВЫБРАТЬ
    Подразделения.Ссылка
ИЗ
    Справочник.Подразделения КАК Подразделения

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

ВЫБРАТЬ
    ВЫБОР
        КОГДА Подразделения.Ссылка.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
            ТОГДА Подразделения.Ссылка
        ИНАЧЕ ВЫБОР
                КОГДА Подразделения.Ссылка.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)
                    ТОГДА Подразделения.Ссылка.Родитель
                ИНАЧЕ Подразделения.Ссылка.Родитель.Родитель
            КОНЕЦ
    КОНЕЦ
ИЗ
    Справочник.Подразделения КАК Подразделения
8 fisher
 
16.06.20
16:17
(5) ТС нужно получить элементы в иерархии, опустив всех промежуточных родителей (оставив только корневых).
9 Радим1987
 
16.06.20
16:28
Скорее всего никак, соединив второй набор между вторым набором мы получим таблицу вот такого рода
1 и 2
2 и 3
3 и 4
...

Тут не хватает еще одной колонки 1 то есть таблица должна быть примерно вот так

1 и 1 и 2
1 и 2 и 3
1 и 3 и 4
...
10 polosov
 
16.06.20
16:37
Выборка только конечных групп в иерархии
    "ВЫБРАТЬ
        |    Справочник1.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Справочник1 КАК Справочник1
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справочник1 КАК Справочник11
        |        ПО Справочник1.Ссылка = Справочник11.Родитель
        |            И (Справочник11.ЭтоГруппа)
        |ГДЕ
        |    Справочник1.ЭтоГруппа
        |    И Справочник11.Ссылка ЕСТЬ NULL";
11 Franchiser
 
гуру
16.06.20
17:09
Выбрать
   Ссылка,
   Ссылка.Родитель
Из Справочника.Подразделения
Где ссылка.родитель.родитель есть null
12 Franchiser
 
гуру
16.06.20
17:10
И ссылка.родитель не есть null
13 DJ Anthon
 
16.06.20
17:19
я не морочусь, просто добавляю еще один реквизит. быстро и просто. скорости позволяют.
14 toypaul
 
гуру
16.06.20
17:32
была подобная задача. решается через собственную иерархию специального типа