![]() |
![]() |
![]() |
|
Как в запросе получить родителя верхнего уровня? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
23.01.08
✎
16:35
|
Вот написал отчет, думал все окей, а тут юзверь грит - а мне нужен отчет только по родителям верхнего уровня. Фильтрация не подходит, т.к. у меня потом еще эта статья детализируется.
Можно как то получить сабж? |
|||
1
mikecool
23.01.08
✎
16:39
|
а через n точек нельзя обратиться к полю родителя?
|
|||
2
selenat
23.01.08
✎
16:41
|
Мне тоже интересно. Причем интересует получение всей иерархии по детальным записям, которые получаем более менее произвольным образом.
|
|||
3
Гений 1С
гуру
23.01.08
✎
16:41
|
(1) Офигенно сложная будет конструкция выбора, учитывая, что статьи идут на разных уровнях иерархии...
|
|||
4
selenat
23.01.08
✎
16:41
|
(1) в запросе? не зная уровень элемента?
|
|||
5
КонецЦикла
23.01.08
✎
16:42
|
Хранимкой моно или орагнизовать триггеры и запись свой таблички
|
|||
6
КонецЦикла
23.01.08
✎
16:42
|
Пелять пальцы путаются...
|
|||
7
mikecool
23.01.08
✎
16:47
|
(3) Х-1 объединение из запросов к Х таблицам, где Х - количество уровней иерархии...
|
|||
8
mikecool
23.01.08
✎
16:48
|
+7 как-то собрался написать процедурку, которая собирала бы такой запрос - так руки и не дошли...
|
|||
9
selenat
23.01.08
✎
16:48
|
(7) количество уровней иерархии в 8 может быть неограниченным...
|
|||
10
mikecool
23.01.08
✎
16:51
|
(9) в реалии все равно больше допустим 5-7 редко кто пользуется...
|
|||
11
КонецЦикла
23.01.08
✎
16:51
|
(9) Экстенсивный путь... снеговик и так пипец какой задумчивый...
|
|||
12
Широкий
23.01.08
✎
16:51
|
Выбор
Когда Элемент.Родитель.Ссылка Есть NULL Тогда Элемент Когда Элемент.Родитель.Родитель.Ссылка Есть NULL Тогда Элемент.Родитель Когда Элемент.Родитель.Родитель.Родитель.Ссылка Есть NULL Тогда Элемент.Родитель.Родитель Когда Элемент.Родитель.Родитель.Родитель.Родитель.Ссылка Есть NULL Тогда Элемент.Родитель.Родитель.Родитель Конец Тока фиг знает насколько производительность упадет :)) |
|||
13
selenat
23.01.08
✎
16:54
|
(12) и как при помощи этого результат в виде иерархии в одном поле?
|
|||
14
Широкий
23.01.08
✎
16:55
|
(13) Какая еще иерархия? ЕвГению вроде надо только самый верхний уровень выдать
|
|||
15
selenat
23.01.08
✎
16:55
|
к слову сказать, я не придумав нормального решения этой проблемы, получаю нужную иерархию на стадии обхода элементов. Но вариант с получением этого в запросе очень интересует...
|
|||
16
selenat
23.01.08
✎
16:56
|
(14) а мне нет.
|
|||
17
Широкий
23.01.08
✎
16:58
|
(16) если ты про (2) итоги по иерархии не прокатывают разве?
|
|||
18
Гений 1С
гуру
23.01.08
✎
16:58
|
(15) в 8.1 можно юзать виртуальные таблицы, в 8.0 к сожалению, еще нельзя. А я работаю в 8.0, к сожалению
|
|||
19
selenat
23.01.08
✎
17:03
|
(17) пример дашь?
(18) в смысле получать запросом данные, выгружать в ТЗ, обрабатывать и использовать эту тЗ как источник для нового запроса? |
|||
20
Гений 1С
гуру
23.01.08
✎
17:04
|
(19) Нет, в смысле заменять статьи на группы. а чтобы знать что на что заменять, предварительно сформировать запрос по всему справочнику и поместить его в ВТ
|
|||
21
selenat
23.01.08
✎
17:06
|
(20) а я что сказал? про ТЗ конечно погорячился...
|
|||
22
Широкий
23.01.08
✎
17:06
|
(19)
ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ВидПродукции = &ВидПродукции ИТОГИ ПО Ссылка ИЕРАРХИЯ |
|||
23
selenat
23.01.08
✎
17:15
|
(22) мда, век живи, век учись. Спасибо.
|
|||
24
Гений 1С
гуру
23.01.08
✎
17:24
|
(22) и что же? (23) рано радуешься, ни фига это не дает...
|
|||
25
Гений 1С
гуру
23.01.08
✎
17:30
|
Короче, решил пойти по пути наименьшего сопротивления:
Если флСворачиватьПоСтатьям Тогда НовыйТекст=СтрЗаменить(НовыйТекст, "Т.Статья", "(ВЫБОР |КОГДА Т.Статья.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья |КОГДА Т.Статья.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |ИНАЧЕ Т.Статья |КОНЕЦ)"); Иначе НовыйТекст=СтрЗаменить(НовыйТекст, "Т.Статья", "(ВЫБОР |КОГДА Т.Статья.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |КОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель=&ПустаяСтатья ТОГДА Т.Статья.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель |ИНАЧЕ Т.Статья |КОНЕЦ)"); КонецЕсли; |
|||
26
i-rek
23.01.08
✎
17:34
|
я наверно условия не понял, почему нельзя
Выбрать Ссылка Из Справочник.Мой ГДЕ Родитель=&ПустойСправочник И ЭтоГруппа=Истина |
|||
27
selenat
23.01.08
✎
17:37
|
(26) потому что нужны не все родители верхнего уровня. Идем от получения элементов. Для определенных элементов надо получить верхних родетелей..
|
|||
28
Гений 1С
гуру
23.01.08
✎
17:38
|
окей... еще раз
Есть иерархия АЛКОГОЛЬ пиво водка ХЛЕБ булки пончики МОЛОЧКА йогурт творог Нужно получить отчет по продажам со складов: АЛКОГОЛЬ Склад1 10 руб Склад2 20 руб ХЛЕБ Склад1 50 руб Склад2 10 руб МОЛОЧКА Склад1 60 руб |
|||
29
Гений 1С
гуру
23.01.08
✎
17:40
|
(27) я лучше разжевал, с ВТ в 8.1 полетит, а то что написал Широкий в (22) совершенно не поможет.
|
|||
30
Гений 1С
гуру
23.01.08
✎
17:41
|
В общем у меня получилось то что в (28), но через хитрую конструкцию выбора в (25)
|
|||
31
WED
23.01.08
✎
17:58
|
А нельзя вложенным запросом получить списко корневых групп, а потом суммировать данные исходя из вхождения в этот список?
ЗЫ: глупость сказал,да? :)) |
|||
32
selenat
23.01.08
✎
17:59
|
(31) а как ты вхождение в список в запросе определять будешь?
|
|||
33
v_rtex
23.01.08
✎
18:01
|
ТОЛЬКО ИЕРАРХИЯ
и пусть пользователь использует плюсы/минусы слева для показа/скрытия уровней иерархии, ограничиваясь первым |
|||
34
v_rtex
23.01.08
✎
18:02
|
(32) например
ГДЕ Контрагент В (&СписокКонтрагентов) Запрос.УстановитьПараметр("СписокКонтрагентов",СЗ); |
|||
35
WED
23.01.08
✎
18:02
|
(32) гм.. по идее надо получить таблицу: Элемент + ВерхнийРодитель и эту таблицу соединять с остатками и "сварачивать"....щас подумаемс...
|
|||
36
WED
23.01.08
✎
18:03
|
(33)(34) Список должен строиться в запросе...
|
|||
37
i-rek
23.01.08
✎
18:08
|
ааа.... я б ещё предложил новый реквизит "родительВерхнегоУровня" и заполнять его в ПриЗаписи
|
|||
38
Гений 1С
гуру
23.01.08
✎
18:13
|
(33) Не получится... Отчет как в (28) не получится, подумай почему сам.
(37) Блин, хочу на 81, задолбала эта 80 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |