как в запросе получить уровни приоритетов по группам? #739171


#0 by Stim
Есть справочник Номенклатура с товарами в группах. есть РС ЦеныНоменклуры, где можно указывать либо номенклатуру или группу(родителя) Допустим, мы продаем книги. На всю группу книги установили цену в 100руб. в этой группе есть подгруппа СуперОбложка, цену на которые установили 150. и наконец в это подгруппе есть элемент Букварь за 200руб. в регистре 3 записи: каким образом построить запрос, чтобы получить актуальную цену, скажем, Букваря? Если цена на него не задана, то берем цену ближайшего родителя. Количество родителей не ограничено.
#1 by RomanYS
"Количество родителей не ограничено" - данное условие делает задачу сугубо теоретической.
#2 by Stim
ну.. количество ограничено здравым смыслом, но заранее не известно.
#3 by D_E_S_131
Очень похоже на наследование прав доступа к файлам через папки. Вот только у каждого файла правило сразу однозначное (либо унаследованное, либо установленное конкретно). Почему-то разработчики Windows не пошли путем вычисления значений значений в момент осуществления доступа и решили всегда хранить заранее определенное значение. Наверное потому что дураки...
#4 by RomanYS
на мой вгляд 5-6 уровней для справочника Номенклатура уже на грани здравого смысла. Если ты знаешь как написать запрос для 2-х уровней, то сможешь и для 8-10. Иначе...
#5 by Stim
хотелось бы более универсальное решение. независящее от уровней групп
#6 by Otkr
Нужен запрос для определения цены конкретной позиции?
#7 by RomanYS
тогда смотри в сторону : храни в отдельном регистре всех родителей с уровнями. Обновлять можно по подписке.
#8 by Stim
ну да. один запрос
#9 by Otkr
Одним хз, может рекурсией? Типа нет цены для элемента, ищем для группы элемента, нет для группы элемента, то ищем для группы группы и т.д?
#10 by DrShad
а как уже пробовал? Соединения какие делал?
#11 by ИС-2
это называется неправильная архитектура. Но жутко нравится пользователям. Я делал, но сразу было обговорено кол-во уровней иерархии. В каждой временной таблице делал разворот по ценам и номенклатуре для своего уровня иерархии. Потом объединял развернутые таблицы. Определял минимальный уровень номенклатуры. И в конце объединял все в 1 запрос. Объем вычислений был большим. Самое разумное решение, в данной ситуации, хранить уже готовые данные в регистре. Но все равно надо написать запрос для расчета...
#12 by Skom
Если цена на него не задана, то берем цену ближайшего родителя. ??? Вы реально устанавливаете цену для группы справочника?
#13 by Skom
отпал вопрос.
#14 by Skom
а у тебя где это используется? при проведении? в отчетах? или где?
#15 by Лодырь
в верное решение.
#16 by Skom
Можно, а можно просто реквизит УРОВЕНЬ добавить в справочник. А можно и без него.
#17 by Лодырь
реквизит уровень? и чем тебе поможет? задачу вычисления всех родителей элемента в запросе ты все равно не решишь.
#18 by Skom
ВЫБРАТЬ     Ном.Ссылка ИЗ ГДЕ                     Ном.Ссылка=&Эл ИТОГИ ПО Ном.Ссылка ТОЛЬКО ИЕРАРХИЯ
#19 by Skom
все родители данного элемента
#20 by Stim
реально используется, да. сделал конешн рекурсией, но интересно как можно получить одним запросом. впринципе можно и текст запроса составить в рекурсии, или просто в цикле по родителям
#21 by Simod
Никак. Пример из нельзя поместить во врем.таблицу для хранения и использовании иерархии.
#22 by Skom
почему ж?
#23 by Simod
Пример.
#24 by D_E_S_131
В нужно обратить внимание на фразу "Наверное потому что дураки..."
#25 by Лодырь
Ну они таки решали другую задачу в другом окружении. А сама логика решения описанная в - ОЧЕНЬ распространенная в 1С.
#26 by Ненавижу 1С
я в таких случая прописываю значения элементам при записи на папку
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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