Как в запросе получить группу верхнего уровня?

1. andrey_name_912 16 25.12.14 16:37 Сейчас в теме
Здравствуйте! бьюсь с запрос не как ни могу победить
Запрос.Текст = 
		"ВЫБРАТЬ
		|	спрНоменклатура.Ссылка КАК спрНоменклатураСсылка,
		|	спрНоменклатура.Код КАК спрНоменклатура,
		|	спрНоменклатура.Родитель.Код КАК спрНоменклатураРодительКод,
		|	спрНоменклатура.Родитель КАК спрНоменклатураРодитель,
		|	спрНоменклатура.Родитель.ЗначениеСкидки1 КАК спрНоменклатураРодительЗначениеСкидки1,
		|	спрНоменклатура.БазоваяЕдиницаИзмерения КАК спрНоменклатураБазоваяЕдиницаИзмерения,
		|	спрНоменклатура.СтавкаНДС КАК спрНоменклатураСтавкаНДС,
		|	спрНоменклатура.СтранаПроисхождения КАК спрНоменклатураСтранаПроисхождения,
		|	КодыВесовогоТовара.Код КАК спрНоменклатураКодВесовогоТовара,
		|	ТоварыНаККМ.Код КАК спрНоменклатураКод2ТоварыНаККМ,
		|	ЦеныАТТСрезПоследних.Цена КАК спрНоменклатураЦена,
		|	Штрихкоды.Штрихкод КАК спрНоменклатураШтрихкод
		|ИЗ
		|	Справочник.Номенклатура КАК спрНоменклатура
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
		|		ПО (Штрихкоды.Владелец = спрНоменклатура.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ.СрезПоследних КАК ЦеныАТТСрезПоследних
		|		ПО (ЦеныАТТСрезПоследних.Номенклатура = спрНоменклатура.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыВесовогоТовара КАК КодыВесовогоТовара
		|		ПО (КодыВесовогоТовара.Номенклатура = спрНоменклатура.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТоварыНаККМ КАК ТоварыНаККМ
		|		ПО (ТоварыНаККМ.Номенклатура = спрНоменклатура.Ссылка)
		|
		|УПОРЯДОЧИТЬ ПО
		|	спрНоменклатураРодитель";
	
	РезультатЗапроса = Запрос.Выполнить();
Показать

Как запросом выбрать самого верхнего родителя в справочнике номенклатура ?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
11. Agapov_Stas 1 25.12.14 17:24 Сейчас в теме
(10) andrey_name_912,
Если я правильно понял вопрос, то как то так
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.Ссылка = &Ссылка
ИТОГИ ПО
	Ссылка ТОЛЬКО ИЕРАРХИЯ


Результат = Запрос.Выполнить().ВЫбрать(); 
Если Результат.Следующий() Тогда 
    Сообщить(Результат.Ссылка); //Это и есть верхний уровень! 
КонецЕсли; 
user1066249; Огонек; andrey_name_912; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
29. SunShinne 633 13.06.19 09:47 Сейчас в теме
(1) Работающий код:

ВЫБОР
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель
	КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
		ТОГДА ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель
	ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель
КОНЕЦ
Показать
simgo83; lenwood; vvh74; viyt; +4 Ответить
2. andrey_name_912 16 25.12.14 16:39 Сейчас в теме
просто уже как не про бывал не могу победит
3. and_sk 14 25.12.14 16:43 Сейчас в теме
где номенклатура.родитель = &пустаяссылка
7. andrey_name_912 16 25.12.14 16:45 Сейчас в теме
(3) and_sk, через параметр запроса что ли
4. Chameleon1980 25.12.14 16:43 Сейчас в теме
5. andrey_name_912 16 25.12.14 16:44 Сейчас в теме
то есть есть группа розница в ней находится группа товар в товаре лежит номенклатура Диск, как у диска вывести запросом группу розница...
матрешка какая то)))
14. Chameleon1980 25.12.14 17:32 Сейчас в теме
можно было и
ОбходРезультатаЗапроса.ПоГруппировкам

тока думаю автору чуть не то нужно.
судя по (5) - как-то странно там звучит
6. mr.lynx 34 25.12.14 16:45 Сейчас в теме
Номенклатура.ЭтоГруппа = ИСТИНА
И Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
8. andrey_name_912 16 25.12.14 16:46 Сейчас в теме
(6) mr.lynx, не совсем понял вас
10. andrey_name_912 16 25.12.14 16:55 Сейчас в теме
(6) mr.lynx, ну че то не получается сделать у меня это
11. Agapov_Stas 1 25.12.14 17:24 Сейчас в теме
(10) andrey_name_912,
Если я правильно понял вопрос, то как то так
ВЫБРАТЬ
	Номенклатура.Ссылка КАК Ссылка
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.Ссылка = &Ссылка
ИТОГИ ПО
	Ссылка ТОЛЬКО ИЕРАРХИЯ


Результат = Запрос.Выполнить().ВЫбрать(); 
Если Результат.Следующий() Тогда 
    Сообщить(Результат.Ссылка); //Это и есть верхний уровень! 
КонецЕсли; 
user1066249; Огонек; andrey_name_912; +3 Ответить
20. andrey_name_912 16 25.12.14 17:38 Сейчас в теме
(11) Agapov_Stas, а может быть использовать два запроса, и использовать ваше решение так еще не пробывал, как раз в параметр второго запроса с могу передать результат с первого
21. andrey_name_912 16 25.12.14 17:47 Сейчас в теме
(11) Agapov_Stas, блин все сработало спасибо вам от души как раз в точку
30. reneyr 01.12.22 01:34 Сейчас в теме
(11)
ВЫБРАТЬ
	Номенклатура.Ссылка,
	Номенклатура.Родитель
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.ЭтоГруппа = ИСТИНА
	И Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка)
9. Chameleon1980 25.12.14 16:49 Сейчас в теме
у одного с параметром у другого пример непосредственно в запросе пустой родитель
т.е. элементы=группа но у него уже нет рожителя
12. Chameleon1980 25.12.14 17:25 Сейчас в теме
тут не пойдут эти решения.
13. Agapov_Stas 1 25.12.14 17:27 Сейчас в теме
15. andrey_name_912 16 25.12.14 17:32 Сейчас в теме
вот скрин на нем думаю все понятно станет
Прикрепленные файлы:
16. Chameleon1980 25.12.14 17:33 Сейчас в теме
думаю автору нужно, допустим,

колонка1=номенклатура
колонка2=верхний уровень
18. andrey_name_912 16 25.12.14 17:34 Сейчас в теме
(16) Chameleon1980, да я все это вывожу в табличное поле только вот с группой засада именно так
17. Chameleon1980 25.12.14 17:34 Сейчас в теме
скд не поможет автору?
19. andrey_name_912 16 25.12.14 17:36 Сейчас в теме
(17) Chameleon1980, да нет у меня обработка
22. Chameleon1980 25.12.14 18:01 Сейчас в теме
чет я не понял желания тс и решение.
Да ладно.
23. Chameleon1980 25.12.14 18:05 Сейчас в теме
если просто группы верхнего уровня то выше решение без переборов ребята предлагали:

ВЫБРАТЬ
	Номенклатура.Ссылка КАК Группа
ИЗ
	Справочник.Номенклатура КАК Номенклатура
ГДЕ
	Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
	И Номенклатура.ЭтоГруппа
24. Agapov_Stas 1 25.12.14 18:12 Сейчас в теме
(23) Chameleon1980, Это не верно ) тебе запрос вернет все группы верхнего уровня! а надо именно верхний уровень той группы, в которой лежит товар
27. Chameleon1980 25.12.14 18:45 Сейчас в теме
(24) ну. только у вас по одной позиции.
мне интересно.
Сделайте

группа верх1 товар в недрах группы верх 1
группа верх1 товар в недрах группы верх 1 и еще глубже
группа верх2 товар в недрах группы верх 2

и т.д.
по всей номенклатуре сразу
одним запросом. т.е. мы такую картину прямо в консоли увидим.

примерно вот так я понял задачу.
Делаем?
28. Chameleon1980 25.12.14 18:46 Сейчас в теме
автор - попробуй еще раз объяснить, что хотелось.

и. да. вопрос из (27) интересует тем не менее.
25. andrey_name_912 16 25.12.14 18:13 Сейчас в теме
(23) Chameleon1980, но если я переделываю свой первый запрос в такой вид то тогда в мою таблицу выводятся группы верхнего уровня
26. andrey_name_912 16 25.12.14 18:14 Сейчас в теме
(23) Chameleon1980, вот что в итоге получается
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот