Помощь - Поиск - Пользователи - Календарь
Полная версия: Справочник номенклатуры
"1C-PRO" - форум по 1C > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Отчеты и обработки для платформы "1С:Предприятие 8.x"
Adminspb
Подскажите пожалуйста!
Есть справочник номенклатуры и много уроней иерархии в нем. По всем уровням есть позиции номенклатуры.
....торможу aua.gif
Надо имея ссылку на любой элемент в любом месте справочника находящийся вывести
(с самого верха и до этого элемента) наименования всех уровней иерархии (групп).
Т.е. тех через которые надо идти "сверху" чтоб дойти до этого элемента.


lazy
Номенклатура соответственно наша номенклатура.
Список будет выводится в обратной последовательности - снизу вверх, как его перевенуть думай сам.

Код
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если Номенклатура.Родитель.Пустая() Тогда
        Сообщить("Это номенклатура верхнего уровня!");
        Возврат; // если юзер выбрал номенклатуру, которая "плавает на поверхности справочника" :)
    КонецЕсли;
    
    ТекНом = Номенклатура.Родитель; // наша переменная для шагания по иерархии, сразу равна первому родителю
    Пока Истина Цикл
        ОбработкаПрерыванияПользователя();
        
        Если НЕ ТекНом.Родитель.Пустая() Тогда // у нас есть родительская группа
            Сообщить(" "+ТекНом);
            ТекНом=ТекНом.Родитель; // шагнули вперед.
        Иначе
            сообщить(" "+ТекНом.Наименование); // последняя группа - родитель верхнего уровня
            Прервать; // обрываем цикл
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Prospero
кхе-кхе....
Давно не возился с 8-кой...
Может, это поможет:
Метод из "СправочникСсылка":
Код
ПолноеНаименование ( FullDescr )
Синтаксис;
ПолноеНаименование()
Возвращаемое значение:
Тип: Строка. Строка, включающая наименование элемента и наименования всех вышестоящих элементов.
Наименования выводятся слева направо, начиная с самого верх­него уровня, разделяются символом "/".
Описание:
Позволяет получить наименование элемента справочника с уче­том наименований всех вышестоящих элементов.
Пример:
Сообщить("Полное наименование данного элемента: " + СсылкаНаЭлемент.ПолноеНаименоваиие());

Ну а дальше разделяй )

З.Ы. Надеюсь, в названиях элементов у тебя нет символа "/" :)
Adminspb
Огромное спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2008 Invision Power Services, Inc.