"верхний" родитель в иерархии элементов справочника #542842


#0 by vechiy
Как узнать, в запросе или в коде, сабж?
#1 by IronDemon
Родитель у него пустой
#2 by Scooter
1й уровень?
#3 by Wobland
Родитель.Пустая=Истина
#4 by dimoff
Имеется ввиду видимо для конкретного элемента или группы элементов узнать верхнего родителя. Если в этом смысле то сабж долгий но обмусоливвался много раз.
#5 by Fragster
запихиваешь в ВТ группы верхнего уровня, делаешь левое соединение по условию В ИЕРАРХИИ
#6 by Shur1cIT
если в коде то бежиш циклом, если родитель пустой то это и есть верхний родитель
#7 by butterbean
#8 by vechiy
вот такая иерархия: нужно получать цо (не зависимо от того, сколько вложено подразделений) 1й уровень в таком случае будет "подразделения организации" или цо?
#9 by Матвеев Максим
Возврат ?(Элем.Уровень = 0,Элем,глРодитель(Элем.Родитель));
#10 by dimoff
Если в одной процедуре необходимо данный код выполнить для нескольких десятков элементов то будет очень тормознуто
#11 by vechiy
Спасибо! Так и поступлю! Опасался, что вернётся значение "подразделения организаций". Но всё норм. Возвращает ЦО. Всем спасибо
#12 by Shur1cIT
#13 by Fragster
Выбрать Из  Справочник.Подразделения Как Подразделения Где Выбрать  ВерхнийУровень.СсылкаВерхнегоУровня Из  Справочник.Подразделения Как Подразделения    Левое Соединение ВерхнийУровень    По Подразделения.Ссылка В Иерархии (ВерхнийУровень.СсылкаВерхнегоУровня)
#14 by Fragster
хотя ХЗ, можно ли В ИЕРАРХИИ использовать в условии соединения
#15 by tocaelectro
нельзя
#16 by Fragster
ИЛИ Подразделения.Родитель.Родитель.Родитель.Родитель.Родитель = ВерхнийУровень.СсылкаВерхнегоУровня ...
#17 by y88
когда Подразделение.Родитель = &ПустаяСсылка Тогда Подразделение когда Подразделение.Родитель.Родитель = &ПустаяСсылка Тогда Подразделение.Родитель когда Подразделение.Родитель.Родитель.Родитель  = &ПустаяСсылка Тогда Подразделение.Родитель.Родитель и т.д.
#18 by dimoff
Так лучше, но идеальный вариант в подписке ПриЗаписи вычислять родителя верхнего уровня. учитывая всякого рода переносы из папок в папку и т.п. и писать в дополнительный реквизит.
#19 by Scooter
+500 в свойства например
#20 by КонецЕсли
Если будет изменен один из промежуточных родителей (сменим у него верхнего родителя) то у дочерних будет храниться лажа.
#21 by Fragster
это смотря как подписку написать
#22 by Ненавижу 1С
лажануто все таки иерархия в справочниках 1С реализована
#23 by dimoff
Это и имел ввиду "учитывая всякого рода переносы из папок в папку и т.п."
#24 by dimoff
Да что ты говоришь? А как надо было реализовать?
#25 by StarIK2005
Родитель.код IS NULL
#26 by Nallama
Недавно стояла задача последовательного получения всех родителей элемента справочника с неограниченным числом уровней иерархии. В переложении на текущие условия получится примерно так: P.S. Переписывала без отладчика, за возможные мелкие косяки в синтаксисе просьба не бить )
#27 by Nallama
ну вот, забыла КонецЦикла; перед возвратом..
#28 by vechiy
Спасибо! в оптимальная, имхо:)
#29 by Nallama
Не исключено ) Меня просто, фигурально выражаясь, наставники по рукам били за необоснованное использование объектной модели доступа к данным )
#30 by vechiy
Медленней?
#31 by dimoff
Заставь дурака богу молиться он и лоб расшибет
#32 by Nallama
представь, что у тебя не примитивный справочник код-наименование-родитель и не 2-3 вложенных уровня и объясни, в чем я не права.
#33 by dimoff
Первое в чем ты не права - запрос в цикле. Если ты делаешшь не типовую(да даже если и типовую) то ты примерно представляешь сколько уровней вложенности в справочнике, сразу пиши в запросе Родитель КАК Поле1, Родитель.Родитель КАК Поле2, Родитель.Родитель.Родитель КАК Поле3, родитель.Родитель.Родитель.Родитель КАК Поле4 Если не найдешь верхнего повтори запрос от последнего родителя Второе в чем ты не права ты видимо не понимаешь почему не нужно "необоснованное использование объектной модели".
#34 by Nallama
спасибо, буду иметь в виду
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С