![]() |
|
Определения родителя | ☑ | ||
---|---|---|---|---|
0
Sasha_uu
15.01.12
✎
10:26
|
Есть регистр сведений в котором есть группы номенклатуры, как мне написать запрос что бы определить к какой группе относится элемент номенклатуры?
|
|||
1
Sasha_uu
15.01.12
✎
10:27
|
+ у элемента может быть несколько родителей, и в регистре могут быть несколько родителей элемента, мне надо определить самого нижнего родителя
|
|||
2
GROOVY
15.01.12
✎
10:33
|
Перечитал 3 раза. Не понял ничего.
|
|||
3
Renat11111
15.01.12
✎
11:04
|
Перечитал 4 раза тоже ничего не понял. группы номенклатуры это измерение регистра или что?
|
|||
4
azernot
15.01.12
✎
11:05
|
Номенклатура.Родитель - содержит именно самого нижнего родителя.
Номенлатура.Родитель.Родитель - содержит родителя группы номенклатуры, родителя номенклатуры. и т.п. |
|||
5
Renat11111
15.01.12
✎
11:07
|
(4) ну если так то конструкция ВЫБОР в запросе.
|
|||
6
azernot
15.01.12
✎
11:07
|
Ну и да, прочитал 5 раз, нифига не понял.. Предположил, что ТС считает, что в свойстве Родитель содержатся все возможные родители по иерархии. Как мог, попытался объяснить ему, что эт не так.
|
|||
7
Starhan
15.01.12
✎
11:29
|
Обычная распространненная задача, когда в регистре сведений делают какую то подвязку к группе номенклатуры, что бы потом в случае чаво вытащить какие то доп свойства.
Но натыкаются на проблему. Допустим у одной ном группы одни данные (в рс), а она входит в другую ном группу, котарая так же есть в этом регистре но с другими значениями. И теперь необоходимо найти самого нижнего родителя. Что бы точно определить значения в регистре сведений :) Сталкивался как то по молодости :) |
|||
8
azernot
15.01.12
✎
11:37
|
(7) Любая типоая конфа, настройка счетов учёта (номенклатуры, контрагнетов) организована по этому принципу.
|
|||
9
aka AMIGO
15.01.12
✎
11:38
|
в 7-ке решается через "полный код".. может, в 8-ке есть аналог
|
|||
10
Starhan
15.01.12
✎
11:39
|
Пример
Есть регистр сведений В измерения Справочник Номенклатура Родитель в ресурсах - справочник Менеджер Родитель1 - Менеджер1 Родитель2 - Менеджер2 Есть Иерархический справочник Родитель1 - Родитель2 - Родитель3 - Номенклатура1 Как запросом к регистру сведений понять что у Номенклатуры1 менедежр2? |
|||
11
Дядя Васька
15.01.12
✎
11:42
|
Хм... А в 1цы уже может быть два родителя? А я дурак думал это в сях только...
|
|||
12
Starhan
15.01.12
✎
11:46
|
(11) ты просто чавот не понял. там - ссылки друг на друга показано
То есть иерархия такова Родитель1 -Родитель2 --Родитель3 ---Номенклатура1 --Родитель4 ---Номенлкатура2 Так вот по идеее у Номенклатуры1 - Менедежр2 а у Номенклатуры2 - Мендежер1 |
|||
13
Starhan
15.01.12
✎
11:47
|
(12) точнее так
Родитель1 -Родитель2 --Родитель3 ---Номенклатура1 -Родитель4 --Номенлкатура2 |
|||
14
azernot
15.01.12
✎
11:56
|
(10) Ну вот в типовых 1С-ники не парились, организовали тупо рекурсивный вызов по родителям. В запросе - надо знать сколько уровней в справочнике Номенклатуры
ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура, ВЫБОР КОГДА РегСвед.Номенклатура = СпрНоменклатура.Ссылка ТОГДА 0 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель ТОГДА 1 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель ТОГДА 2 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель ТОГДА 3 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель ТОГДА 4 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель.Родитель ТОГДА 5 КОГДА РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель ТОГДА 6 ИНАЧЕ 100 КОНЕЦ КАК Приоритет, РегСвед.Маршрут ПОМЕСТИТЬ ДанныеИзРС ИЗ РегистрСведений.МенеджерыНоменклатуры.СрезПоследних({(&Период)}, ) КАК РегСвед ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура ПО (ВЫБОР КОГДА (НЕ РегСвед.Номенклатура.ЭтоГруппа) ТОГДА РегСвед.Номенклатура = СпрНоменклатура.Ссылка ИНАЧЕ РегСвед.Номенклатура = СпрНоменклатура.Родитель ИЛИ РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель ИЛИ РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель ИЛИ РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель ИЛИ РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель.Родитель ИЛИ РегСвед.Номенклатура = СпрНоменклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель КОНЕЦ) ГДЕ (НЕ СпрНоменклатура.ЭтоГруппа) {ГДЕ СпрНоменклатура.Ссылка.* КАК Номенклатура} ИНДЕКСИРОВАТЬ ПО Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДанныеИзРС.Номенклатура КАК Номенклатура, ДанныеИзРС.Менеджер ИЗ ДанныеИзРС КАК ДанныеИзРС ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ДанныеИзРС.Номенклатура КАК Номенклатура, МИНИМУМ(ДанныеИзРС.Приоритет) КАК Приоритет ИЗ ДанныеИзРС КАК ДанныеИзРС СГРУППИРОВАТЬ ПО ДанныеИзРС.Номенклатура) КАК МинимальныеПриоритетыРодителей ПО ДанныеИзРС.Номенклатура = МинимальныеПриоритетыРодителей.Номенклатура И ДанныеИзРС.Приоритет = МинимальныеПриоритетыРодителей.Приоритет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |