как найти 1-го родителя в справочнике номенклатуры? #722648


#0 by ddd2005
как найти 1-го родителя в справочнике номенклатуры?
#1 by Banned
цмклом
#2 by ddd2005
пытаюсь сделать так в УТ 10.3 Функция ДатьРодителя1(Элем)
#3 by ddd2005
#4 by ddd2005
ругается {Справочник.Номенклатура.Форма.ФормаВыбора.Форма}: Метод объекта не обнаружен (ЭтоГруппа)         Если Элем.ЭтоГруппа=1 Тогда
#5 by snegovik
Кажись, это семерочный синтаксис...
#6 by ddd2005
да с 7 назеркалил
#7 by hhhh
УТ 10.3 написана на восьмерке
#8 by ОчкарикСлава
Элемент.родитель не катит?
#9 by hhhh
Родитель никогда не будет равен  "TDM", потому что "TDM" это же текст, а родитель - это же справочник.
#10 by XLife
Расширение табличного поля списка справочника (Catalog list table box extension) РодительВерхнегоУровня (TopLevelParent) Использование: Чтение и запись. Описание: Тип: СправочникСсылка. Содержит родителя верхнего уровня. Доступность: Толстый клиент.
#11 by ddd2005
пошел таким путем
#12 by ddd2005
#13 by zulu_mix
ну и жесть...
#14 by zulu_mix
если заранее известно количество уровней вложенности то через несколько вт последовательно собирай родителя и детей
#15 by AlexITGround
Чем вариант в 10 не устраивает?
#16 by AlexITGround
Если хочешь достать запросом, то можно воспользоваться конструкцией "Выбор ... когда", сравнивая родителя с пустой ссылкой справочника.
#17 by zulu_mix
может ему в запросе надо?
#18 by ddd2005
торможу как проверить тут родителя
#19 by zulu_mix
Если ДанныеСтроки.Ссылка.РодительВерхнегоУровня.Наименование = "TDM"
#20 by ddd2005
{Справочник.Номенклатура.Форма.ФормаВыбора.Форма}: Метод объекта не обнаружен (РодительВерхнегоУровня)
#21 by AlexITGround
Ты пойми, Родитель - это тоже ссылка на этот же справочник, таблицу, он не может быть строкой "".
#22 by zulu_mix
а что в отладчике для ДанныеСтроки.Ссылка
#23 by hhhh
это не то, всё таки запросом делай
#24 by hhhh
по-любому у ссылки нет такого метода.
#25 by ddd2005
как правильно подскажи
#26 by ddd2005
мне нужно разукрасить всю номенклатуру у которой родитель 1 уровня TDM так разукрасил только группу TDM
#27 by hhhh
ну как в типа Запрос = Новый Запрос("ВЫБРАТЬ
#28 by zulu_mix
пипец...
#29 by AlexITGround
#30 by AlexITGround
#31 by AlexITGround
СправочникМенеджер.ВыбратьИерархически(<Родитель>,<Владелец>,<Отбор>,<Порядок>)
#32 by RomanYS
а сегодня пятница была?
#33 by AlexITGround
... ГДЕ
#34 by AlexITGround
Не, сегодня пятницы не было :(
#35 by zulu_mix
поместить первый_уровень из справочник.номенклатура как спр где спр.родитель = значение(справочник.номенклатура.пустаяссылка) ; выбрать уровень1.ссылка, дети.ссылка как дитя из первый_уровень как уровень1 левое соединение справочник.номенклатура как дети по дети.родитель = уровень1.ссылка и в таком же духе для всех известных уровней пока не соберем всех детей на уровне 1
#36 by hhhh
а ваше не пипец?
#37 by zulu_mix
ай, нашел что вспомнить. у меня и одинца дома нет проверить
#38 by AlexITGround
Я думаю, что ошибку все исправят в : "Запрос.Параметры.Вставить("Ссылка", Ссылка);"
#39 by hhhh
это тормоз у вас будет, можно сразу для списка номенклатуры сделать. Не забывайте, автору нужно всю таблицу покрасить, а вы тупо для одной номенклатуры сделали.
#40 by zulu_mix
при таком раскладе автору проще сделать наследование цвета от родителя
#41 by ddd2005
да, увы не работает. мне нужно прокрасить все элементы у которых родитель 1 уровня TDM. в этой группе есть еще подгруппы их тоже закрасить. как подскажи?
#42 by hhhh
наверно самое простое во все подгруппы в наименование вставить "ТДМ".
#43 by zulu_mix
сделай у справочника номенклатура реквизит "цвет". заполняй его только у нужных элементов. перед записью элемента "если не элемент.родитель.пустаяссылка тогда элемент.цвет = элемент.родитель.цвет;"
#44 by ddd2005
сделал так только в подборе это не пашет
#45 by ddd2005
#46 by zulu_mix
я пожалуй умою отсюда руки
#47 by SeregaMW
Как бы обозвать эту ... уятина вообщем это почти не где не работает, всегда это делалось обратной рекурсией!
#48 by SeregaMW
Спать хочу, работы до х.. коньяк греется так что на Функция НайтиВерхнегоРодителя(Элем)
#49 by Smallrat
что-то никто мегакод так и не запостил:
#50 by SeregaMW
Месье а Вы сильны в извращениях! )))
#51 by Smallrat
Это не я, я б до такого не додумался. В оригинале он был для 7-ки и еще круче:
#52 by К_Дач
рекурсия пакетный запрос, вот здесь умный дядя реализовал, рекомендую: вот поделка Fragstera
#53 by SeregaMW
Как буду на работе обязательно прочитаю и попытаюсь понять!
#54 by AlexITGround
чем не устроил вариант в ?
#55 by AlexITGround
"вот поделка Fragstera" Рассказывается в бесплатном курсе Гилева по СКД.
#56 by К_Дач
Для понимания еще неплохо прочитать Транзитивное_замыкание а вариант в хорош только для одного элемента справочника
#57 by romix
Для запросов удобнее создавать реквизит... А заполнять его в модуле объекта при записи.
#58 by К_Дач
интересно, и что же тогда хранить в этом реквизите? Родителя верхнего уровня? А если у этого элемента (который у нас родитель верхнего уровня) - если у него у самого появится родитель? Что тогда? Всю цепочку что-ли перезаписывать? Булщит, одним словом
#59 by AlexITGround
#60 by romix
Смену родителя можно выявить перед записью - после чего либо выдавать запрет, либо учинять перезапись всех элементов, где родитель не соответствует.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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