|
Как получить родителя первого уровня? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
11.11.12
✎
11:13
|
Иерархия групп и элементов
есть элемент справочника, при печати надо напечатать наименование группы первого уровня в которую входит этот элемент как получить группу первого уровня? |
|||
1
golden-pack
11.11.12
✎
11:16
|
рекурсия вестимо
|
|||
2
Drac0
11.11.12
✎
11:20
|
можно через ПолноеНаименование() вытащить. это если только имя нужно.
|
|||
3
dclxvi
11.11.12
✎
11:21
|
естьнул(Элемент.Родитель.Родитель.Родитель.Родитель.Родитель,
естьнул(Элемент.Родитель.Родитель.Родитель.Родитель, естьнул(Элемент.Родитель.Родитель.Родитель, естьнул(Элемент.Родитель.Родитель, естьнул(Элемент.Родитель, &ПустаяСсылкаРодителя))))) |
|||
4
RomaH
naïve
11.11.12
✎
11:24
|
Функция ПриложениеПриказа302н(Знач Родитель)
Пока Истина Цикл РодительВерхнегоУровня = Родитель.Родитель; Если ЗначениеЗаполнено(РодительВерхнегоУровня) Тогда Родитель = РодительВерхнегоУровня; Иначе Прервать; КонецЕсли; КонецЦикла; Возврат Родитель; КонецФункции типа так? а в запросе? |
|||
5
Лефмихалыч
11.11.12
✎
11:26
|
(2) ну, вытащи http://gyazo.com/3c02afa59d7e551d6a15c5eaec843107.png
|
|||
6
Лефмихалыч
11.11.12
✎
11:30
|
1С не умеет соединять по иерархии, по этому только рекурсией
|
|||
7
Smallrat
11.11.12
✎
12:11
|
(5) он имеет ввиду
СправочникОбъект.<Имя справочника>.ПолноеНаименование (CatalogObject.<Имя справочника>.FullDescr) СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>) ПолноеНаименование (FullDescr) Синтаксис: ПолноеНаименование() Возвращаемое значение: Тип: Строка. Строка, включающая наименование элемента и наименования всех вышестоящих элементов. Наименования выводятся слева направо, начиная с самого верхнего уровня, разделяются символом "/". Описание: Получает наименование элемента справочника с учетом наименований всех вышестоящих элементов. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
8
RomaH
naïve
11.11.12
✎
12:24
|
а может так?
ВЫБРАТЬ ВредныеПроизводственныеФакторыИРаботы.Ссылка, ВредныеПроизводственныеФакторыИРаботы.Родитель, ВредныеПроизводственныеФакторыИРаботы.КодПунктаВредности ПОМЕСТИТЬ втВерхнийУровень ИЗ Справочник.ВредныеПроизводственныеФакторыИРаботы КАК ВредныеПроизводственныеФакторыИРаботы ГДЕ ВредныеПроизводственныеФакторыИРаботы.Родитель = &Родитель И ВредныеПроизводственныеФакторыИРаботы.Владелец = &Владелец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВредныеПроизводственныеФакторыИРаботы.Ссылка, втВерхнийУровень.Ссылка КАК Ссылка1, втВерхнийУровень.КодПунктаВредности ИЗ Справочник.ВредныеПроизводственныеФакторыИРаботы КАК ВредныеПроизводственныеФакторыИРаботы ЛЕВОЕ СОЕДИНЕНИЕ втВерхнийУровень КАК втВерхнийУровень ПО ВредныеПроизводственныеФакторыИРаботы.Ссылка В ИЕРАРХИИ(ВЫБРАТЬ втВерхнийУровень.Ссылка ИЗ втВерхнийУровень КАК втВерхнийУровень) |
|||
9
ammpryanik
11.11.12
✎
12:25
|
офигеть это знает даже такой рак как я...
|
|||
10
vde69
11.11.12
✎
12:31
|
ВЫБРАТЬ
Блоки.Ссылка КАК Ссылка ИЗ Справочник.Блоки КАК Блоки ГДЕ Блоки.Ссылка В ИЕРАРХИИ(&Ссылка) И Блоки.Родитель.Ссылка ЕСТЬ NULL |
|||
11
vde69
11.11.12
✎
12:32
|
(10) вру :)
|
|||
12
Мизантроп
11.11.12
✎
12:34
|
Функция глРодитель(Элем) Экспорт
Возврат ?(Элем.Уровень() = 0,Элем,глРодитель(Элем.Родитель)); КонецФункции |
|||
13
Smallrat
11.11.12
✎
12:50
|
+(7) а понял. сорри
|
|||
14
m-serg74
11.11.12
✎
12:52
|
(8) и че? получилось соединение В ИЕРАРХИИ?
|
|||
15
i-rek
11.11.12
✎
13:20
|
а помните недавно обсуждали самый необыкновенный код ? пару недель назад тема была. Там был код в одну строку для получения родителя любого уровня
|
|||
16
i-rek
11.11.12
✎
13:21
|
через шаблон, стрзаменить и функцию которая выдаёт N пробелов
|
|||
17
Smallrat
11.11.12
✎
14:04
|
(16) он для 7-ки. Для 8-ки вроде не получится его в одну строку сделать - строку из заданного количества пробелов форматом не получить.
|
|||
18
Лефмихалыч
11.11.12
✎
14:18
|
+(5) Через полное наименование можно что-то получить, только, если гарантировать, что на верхнем уровне не будет групп:
1. С пустыми наименованиями 2. С одинаковыми наименованиями 3. С наименованием, содержащим "/" |
|||
19
Fragster
гуру
11.11.12
✎
14:21
|
||||
20
Лефмихалыч
11.11.12
✎
14:25
|
(17) смари
|
|||
21
Bolik1979
11.11.12
✎
15:24
|
Вычислить("Номенклатура" + СтрЗаменить(Формат(0,"ЧЦ=" + Строка(Номенклатура.Уровень()) + "; ЧН=; ЧВН=; ЧГ="), "0", ".Родитель"))
(с) Рупор абсурда |
|||
22
Бешеная Нога
11.11.12
✎
18:10
|
(21) красава :)
|
|||
23
RomaH
naïve
12.11.12
✎
07:54
|
(14) да, в (8) рабочий код, в (10) - не рабочий
|
|||
24
RomaH
naïve
12.11.12
✎
07:54
|
+(23) ну немного допилить (8) остается
|
|||
25
Defender aka LINN
12.11.12
✎
08:23
|
|
|||
26
Lenka_Boo
12.11.12
✎
08:35
|
(0)
1. запрос по условию ЭтоГруппа 2. выборка из результата во временную таблицу по Результат.Ссылка.Уровень() в цикле. 3. Временную таблицу используем дальше. Не? |
|||
27
dmpl
12.11.12
✎
08:39
|
(4) Эту функцию писали индусы.
|
|||
28
Мизантроп
12.11.12
✎
08:41
|
Функция ПолучитьВерхнегоРодителя(Ссылка)
Если не ЗначениеЗаполнено(Ссылка.Родитель) Тогда Возврат Ссылка Иначе Возврат ПолучитьВерхнегоРодителя(Ссылка.Родитель) КонецЕсли; КонецФункции |
|||
29
Smallrat
12.11.12
✎
11:26
|
(20) Это же две строки ?
|
|||
30
Smallrat
12.11.12
✎
12:44
|
Попробовал переписать (21) на 8-ку
Не получается найти замену функции Шаблон(), в 8-ке есть только аналогичная процедура. Получилось так: Перем ВерхнийРодитель; Выполнить("ВерхнийРодитель = Номенклатура"+СтрЗаменить(Формат(0,"ЧЦ=" + Строка(Номенклатура.Уровень()) + "; ЧН=; ЧВН=; ЧГ="),"0", ".Родитель")); |
|||
31
Smallrat
12.11.12
✎
12:46
|
мля - я надо научится читать сообщения.
перписывал ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Спр"+СтрЗаменить(Формат("","С"+(Спр.Уровень()-1))," ",".Родитель")+")]")); |
|||
32
Smallrat
12.11.12
✎
12:46
|
а получил то что и написано в (21)
мля(( |
|||
33
mikecool
12.11.12
✎
12:47
|
добавить реквизит - родитель верхнего уровня
заполнять в передзаписью в модуле заполнить и радоваться щастью |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |