Вход | Регистрация
 

Отрезать верхнего родителя при выборке элементов справочника группой

Отрезать верхнего родителя при выборке элементов справочника группой
Я
   НоваяВолна
 
27.06.19 - 07:51
Сегодня реально туплю... Надо вывести все элементы справочника из группы, (в том числе и подчиненных Родителю групп), при этом не выводя Родителей. Делаю так. При этом выводятся все элементы справочника, обрезаются Родители нижних уровней (не выводятся), но при этом самый верхний Родитель выводится в конце списка. Как избавится от него?

Процедура НоменклатураСписокОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
        СтандартнаяОбработка = Ложь;
        Товары = Справочники.Номенклатура;
    Если ВыбранноеЗначение.ЭтоГруппа Тогда
        СписокВыборки = Товары.ВыбратьИерархически(ВыбранноеЗначение);
        Пока СписокВыборки.Следующий() Цикл
            Если СписокВыборки.ЭтоГруппа  Тогда
                Продолжить;
            КонецЕсли;
            НоваяСтрока = НоменклатураСписок.Добавить();
            НоваяСтрока.Номенклатура = СписокВыборки.Ссылка;
            НоваяСтрока.Артикул = СписокВыборки.Артикул;
        КонецЦикла;    
    КонецЕсли;    
......
......
......
КонецПроцедуры
 
 
   Beduin
 
1 - 27.06.19 - 07:54
(0) Через с запрос, с отбором на этогруппа
   НоваяВолна
 
2 - 27.06.19 - 07:57
(1) Буду делать запросом.... Интересно почему ВыбратьИерархически() не дает нужного результата... Вроде как верхний Родитель это тоже группа. Иначе бы этот цикл вообще не выполнялся.
   ИУБиПовиц
 
3 - 27.06.19 - 08:11
Может у Вас иерархия групп и элементов, и самы верхний родитель - не группа?
добавте сообщить(СписокВыборки.Ссылка) и гляньте че там у вас, может вообще в другом месте где добавляется?
на крайняк найдите потом самый верхний родитель в списке номенклатуры и удалите его:)
П.С. но лучше запросом:)
   НоваяВолна
 
4 - 27.06.19 - 08:15
(3) Да Иерархия групп и элементов
   НоваяВолна
 
5 - 27.06.19 - 08:17
(3) Запросом сделал так, результат тот же. Все Родители нижнего уровня не выводятся, но родитель самого верхнего уровня есть
Если ВыбранноеЗначение.ЭтоГруппа Тогда
            Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ
                           |    Номенклатура.Ссылка,
                           |    Номенклатура.Артикул
                           |ИЗ
                           |    Справочник.Номенклатура КАК Номенклатура
                           |ГДЕ
                           |    Номенклатура.Ссылка В ИЕРАРХИИ(&Папка)
                           |    И НЕ Номенклатура.ЭтоГруппа";        
            Запрос.УстановитьПараметр("Папка",ВыбранноеЗначение);
            
            РезультатЗапроса = Запрос.Выполнить();
            
            Выборка = РезультатЗапроса.Выбрать();
            Пока Выборка.Следующий() Цикл
                НоваяСтрока = НоменклатураСписок.Добавить();
                НоваяСтрока.Номенклатура = Выборка.Ссылка;
                НоваяСтрока.Артикул = Выборка.Артикул;
            КонецЦикла;
        КонецЕсли;
   ИУБиПовиц
 
6 - 27.06.19 - 08:20
(5) Значит родитель верхнево уровня не группа:)
   НоваяВолна
 
7 - 27.06.19 - 08:22
(6) Если он не группа то как он в условие вообще попадает? Сверху сразу условие 
Если ВыбранноеЗначение.ЭтоГруппа Тогда
   ИУБиПовиц
 
8 - 27.06.19 - 08:23
(7) Я наверное не понял.
ВЫбраноеЗначение = А;
родительВерхнегоУровня - Б-
ЕщеНиже - в
-элементы - Г.
попадает Б, или А?
   НоваяВолна
 
9 - 27.06.19 - 08:25
Все!!!!!!!!!!!!!!!
Разобрался Сам ступил!  У меня ниже код, который добавляет значения по одному, если это не папка. Вот оттуда он и лезет. А так оба кода рабочие )))
   ИУБиПовиц
 
10 - 27.06.19 - 08:26
:)
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует