|
обратиться к элементам верхнего уровня. | ☑ | ||
|---|---|---|---|---|
|
0
NoviceNovice
24.07.08
✎
15:26
|
Подскажите плз: есть иерархический справочник с деревом предопределенных папок. Нужно прописать в процедуре при открытии формы, что если этот элемент лежит в папке верхнего уровня, то выдавать сообщение пользователю(имя папки).
Как мне проверить где лежит элемент(в папке верхнего уровня или нет)? Спасиб заранее. |
|||
|
1
MSensey
24.07.08
✎
15:27
|
СправочникСсылка.<Имя справочника>.Уровень (CatalogRef.<Имя справочника>.Level)
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>) Уровень (Level) Синтаксис: Уровень() Возвращаемое значение: Тип: Число. Уровень элемента справочника. Описание: Получает уровень элемента справочника. Примечание: Имеет смысл только для многоуровневых справочников. Следует учитывать, что уровень элемента может меняться, например, при переносе в другую группу (смене родителя). Для элемента, не имеющего родителя, уровень будет равняться 0. Если ссылка пустая, вызов метода вызывает исключение. Пример: Сообщить("Данный элемент принадлежит уровню " + СсылкаНаЭлемент.Уровень()); |
|||
|
2
asady
24.07.08
✎
15:28
|
(0) Родитель ЕСТЬ NULL в запросе
|
|||
|
3
NoviceNovice
24.07.08
✎
15:41
|
Спасиб, но задача даже усложнилась. Мне надо написать примерно такое
Если Элемент.РодительВерхнегоУровня.значение = такоетозначение тогда Сообщить("родитель верхнего уровня такой то"); У меня получилось добраться до группы верхнего уровня с помощью элемент.родитель.родитель, но проблема в том что количество уровней иерархии не известна, поэтому надо использовать какой то другой подход |
|||
|
4
GenV
24.07.08
✎
15:46
|
Странно, а для кого В ИЕРАРХИИ сделали в запросе сделали?
|
|||
|
5
Пуд
24.07.08
✎
15:47
|
(3) Такая тема была - запросом получаешь посредством конструкции ВЫБОР Эл.Родитель ЕСТЬNull - делаешь 9-10 выборов и готово.
|
|||
|
6
NoviceNovice
24.07.08
✎
15:48
|
буду пробовать запросом.
|
|||
|
7
Пуд
24.07.08
✎
15:48
|
(5) Если конечно уровней не 50.Но в реальной жизни такое редко должно быть
|
|||
|
8
NoviceNovice
24.07.08
✎
15:59
|
(3) поясни плз как 10 выборов сделать.
|
|||
|
9
NoviceNovice
24.07.08
✎
15:59
|
Я пишу:
Запрос.УстановитьПараметр("РодительВерхнегоУровня" , Справочники.Номенклатура.ГруппаВерхнегоУровня); Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Родитель |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Родитель = &Null" |
|||
|
10
NoviceNovice
24.07.08
✎
16:02
|
там максимум 5 уровней будет.
|
|||
|
11
Serg_1960
24.07.08
✎
16:08
|
Запрос возвращает список родителей номенклатуры Ссылка
ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка = &Ссылка ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ |
|||
|
12
Garkin
24.07.08
✎
16:12
|
(3)
Если Элемент.ПринадлежитЭлементу(такоетозначение) тогда Сообщить("родитель верхнего уровня такой то"); Не покатит? |
|||
|
13
NoviceNovice
24.07.08
✎
16:20
|
(12) Дык а как я доберусь таким способом до первого уровня. А если у меня элемент на пятом уровне стоит? Как же тогда мне проверить значение группы верхне уровня?
|
|||
|
14
Garkin
24.07.08
✎
16:27
|
(13) если у тебя "Элемент" стоит на 5 уровне, и родитель верхнего уровня этого элемента = "такоетозначение" то Элемент.ПринадлежитЭлементу(такоетозначение) - вернет "истина"
|
|||
|
15
Serg_1960
24.07.08
✎
16:32
|
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка = &Ссылка ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ"; Запрос.Параметры.Вставить("Ссылка", МойЭлемент); Запрос.Выполнить().Выбрать().Следующий() Сообщить("Для элемента "+МойЭлемент+" родитель верхнего уровня:"+ Запрос.Ссылка.Наименование); |
|||
|
16
NoviceNovice
24.07.08
✎
17:58
|
(14) То что доктор прописал! Спасиб!
|
|||
|
17
NoviceNovice
24.07.08
✎
17:58
|
Всем остальным тож большой спасиб.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |