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