Имя: Пароль:
1C
1С v8
Запрос с Выбор
0 Ilqarupup
 
29.04.14
11:04
Всем привет! Есть такой запрос для РЛС в УТ. Не могу понять участок "НЕ 1 В" где в последний момент решается дать истина или ложь. Еще непонятки насчет "КОНЕЦ = ЛОЖЬ" - по умолчанию Ложь или по любому?

ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
        СоставГруппы.Ссылка КАК ГруппаПользователей
    ИЗ
        Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
    ГДЕ
        СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
    ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ #Параметр(3)
            ИЛИ (НЕ 1 В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        1 КАК ПолеОтбора
                    ИЗ
                        РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                    ГДЕ
                        НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                        И ВЫБОР
                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                ГДЕ
                                                    НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(2)
                                                    И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                                                    И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                        ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ
                            ИНАЧЕ ИСТИНА
                        КОНЕЦ = ЛОЖЬ))
                        И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
1 mikecool
 
29.04.14
11:05
это тебе надо в булеву алгебру обратиться
2 Wobland
 
29.04.14
11:06
(0) присвоения в запросах нет по определению
3 Ilqarupup
 
29.04.14
11:06
помогите пожалуйста с "КОНЕЦ = ЛОЖЬ" сначала
4 Ilqarupup
 
29.04.14
11:07
(2) то есть по дефолту?
5 Wobland
 
29.04.14
11:07
(3) лжив ли конец?
6 Wobland
 
29.04.14
11:07
(4) то есть, по определению
7 Ilqarupup
 
29.04.14
11:08
(6) не понял
8 Ilqarupup
 
29.04.14
11:08
(5) тоже не понял
9 Wobland
 
29.04.14
11:09
(8) отправляйся в вуз тогда
10 Любопытная
 
29.04.14
11:09
(7) Во всей это лабуде, которая ВЫБОР КОГДА ИНАЧЕ КОНЕЦ результат получается типа Булево. Вот этот результат и сравнивается с ложью
11 Ilqarupup
 
29.04.14
11:11
(8)2 вуза закончил вообще то
12 Wobland
 
29.04.14
11:11
(11) я про нормальный
13 Ilqarupup
 
29.04.14
11:13
(12) давай не оффтопить, я уже догадываюсь
14 Ilqarupup
 
29.04.14
11:14
результат булево сравнивается со значением Ложь и выдается как результат сравнения
15 Любопытная
 
29.04.14
11:15
(14) Бинго! :)
16 Ilqarupup
 
29.04.14
11:19
все разобрался, =Ложь не является частью конструкции выбор когда конец, это меня и путало, спасибо всем!
Закон Брукера: Даже маленькая практика стоит большой теории.