|
RLS. Не проходит условие | ☑ | ||
---|---|---|---|---|
0
Zixxx
22.03.17
✎
20:43
|
Если в регистре нет пользователя тогда должна выводиться вся номенклатура. Но условие не отрабатывает. Такое впечатление что когда я указываю 1 в (ВЫБРАТЬ всегда возвращается какое-то неопределенно, даже если сделать так "1 В (ВЫБРАТЬ 1)". Подскажите на примере как правильно сделать условие?
Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.RLS КАК RLS ПО Номенклатура.Подразделение = RLS.Подразделение ГДЕ (RLS.Пользователь = &ТекущийПользователь ИЛИ НЕ 1 В (ВЫБРАТЬ 1 КАК ПолеОтбора ИЗ РегистрСведений.RLS КАК RLS ГДЕ RLS.Пользователь = &ТекущийПользователь)) |
|||
1
ВРедная
22.03.17
✎
20:51
|
Отлаживай запрос в консоли. Из-за Где у тебя уже внутреннее соединение.
|
|||
2
Zixxx
22.03.17
✎
20:55
|
(1) Если заменить на ИЛИ 1=1 тогда все выводит. Если было бы внутреннее тогда было бы пусто и в этом случае
|
|||
3
ВРедная
22.03.17
✎
20:58
|
(2) если бы у бабушки были яйца, она была бы дедушкой.
Вот это ВЫБРАТЬ 1 КАК ПолеОтбора ИЗ РегистрСведений.RLS КАК RLS ГДЕ RLS.Пользователь = &ТекущийПользователь) В консоли что выдаёт? |
|||
4
Zixxx
22.03.17
✎
21:03
|
Я отлаживаю в консоли, этот запрос ничего не выдает потому что ничего нет.
В кончали вот так выдает ДА ВЫБРАТЬ ВЫБОР КОГДА НЕ 1 В (ВЫБРАТЬ 1 КАК ПолеОтбора ИЗ РегистрСведений.RLS КАК RLS ГДЕ RLS.Пользователь = &ТекущийПользователь) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ |
|||
5
Zixxx
22.03.17
✎
21:16
|
Одно условие работает
ГДЕ 1 В (ВЫБРАТЬ 1) А если два то нет ГДЕ 1 В (ВЫБРАТЬ 1) ИЛИ RLS.Пользователь = &ТекущийПользователь |
|||
6
Zixxx
22.03.17
✎
21:18
|
Можно сделать через объединить все, но как-то не красиво получается
|
|||
7
RomanYS
22.03.17
✎
21:23
|
(5)
ИЛИ ЕстьNULL(RLS.Пользователь, &ТекущийПользователь) = &ТекущийПользователь |
|||
8
Zixxx
22.03.17
✎
21:35
|
(7) С таким условием всегда выводит все записи
|
|||
9
RomanYS
22.03.17
✎
21:58
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.RLS КАК RLS
ПО Номенклатура.Подразделение = RLS.Подразделение И RLS.Пользователь = &ТекущийПользователь ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.RLS КАК RLS_БезПодразделений ПО RLS_БезПодразделений.Пользователь = &ТекущийПользователь где НЕ RLS.Пользователь Есть NULL или RLS_БезПодразделений.Пользователь Есть NULL |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |