Левое соединение по иерархии #556618


#0 by Classic
Предположим есть регистр накопления, где в измерение записывается группа справочника номенклатура. Как мне сделать левое соединение справочника номенклатура с данным регистром?     РегистрПланирование.СуммаОборот ИЗ     Справочник.Номенклатура КАК СправочникНоменклатура     ПО СправочникНоменклатура.Номенклатура в Иерархии(РегистрПланирования.ГруппаНоменклатуры) Вот на последнее ПО у меня ругается
#1 by Господин ПЖ
я бы тоже ругался...
#2 by Classic
Учтем:) А по теме? Как можно склеить такие таблицы?
#3 by Господин ПЖ
>СправочникНоменклатура.Номенклатура в справочнике номенклатура есть реквизит "номенклатура"??
#4 by Classic
Ошибся выкладывая. Весь запрос просто лень тянуть - его никто читать не будет. Вот и упростил с ошибкой :) Замени СправочникНоменклатура.Номенклатура на СправочникНоменклатура.Ссылка Вопрос все равно не в этом
#5 by Classic
+ Для читабельности заменю сам :) ВЫБРАТЬ     СправочникНоменклатура.Ссылка КАК Номенклатура,     РегистрПланирование.СуммаОборот ИЗ     Справочник.Номенклатура КАК СправочникНоменклатура
#6 by Господин ПЖ
сделать то чего надо в итоге? ПО СправочникНоменклатура.Номенклатура = РегистрПланирования.ГруппаНоменклатуры не канает?
#7 by Classic
Не канает конечно. В регистре условные "запчасти", в справочнике - "запчасть 1"
#8 by also
ИЗ     Справочник.Номенклатура КАК СправочникНоменклатура
#9 by also
Это тебе надо?
#10 by Classic
Группа может оказаться не непосредственным родителем
#11 by Господин ПЖ
т.е. весь справочник не нужен? Только группы что ли? В чем суть то? Даешь кусок некого кривого запроса и теперь сидеть телепатировать?
#12 by Господин ПЖ
может ему итоги по иерархии нужны...
#13 by Classic
Конечно нужен. Я к справочнику присоединяю обороты по группе. К каждому элементу присоединяю обороты по его группе.
#14 by Classic
В написано приблизительно что мне надо. Единственная проблема - в регистре может быть не непосредственный родитель, а родитель 2го уровня и выше.
#15 by also
ПО СправочникНоменклатура.Ссылка.Родитель = РегистрПланирования.ГруппаНоменклатуры ИЛИ СправочникНоменклатура.Ссылка.Родитель.Родитель = РегистрПланирования.ГруппаНоменклатуры ИЛИ СправочникНоменклатура.Ссылка.Родитель.Родитель = РегистрПланирования.ГруппаНоменклатуры
#16 by also
Кто придумал в регистре группы хранить?
#17 by Classic
:) Не я :( Но тем не менее
#18 by Господин ПЖ
>Единственная проблема - в регистре может быть не непосредственный родитель, а родитель 2го уровня и выше ппц...
#19 by also
ну в решение.. Раз 15 для верности напиши ИЛИ.. а вообще можешь текст запроса динамически собрать, взависимости от вложенности справочника
#20 by БибиГон
врегистре накопления только группы чтоли
#21 by Господин ПЖ
перенесли номенклатуру из группы в группу - все хлопают в ладоши...
#22 by also
Не, ну реально.. Как можно до такого додуматься?
#23 by _Demos_
в итоге сделал программно рекурсией. Выбираешь таблицу вида: и с ним работаешь.
#24 by Эстет хренов
Проще создать новый справочник "ГруппыНоменклатуры" и все сделать по-человечески.
#25 by NcSteel
В не смотри . +1 И если так нужно тогда
#26 by байт
оба на
#27 by байт
Вытащи из регистра данные с условием ЭтоГруппа и соедини.
#28 by _Demos_
не смотри - это что так делать не следует (имеется в виду рекурсией) или в другой случай?
#29 by _Demos_
забыл ->
#30 by МихаилМ
на тестовой сборке 8.2 14 кострукция  родитель.родитель работает неоптимально. или вобще не работает
#31 by NcSteel
Конечно не следует.
#32 by NcSteel
Каким боком косяки баг релизов имеют отношение к теме?
#33 by hhhh
В ИЕРАРХИИ уже 8 лет неоптимально работает и вроде ничего.
#34 by AlexNew
Зачем?
#35 by Classic
Офигенный вопрос :) Всем вышеотписавшимся спасибо. Но все таки хотелось бы услышать не как организовать хранение данных - и так ясно, что группа справочника в качестве аналитики не айс, а как решить подобную проблему. Решить чисто текущую задачу я накрайняк могу и без одного запроса. Извернуться и сделать через ж... можно всегда. Интересует сами мысли по поводу такого соединения. К примеру часто бывает, что в группах справочника проставляют определенные реквизиты (например размер скидки для контрагентов или еще какая-то мутотень), а процедура проставления данных реквизитов внутрь иерархии неоптимальна( тот же перенос из группы в группу позволяет поменять процент скидки). И как запросом получить данные для конечных элементов - непонятно.
#36 by Classic
Пусть хлопают. С чего ты взял, что данные регистра для группы станут не актуальными?
#37 by Classic
Как не удавительно но с регистра все данные будут удовлетворять условию ЭтоГруппа
#38 by Ёпрст
от оно.. отсутствеие простого коррелированного подзапроса.
#39 by Classic
Ёпрст3. Я в тебя верю :) Что такое простой коррелированный запрос? И как его здесь применить?
#40 by Ёпрст
здесь - никак.. в снеговике его к сожалению нет. :(
#41 by Ёпрст
тебе же вся иерархия нужна на выходе ? И группы и элементы ? Всё, что принадлежит РегистрПланирования.ГруппаНоменклатуры ?
#42 by Ёпрст
попробуй обороты сложить во временную тЗ, далее запрос к справочнику + левое соединение с табличкой при условии ссылка справочника не нулл + в где воткнешь справочникноменклатура.ссылка в (селект твои группы из пременной таблички).. как-то так.
#43 by Classic
Хм... Т.е. если в списке (вложенном запросе)скажем присутсвует две группы справочника, то условию "Номенклатура в Списке" будут удовлетворять все элементы этих двух групп?
#44 by Ёпрст
можешь и так спробовать: ИЗ           РегистрНакопления.Планирование.Обороты(&НачДата, &КонДата, Авто,) КАК РегистрПланирования По СправочникНоменклатура.Ссылка не null Где  СправочникНоменклатура.Ссылка в Иерархии(РегистрПланирования.ГруппаНоменклатуры) далее, этот запрос можешь объеденить еще раз со справочником номенклатуры для получения всех элементов ну и всё собственно... Не знаю, должно прокатить.
#45 by Ёпрст
+44 это по идее твой запрос, только неявный иннер джоин, хз, мот в ветке where нормально иерархия отработает, чем в on для соединения.. Я в снеговике не алё..так, мысли вслух. :)
#46 by Ёпрст
про временную тз прогнал - там оборот не получить..блин. :(
#47 by Classic
Спасибо, но уже наверное завтра. Спокойной ночи
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С