|
Как написать запрос, с условием, где параметр запроса входит в группу переменной | ☑ | ||
---|---|---|---|---|
0
haggart
08.01.13
✎
13:48
|
Смысл запроса такой.
ВЫБРАТЬ НаборыПравDepartments.ГруппаДоступа ИЗ Справочник.НаборыПрав.Departments ГДЕ (&Department) в иерархии НаборыПравDepartments.ГруппаДоступа Как написать так, чтобы работал. |
|||
1
Живой Ископаемый
08.01.13
✎
13:54
|
ничего не понятно
|
|||
2
Wobland
08.01.13
✎
13:55
|
НаборыПравDepartments.ГруппаДоступа в иерархии (&Department)
ничего не понятно |
|||
3
haggart
08.01.13
✎
14:14
|
есть переменная запроса, тип которой Департамент.
есть параметр запроса, тип которой департамент. переменная может быть группа. Нужно проверить входит ли параметр в иерарахию переменной. |
|||
4
Wobland
08.01.13
✎
14:15
|
(3) нет в запросе переменных
|
|||
5
haggart
08.01.13
✎
14:16
|
условно говоря можно написать так
ВЫБРАТЬ НаборыПравDepartments.ГруппаДоступа ИЗ Справочник.НаборыПрав.Departments ГДЕ НаборыПравDepartments.ГруппаДоступа = &Department или НаборыПравDepartments.ГруппаДоступа = &Department.Родитель или НаборыПравDepartments.ГруппаДоступа = &Department.Родитель.Родитель или НаборыПравDepartments.ГруппаДоступа = &Department.Родитель.Родитель.Родитель или НаборыПравDepartments.ГруппаДоступа =&Department.Родитель.Родитель.Родитель.Родитель .... И так до полного самоудовлетворения |
|||
6
dmpl
08.01.13
✎
14:19
|
(3) Выбери все группы, входящие в иерархию этой переменной и проверь на равенство с &Department.
|
|||
7
1Сергей
08.01.13
✎
14:19
|
(5)
ЫБРАТЬ НаборыПравDepartments.ГруппаДоступа ИЗ Справочник.НаборыПрав.Departments ГДЕ НаборыПравDepartments.ГруппаДоступа в иерархии (&Department) |
|||
8
Wobland
08.01.13
✎
14:19
|
(5) а я тебе что сказал?
|
|||
9
haggart
08.01.13
✎
14:20
|
(7)
с точностью до наоборот! |
|||
10
Wobland
08.01.13
✎
14:20
|
(9) -> (1)
|
|||
11
Wobland
08.01.13
✎
14:21
|
опиши задачу литературным русским языком
|
|||
12
haggart
08.01.13
✎
14:21
|
повторяю, мне нужна проверка что не группа в иерархии элемента, а элемент в иерархии группы!!!!
|
|||
13
Wobland
08.01.13
✎
14:22
|
(12) ссылка в иерархии?
|
|||
14
dmpl
08.01.13
✎
14:22
|
(12) См. (6).
|
|||
15
haggart
08.01.13
✎
14:23
|
есть набор прав, там пользователь настраивает группы департаментов, они получаются запросом...
в качестве параметра запроса у меня элемент, который я проверяю на вхождение в группу набора прав. |
|||
16
haggart
08.01.13
✎
14:23
|
(14) как это сделать?
|
|||
17
1Сергей
08.01.13
✎
14:24
|
(9) тогда создай массив, впихни туда всех родителей &Department. А в запросе проверяй на вхождение в массив
|
|||
18
haggart
08.01.13
✎
14:25
|
(17) так и буду делать, думал есть человеческий подход...
|
|||
19
1Сергей
08.01.13
✎
14:26
|
(18) я, конечно, новичок в восьмерке. Но не понимаю почему (0) не работает
|
|||
20
haggart
08.01.13
✎
14:27
|
(19) я не новичек, но я тоже не понимаю почему (0) не работает :)))
|
|||
21
dmpl
08.01.13
✎
14:28
|
(16) Выбери нужную группу доступа и левым соединением прикрепи к ней справочник групп доступа по условию, что ссылка из левого соединения в иерархии нужной группы доступа. Получишь список всех групп, входящих в иерархию этой группы. Ну а дальше уже банальное равенство.
|
|||
22
dmpl
08.01.13
✎
14:30
|
Но вообще это лучше отдельным регистром сведений решать, чтобы каждый раз левое соединение не выполнять.
|
|||
23
acsent
08.01.13
✎
14:33
|
НаборыПравDepartments.ГруппаДоступа В (&Department_СписокГрупп)
где Department - все группы &Department |
|||
24
Aprobator
08.01.13
✎
14:34
|
Имхается мне, что у ГруппаДоступа нефига не тот же тип значения, что и у параметра Department. Другой причины не вижу.
|
|||
25
1Сергей
08.01.13
✎
14:34
|
Ну или ВТ забахать
|
|||
26
dmpl
08.01.13
✎
14:42
|
(25) Если это где-то в RLS - без регистра будут страшные тормоза.
|
|||
27
haggart
08.01.13
✎
14:45
|
Сделал проверкой на родитель.родитель.родитель до 10 уровня вложенности и быстро работает. Так и оставлю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |