![]() |
|
Отрезать верхнего родителя при выборке элементов справочника группой | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
27.06.19
✎
07:51
|
Сегодня реально туплю... Надо вывести все элементы справочника из группы, (в том числе и подчиненных Родителю групп), при этом не выводя Родителей. Делаю так. При этом выводятся все элементы справочника, обрезаются Родители нижних уровней (не выводятся), но при этом самый верхний Родитель выводится в конце списка. Как избавится от него?
Процедура НоменклатураСписокОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Товары = Справочники.Номенклатура; Если ВыбранноеЗначение.ЭтоГруппа Тогда СписокВыборки = Товары.ВыбратьИерархически(ВыбранноеЗначение); Пока СписокВыборки.Следующий() Цикл Если СписокВыборки.ЭтоГруппа Тогда Продолжить; КонецЕсли; НоваяСтрока = НоменклатураСписок.Добавить(); НоваяСтрока.Номенклатура = СписокВыборки.Ссылка; НоваяСтрока.Артикул = СписокВыборки.Артикул; КонецЦикла; КонецЕсли; ...... ...... ...... КонецПроцедуры |
|||
1
Beduin
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
|
:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |