Имя: Пароль:
1C
1С v8
Получение самого верхнего родителя справочника в запросе
, , ,
0 Djonny
 
08.02.13
09:30
Собственно вопрос, можно ли получить верхнего родителя элемента справочника в запросе?
1 Галахад
 
гуру
08.02.13
09:31
В иерархии, но без родителя.
2 DrShad
 
08.02.13
09:34
смотря для чего
3 Djonny
 
08.02.13
09:36
в отчет нужно выводить самого верхнего родителя и непосредственно того, где находится эта позиция справоника
4 К_Дач
 
08.02.13
09:37
Можно, если количество уровней иерархии известно заранее))
5 Djonny
 
08.02.13
09:37
(4) не известно, + оно еще и разное)))
6 mikecool
 
08.02.13
09:37
(4) это же почти фантастика
7 Wobland
 
08.02.13
09:38
(5) максимальное, если есть. этого хватит
8 mikecool
 
08.02.13
09:38
(5) тогда в поиск - мильон раз обсуждалось
9 Широкий
 
08.02.13
09:40
ВЫБРАТЬ
   Номенклатура.Ссылка,
   ВЫБОР
       КОГДА Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель
       КОГДА Номенклатура.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель
       КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель
   КОНЕЦ КАК РодительВерхнегоУровня
ИЗ
   Справочник.Номенклатура КАК Номенклатура
10 Djonny
 
08.02.13
09:42
(9) все понял), лучше рекурсию)
11 Megas
 
08.02.13
09:48
Не делал, но можно сделать рекурсией свою тз с колонками "номенклатура" "верхнийродитель" запихать её во временные таблицы и запросом уже соединять.
Хотя как быстрее сделать ХЗ
12 НЕА123
 
08.02.13
09:49
(10)
вот это по-мужски.
циклы только для теток.
13 Идентификатор
 
08.02.13
09:50
(0)

ВЫБРАТЬ ПЕРВЫЕ 1
   Контрагенты.Ссылка КАК Ссылка
ИЗ
   Справочник.Контрагенты КАК Контрагенты
ГДЕ
   Контрагенты.ПометкаУдаления = ЛОЖЬ
   И Контрагенты.Ссылка = &Ссылка
ИТОГИ ПО
Ссылка ТОЛЬКО ИЕРАРХИЯ
14 Идентификатор
 
08.02.13
09:51
запрос.выполнить().выгрузить()[0]
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн