|
|
|
Вывести Всех Родителей ТекущегоЭлемента | ☑ | ||
|---|---|---|---|---|
|
0
Lenusik
01.04.08
✎
11:16
|
Помогите, пожалуйста, решить задачку
Имеем форму списка многоуровневого справочника (не важно какого). На форме расположить реквизит диалога «Текст». Этот реквизит должен отображать полный путь текущего элемента справочника (ТекущийЭлемент) в виде подчиненной структуры: Родитель_1уровня - Родитель_2уровня - Родитель_3уровня ……….. - ТекущийЭлемент При изменении текущего элемента соответственно изменяется отображение. |
|||
|
1
Stepa86
01.04.08
✎
11:22
|
Рекурсивно собирай текст
|
|||
|
2
MaxS
01.04.08
✎
11:22
|
вставить в соответствующее событие формы код
СтрРодитель = " "; ТекРодитель = Элемент.Родитель; Пока ЗначениеЗаполнено(ТекРодитель) Цикл СтрРодитель = СтрРодитель + " " + СокрЛП(ТекРодитель.Наименование); ТекРодитель = Элемент.Родитель; КонецЦикла; |
|||
|
3
Черный всадник
01.04.08
✎
11:25
|
Процедура Путь(Элемент, Путь = "")
Если Элемент.Родитель <> Неопределенно Тогда Путь = Элемент.Родитель.Наименование + "\" + Путь; // тут лучше дернуть данные запросом Путь(Элемент.Родитель, Путь); КонецЕсли; КонецПроцедуры |
|||
|
4
Lenusik
01.04.08
✎
11:32
|
Спасибо,Попробую
|
|||
|
5
Defender aka LINN
01.04.08
✎
11:34
|
(3) Что ж вы так запросы-то не любите...
В "Родители" получаем готовое дерево. |
|||
|
6
MaxS
01.04.08
✎
11:40
|
(5) ну да, это создаёт меньшую нагрузку на сервер, т.к. выполняется один запрос вместо N, где N-количество родителей.
просто в (5) кода(букав) больше и всё равно нужно обходить дерево... ;) |
|||
|
7
Валерыч
01.04.08
✎
11:42
|
а ПолноеНаименование() не поможет?
|
|||
|
8
Sadovnikov
01.04.08
✎
11:42
|
(6) "выполняется один запрос вместо N, где N-количество родителей" - уверен? Можешь показать, что реально сервак делает?
Ибо имхается мне, что в даннос млучае получим кучу связываний таблицы справочника с самой собой. |
|||
|
9
Lenusik
01.04.08
✎
11:44
|
В смысле ПолноеНаименование()?
Я новичок, можно попонятнее |
|||
|
10
MaxS
01.04.08
✎
11:49
|
(8) ну по крайней мере обращение через точку (ТекРодитель = Элемент.Родитель) приводит к выполнению запроса на сервере.
А что делает (5)? да, согласен - спорный вопрос ;) |
|||
|
11
Defender aka LINN
01.04.08
✎
11:52
|
(8), (10) А при обращении к Родителю считываются ВСЕ реквизиты объекта.
|
|||
|
12
Sadovnikov
01.04.08
✎
11:54
|
(11) А фиг его знает, что лучше при запросе 1 родителя.
|
|||
|
13
Defender aka LINN
01.04.08
✎
11:55
|
(12) Ща проверю :)
|
|||
|
14
Defender aka LINN
01.04.08
✎
11:57
|
+(13) Кстати, в (0) явно нужно как раз-таки дерево, нафига извращаться и придумывать текст - непонятно. Так что будем формировать для проверки дерево.
|
|||
|
15
Lenusik
01.04.08
✎
12:00
|
Не получается
|
|||
|
16
Sadovnikov
01.04.08
✎
12:10
|
(14) Типа UP, чтобы не потерялась веточка...
|
|||
|
17
Черный всадник
01.04.08
✎
12:14
|
(11) На самом деле не все. В кэш сначала читаються ссылка и текстовое представление, так что если убрать наименование лишних телодвижений совершаться не будет :P
|
|||
|
18
Валерыч
01.04.08
✎
12:17
|
(9) в смысле метод такой есть для ссылки или объекта справочника. В СП все написано. Получает строку из преставлений всех родителей + сам элемент разделенные "\". А уж поменять через СтрЗаменить "\" на то, что надо при выводе плевое дело.
|
|||
|
19
Регистратор
01.04.08
✎
12:23
|
а нафига выводить в текст спрашивается? добавь в форму дерево того же списка справочника и показывай там просто в дереве.
|
|||
|
20
Lenusik
01.04.08
✎
12:34
|
Спасибо за совет
|
|||
|
21
Черный всадник
01.04.08
✎
12:35
|
(0) Ваше фото скажет о вашей благодарности много больше слов....
|
|||
|
22
Lenusik
01.04.08
✎
16:11
|
Спасибо, очень помогло
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |