Имя: Пароль:
1C
 
как в запросе получить уровни приоритетов по группам?
0 Stim
 
06.04.15
23:29
Есть справочник Номенклатура с товарами в группах.
есть РС ЦеныНоменклуры, где можно указывать либо номенклатуру или группу(родителя)

Допустим, мы продаем книги. На всю группу книги установили цену в 100руб.
в этой группе есть подгруппа СуперОбложка, цену на которые установили 150.
и наконец в это подгруппе есть элемент Букварь за 200руб.

в регистре 3 записи:
Книги  100р
СуперОбложка 150р
Букварь  200р

каким образом построить запрос, чтобы получить актуальную цену, скажем, Букваря?

Если цена на него не задана, то берем цену ближайшего родителя.

Количество родителей не ограничено.
1 RomanYS
 
06.04.15
23:41
"Количество родителей не ограничено" - данное условие делает задачу сугубо теоретической.
2 Stim
 
06.04.15
23:42
(1) ну.. количество ограничено здравым смыслом, но заранее не известно.
3 D_E_S_131
 
06.04.15
23:43
Очень похоже на наследование прав доступа к файлам через папки. Вот только у каждого файла правило сразу однозначное (либо унаследованное, либо установленное конкретно). Почему-то разработчики Windows не пошли путем вычисления значений значений в момент осуществления доступа и решили всегда хранить заранее определенное значение. Наверное потому что дураки...
4 RomanYS
 
06.04.15
23:46
(2) на мой вгляд 5-6 уровней для справочника Номенклатура уже на грани здравого смысла. Если ты знаешь как написать запрос для 2-х уровней, то сможешь и для 8-10. Иначе...(1)
5 Stim
 
06.04.15
23:48
(4) хотелось бы более универсальное решение. независящее от уровней групп
6 Otkr
 
06.04.15
23:50
(5) Нужен запрос для определения цены конкретной позиции?
7 RomanYS
 
06.04.15
23:50
(5) тогда смотри в сторону (3): храни в отдельном регистре всех родителей с уровнями. Обновлять можно по подписке.
8 Stim
 
06.04.15
23:51
(6) ну да. один запрос
9 Otkr
 
06.04.15
23:54
(8) Одним хз, может рекурсией? Типа нет цены для элемента, ищем для группы элемента, нет для группы элемента, то ищем для группы группы и т.д?
10 DrShad
 
07.04.15
00:02
(8) а как уже пробовал? Соединения какие делал?
11 ИС-2
 
naïve
07.04.15
07:34
(0) это называется неправильная архитектура. Но жутко нравится пользователям. Я делал, но сразу было обговорено кол-во уровней иерархии.
В каждой временной таблице делал разворот по ценам и номенклатуре для своего уровня иерархии. Потом объединял развернутые таблицы. Определял минимальный уровень номенклатуры. И в конце объединял все в 1 запрос. Объем вычислений был большим.
Самое разумное решение, в данной ситуации, хранить уже готовые данные в регистре. Но все равно надо написать запрос для расчета...
12 Skom
 
07.04.15
07:46
Если цена на него не задана, то берем цену ближайшего родителя. ???
Вы реально устанавливаете цену для группы справочника?
13 Skom
 
07.04.15
07:51
(12) отпал вопрос.
14 Skom
 
07.04.15
08:05
а у тебя где это используется? при проведении? в отчетах? или где?
15 Лодырь
 
07.04.15
08:20
(0) в (7) верное решение.
16 Skom
 
07.04.15
08:21
(15) Можно, а можно просто реквизит УРОВЕНЬ добавить в справочник. А можно и без него.
17 Лодырь
 
07.04.15
08:24
(16) реквизит уровень? и чем тебе поможет? задачу вычисления всех родителей элемента в запросе ты все равно не решишь.
18 Skom
 
07.04.15
08:51
ВЫБРАТЬ
    Ном.Ссылка
ИЗ
    Справочник.Номенклатура КАК Ном
ГДЕ                
    Ном.Ссылка=&Эл
ИТОГИ ПО Ном.Ссылка ТОЛЬКО ИЕРАРХИЯ
19 Skom
 
07.04.15
08:51
все родители данного элемента
20 Stim
 
07.04.15
08:57
(14) реально используется, да.

сделал конешн рекурсией, но интересно как можно получить одним запросом.

впринципе можно и текст запроса составить в рекурсии, или просто в цикле по родителям
21 Simod
 
07.04.15
09:00
(20) Никак. Пример из (18) нельзя поместить во врем.таблицу для хранения и использовании иерархии.
22 Skom
 
07.04.15
09:35
(21) почему ж?
23 Simod
 
07.04.15
09:53
Пример.
24 D_E_S_131
 
07.04.15
10:16
(20) В (3) нужно обратить внимание на фразу "Наверное потому что дураки..."
25 Лодырь
 
07.04.15
10:21
(24) Ну они таки решали другую задачу в другом окружении.
А сама логика решения описанная в (0) - ОЧЕНЬ распространенная в 1С.
26 Ненавижу 1С
 
гуру
07.04.15
10:22
я в таких случая прописываю значения элементам при записи на папку