|
получение самого верхнего родителя в справочнике | ☑ | ||
---|---|---|---|---|
0
LivingStar
16.09.14
✎
11:36
|
в справочнике есть иерархия
как в независимости от вложенности получать всегда самого верхнего родителя элемента? |
|||
1
ДенисЧ
16.09.14
✎
11:37
|
циклом
|
|||
2
Dedal
16.09.14
✎
11:40
|
||||
3
Maxus43
16.09.14
✎
11:40
|
рекурсией
|
|||
4
Dmitriy_76
16.09.14
✎
11:41
|
полныйКод() не ?
|
|||
5
akaBrr
16.09.14
✎
11:41
|
я бы сначала получил группы 1 уровня, а потом проверял на вхождение
|
|||
6
ObjectRelation Model
16.09.14
✎
11:43
|
в 1С это сделано через Ж
|
|||
7
ИС-2
naïve
16.09.14
✎
11:45
|
запросом вывести иерархию, взять первый элемент
|
|||
8
DmitriyDI
16.09.14
✎
11:46
|
РодительВерхнегоУровня (TopLevelParent)
Использование: Чтение и запись. Описание: Тип: СправочникСсылка. Содержит родителя верхнего уровня. Доступность: Толстый клиент. |
|||
9
Maxus43
16.09.14
✎
11:48
|
(8) забыл добавить
Расширение табличного поля списка справочника (Catalog list table box extension) хрен оно где работает, кроме списка |
|||
10
LivingStar
16.09.14
✎
11:52
|
есть элемент, вывожу его, что бы на его место вывести родителя верхнего уровня, только применять запрос если?
|
|||
11
ObjectRelation Model
16.09.14
✎
11:53
|
какая задача в целом?
|
|||
12
Maxus43
16.09.14
✎
12:02
|
(10) запросом это как раз фиг получится нормально
|
|||
13
LivingStar
16.09.14
✎
12:07
|
(11) выбран контрагент, он может быть в разной вложенности находиться, но самый верхний каталог это город, название папки, нужно её получить.
|
|||
14
Maxus43
16.09.14
✎
12:08
|
(13) контактная инфа есть у контриков... странный учет у вас
|
|||
15
Maxus43
16.09.14
✎
12:09
|
см с (1) по (5), выбирай
|
|||
16
LivingStar
16.09.14
✎
12:09
|
там структура каталогов сделана
|
|||
17
Эльниньо
16.09.14
✎
12:11
|
В семёре сделал бы:
1. Рекурсия 2. ПолныйКод() |
|||
18
el7cartel
16.09.14
✎
12:12
|
(16) ну а в чем проблема рекурсию применить?
|
|||
19
el7cartel
16.09.14
✎
12:12
|
где-то тема даже с примером есть...
|
|||
20
ДенисЧ
16.09.14
✎
12:16
|
А рекурсия-то тут зачем...
|
|||
21
LivingStar
16.09.14
✎
12:28
|
(20) в справочнике контрагенты каталог, в нем каталоги города, а в них может быть элементы в разной вложенности
получается нужно получить название каталога второго с верху по иерархии |
|||
22
ДенисЧ
16.09.14
✎
12:36
|
(21) Я спрашиваю, не что получить, а зачем применять рекурсию ))
|
|||
23
LivingStar
16.09.14
✎
12:39
|
(22) знаете как это правильнее получить? Что нужно применить?
|
|||
24
ДенисЧ
16.09.14
✎
12:42
|
(23) To iterate is Human, to recurse Devine
Ты же не считаешь себя богом? |
|||
25
Пушкин
16.09.14
✎
12:47
|
Одним запросом, слабо?!
|
|||
26
Андрюха
16.09.14
✎
12:50
|
Да можно ж не запросом, а в цикле, пока ЗначениеЗаполнено(ТекущийРодитель.Родитель), не?
|
|||
27
Drac0
16.09.14
✎
12:52
|
(26) И зачем запросы в цикле делать? Лучше запросом: и быстрее и проще.
|
|||
28
anatoly
16.09.14
✎
12:53
|
(25) если можно условие:
ГДЕ &контр В ИЕРАРХИИ(спр.ссылка) И спр.ссылка.родитель = &пустая то получится. но не уверен. пробовать лень )) |
|||
29
Андрюха
16.09.14
✎
12:55
|
Да почему в цикле запрос? Я имел в виду:
ТекущийРодитель = Контрагент.Родитель;
|
|||
30
Drac0
16.09.14
✎
12:57
|
(29) Ты думаешь, там не запрос? :)
|
|||
31
Maxus43
16.09.14
✎
12:58
|
дарю :)))
Процедура КнопкаВыполнитьНажатие(Кнопка) РодительВерхнегоУровня = Неопределено; ПолучитьРодителя(Ссылка, РодительВерхнегоУровня); КонецПроцедуры Процедура ПолучитьРодителя(Элемент, РодительВерхнегоУровня) Если Не Элемент.Родитель.Пустая() Тогда ПолучитьРодителя(Элемент.Родитель, РодительВерхнегоУровня) Иначе РодительВерхнегоУровня = Элемент; КонецЕсли; КонецПроцедуры |
|||
32
Kamas
16.09.14
✎
12:59
|
(30) там все запрос этож бд
|
|||
33
Kamas
16.09.14
✎
13:00
|
(31) цикл лучше рекурсии. Ну по крайней мере мне так в школе говорили))
|
|||
34
Maxus43
16.09.14
✎
13:00
|
научились уже запросом родителя верхнего уровня выбирать?
|
|||
35
Maxus43
16.09.14
✎
13:00
|
(33) зависит от задачи
|
|||
36
Kamas
16.09.14
✎
13:13
|
Стильно модно молодежно :
Функция ВерхнийЭлемент(Контрагент) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ЭтоГруппа | И Контрагенты.Родитель = &ПустаяССылка"; Запрос.УстановитьПараметр("ПустаяССылка", Справочники.Контрагенты.ПустаяСсылка()); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если Контрагент.ПринадлежитЭлементу(ВыборкаДетальныеЗаписи.Ссылка) тогда Возврат ВыборкаДетальныеЗаписи.Ссылка КонецЕсли; КонецЦикла; Возврат Справочники.Контрагенты.ПустаяСсылка(); КонецФункции |
|||
37
Крошка Ру
16.09.14
✎
13:18
|
(36) Запрос.УстановитьПараметр("ПустаяССылка", Справочники.Контрагенты.ПустаяСсылка());
Это уже не олдфажно. Молодежно ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) |
|||
38
Крошка Ру
16.09.14
✎
13:18
|
+(37) *Это уже олдфажно
|
|||
39
Kamas
16.09.14
✎
13:19
|
(37) согласен
|
|||
40
Сияющий Асинхраль
16.09.14
✎
13:23
|
Без проблем. Уровень элемента ты всегда вытащишь, а зная уровень всегда можно программно сформировать запрос. Но, честно сказать, я предпочитаю (29)
|
|||
41
Сияющий Асинхраль
16.09.14
✎
13:28
|
(40)->(34)
|
|||
42
Килограмм
16.09.14
✎
14:07
|
Думаю, (36) лучше (29) если мало групп и\или количество уровней вложенности большое, а так самому (29) больше нравится - проще
|
|||
43
LivingStar
16.09.14
✎
15:49
|
интересно в (31) как то можно задать что бы получить родителя второго уровня
|
|||
44
Fragster
гуру
16.09.14
✎
15:51
|
||||
45
Fragster
гуру
16.09.14
✎
15:53
|
также специально для скорости - я сделал РС с измерением - ссылкой и ресурсами - Уровень, Левое значение, Правое значение
|
|||
46
Fragster
гуру
16.09.14
✎
15:53
|
заполнение/обновеление РС в подписке
|
|||
47
Fragster
гуру
16.09.14
✎
15:56
|
получение цепочки родителей:
ВЫБРАТЬ РАЗЛИЧНЫЕ | Иерархия.Ссылка |ИЗ | РегистрСведений.Иерархия КАК Список | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Иерархия КАК Иерархия | ПО (Список.Ссылка В (&Ссылки)) | И (Иерархия.ЛевоеЗначение <= Список.ЛевоеЗначение) | И (Иерархия.ПравоеЗначение >= Список.ПравоеЗначение) |
|||
48
Fragster
гуру
16.09.14
✎
15:56
|
верхние родители - соответственно добавляется условие по Уровень = 1
|
|||
49
Fragster
гуру
16.09.14
✎
15:57
|
получение всех детей также моментально, меняем меньше на больше и наоборот. Например в запросах можно использовать такое соединение.
|
|||
50
Fragster
гуру
16.09.14
✎
15:59
|
данные для такой иерархии:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |