Имя: Пароль:
1C
1С v8
Как получить список самых верхних уровней списка справочника
0 serg-lom89
 
17.02.16
14:13
Есть список элементов справочника по определенному отбору.
Как получить список самых верхних уровней этого списка из запроса?
1 mikecool
 
17.02.16
14:30
Где Родитель = ПУстаяСсылка
2 Fragster
 
гуру
17.02.16
14:34
в СКД? или в коде?
3 Александр Б
 
17.02.16
14:37
ВЫБОР КОГДА Родитель = Значение(Справочник.ИмяСправочника.ПустаяСсылка) ТОГДА Ссылка
КОГДА Родитель.Родитель = Значение(Справочник.ИмяСправочника.ПустаяСсылка) ТОГДА Родитель
КОГДА Родитель.Родитель.Родитель = Значение(Справочник.ИмяСправочника.ПустаяСсылка) ТОГДА Родитель.Родитель

И так далее сколько нужно до максимального количества уровней в иерархии. Работать будет быстро и надёжно.
4 serg-lom89
 
17.02.16
14:38
(3) долго писать..решил обойтись как нить обходом результата запроса
5 serg-lom89
 
17.02.16
14:39
(2) в коде
6 Александр Б
 
17.02.16
14:40
(4) плохое решение
7 Кир Пластелинин
 
17.02.16
14:44
(6) а в (3) хорошее?
8 Александр Б
 
17.02.16
14:45
(6) лучшее. Предложи лучше
9 Александр Б
 
17.02.16
14:45
(8) к (7)
10 Маратыч
 
17.02.16
14:45
(8) В (1) же предложили, зачем велосипед изобретать?
11 Маратыч
 
17.02.16
14:46
+(10) А, понял, условие не сразу вкурил, сорри.
12 serg-lom89
 
17.02.16
14:55
(10) так если я установлю отбор по пустому родителю и еще какой нить отбор то будет пустой запрос.разве не так?
13 Маратыч
 
17.02.16
14:57
(12) Там фигня получится, ага.

Во, не так давно на эту страницу натыкался: v8: Из справочника вернуть Родителя Самого Верхнего уровня.
14 Александр Б
 
17.02.16
15:06
(12) и такое нет проблем сделать.

Решение в (3) проверено на практике.
При огромном количестве номенклатуры (>100тыс.) и большом количестве вложенности (до 10) запросы с функцией "В ИЕРАРХИИ" просто вешали сервер на длительное неизвестное время. Решение же в (3) выдаёт результат за несколько секунд.
15 Александр Б
 
17.02.16
15:07
+(14) а некоторые решения, предложенные в теме из (13) так вообще предполагают рекурсивные запросы. Боюсь представить, сколько времени будут отрабатывать код у них.
16 lera01
 
17.02.16
15:11
А если номенклатуру по отобранному списку (Таблица1) соединить с ранее отобранным списком групп верхнего уровня (Таблица2), написав в условии связи что Элемент из 1 таблицы в иерархии элемента из 2 таблицы?