|
Не могу получить родителя самого верхнего уровня | ☑ | ||
---|---|---|---|---|
0
Shur1cIT
18.09.15
✎
16:39
|
Условие не отрабатывает если родитель следующий Элемент.Родитель
ВЫБОР КОГДА СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) ТОГДА ВЫБОР КОГДА СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) ТОГДА ВЫБОР КОГДА СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) ТОГДА ВЫБОР КОГДА СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) ТОГДА СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение ИНАЧЕ СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель КОНЕЦ ИНАЧЕ СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель КОНЕЦ ИНАЧЕ СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель.Родитель КОНЕЦ ИНАЧЕ СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение.Родитель.Родитель.Родитель.Родитель КОНЕЦ |
|||
1
Shur1cIT
18.09.15
✎
16:40
|
Вобщем такой вот изврат
|
|||
3
Shur1cIT
18.09.15
✎
16:41
|
(2) пытаюсь получить самого верхнего родителя:-)
|
|||
4
Fragster
гуру
18.09.15
✎
16:42
|
||||
5
Живой Ископаемый
18.09.15
✎
16:42
|
"чтож вы так убиватесь? вы ж так никогда не убьетесь!"
|
|||
6
Chikko
18.09.15
✎
16:43
|
а обязательно в запросе?
те надо элемент у которого родитель пустой, а сам он содержит нужного в иерархии (как это есть по-русски?). |
|||
7
Nuobu
18.09.15
✎
16:43
|
(0) А что выдает?
|
|||
8
ВедущийП
18.09.15
✎
16:43
|
ВЫБРАТЬ
Номенклатура.Ссылка ПОМЕСТИТЬ ГруппыВерхнегоУровня ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) И Номенклатура.ЭтоГруппа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ГруппыВерхнегоУровня.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ГруппыВерхнегоУровня КАК ГруппыВерхнегоУровня ПО (Номенклатура.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ГруппыВерхнегоУровня.Ссылка ИЗ ГруппыВерхнегоУровня КАК ГруппыВерхнегоУровня)) ГДЕ Номенклатура.Ссылка = &Ссылка |
|||
9
ВедущийП
18.09.15
✎
16:43
|
из (4)
|
|||
10
Fragster
гуру
18.09.15
✎
16:44
|
еще можно сделать сохранить данные аля nested sets в РС и использовать его
|
|||
11
Fragster
гуру
18.09.15
✎
16:44
|
(9) ага, только оно там в комментах. и не работает.
|
|||
12
aleks_default
18.09.15
✎
16:44
|
(9) ему для таблицы
|
|||
13
Ildarovich
18.09.15
✎
16:47
|
Условие не отрабатывает потому, что:
http://catalog.mista.ru/public/392519/ . А сама задача решается так, как в этом обсуждении: Как получить родителя верхней группы спр.подразделенияорганизаций зуп 2.5 |
|||
14
ВедущийП
18.09.15
✎
16:48
|
(11) Логика красивая, в чем может не работать?
(12) судя по куску кода, для запроса. (0) Смысл в том, что ты сохраняешь группы самого верхнего уровня, и потом запросом делаешь соединение исходной таблицы и таблицы групп верхнего уровня по условию Исходный элемент в ИЕРАРХИИ группы верхнего уровня. |
|||
15
aleks_default
18.09.15
✎
16:49
|
(14) я про то что там не один исходный элемент, а список или даже таблица. Иначе для одного элемента запрос не нужен - достаточно простейшей рекурсивной функции в три строки.
|
|||
16
Fragster
гуру
18.09.15
✎
16:49
|
(14).1 там дальше в комментах написано
|
|||
17
Shur1cIT
18.09.15
✎
16:50
|
(13) Спасибо, то есть в моём случае не пустая ссылка а NULL
если я хочу оставить как есть должен ещё проверку на NULL провести.. |
|||
18
Fragster
гуру
18.09.15
✎
16:51
|
в общем случае это решается через создание дополнительной струкутры nested sets + уровень в иерархии. тогда запросом можно получить всех потомков, цепочку родителей, верхних родителей, родителей на определенное количество уровней вверх и т.п.
|
|||
19
Fragster
гуру
18.09.15
✎
16:51
|
почему 1с не добавило это в платформу - непонятно.
|
|||
20
Ildarovich
18.09.15
✎
17:02
|
(18) ...в общем случае это решается через создание дополнительной структуры... но не в реляционных СУБД. В них это типичная трудность. Иерархия плохо ложится на табличные представления. В большинстве СУБД изобретаются "костыли". Несколько ссылок на решения в других СУБД в обсуждении к статье http://catalog.mista.ru/public/158512/
|
|||
21
Shur1cIT
18.09.15
✎
17:06
|
(20) например в сетевой БД ещё одни связи создавать?
эх почему сетевая модель БД не прижилась... |
|||
22
Fragster
гуру
18.09.15
✎
17:08
|
(20) почитай, что такое nested sets. там мы жертвуем скоростью обновления. Это при ORM подходе нужно множество запросов выполнять для обновления элементов при изменении родителя, при встройке в платформу можно сделать один апдейт на кучу элементов)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |