Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Конструкция ВЫБРАТЬ 1 КАК ПолеОтбора

Конструкция ВЫБРАТЬ  1 КАК ПолеОтбора
Я
   moonlight
 
27.01.18 - 19:22
Добрый день!

УТП 8.2

В ограничениях RLS есть конструкция подзапроса:

ВЫБРАТЬ  1 КАК ПолеОтбора

например в следующем коде:

ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)

                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи))

В чем ее смысл?
 
 
   breezee
 
1 - 27.01.18 - 19:27
Подскажите лучше, в чем смылс этой конструкциии? Я её не понял совсем
ВЫБРАТЬ ПЕРВЫЕ 1 
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ 
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация
   Лефмихалыч
 
2 - 27.01.18 - 19:31
(0) такой запрос возвращает либо одну строку с единичкой, либо вообще ничего. Делать это так черезжопно решили, видимо, из соображений быстродействия.

В RLS еще и не такая неведомая хлебанина встречается
   Лефмихалыч
 
3 - 27.01.18 - 19:31
(1) это говнокод, лишенный смысла.
   Franchiser
 
4 - 28.01.18 - 00:47
Так и написано "как Оптмизация"?
   Franchiser
 
5 - 28.01.18 - 00:55
(1) первая часть думаю не относится к этой конструкции (выбрать первые 1). Вложенный запрос "Оптмизация" содержит 1 строку ПолеОтбора, возможно где то дальше проверяется вхождение в него или выполняется связь.
   youalex
 
6 - 28.01.18 - 02:28
В чем смысл "ГДЕ 1 В (ВЫБРАТЬ 1)"? 
А в чем смысл "ГДЕ 1 (ВЫБРАТЬ 1 ГДЕ ЛОЖЬ)" ?

Ну, или, ближе к телу, например, "ГДЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Справочник.Пользователи ГДЕ Код = "Иванов")
   youalex
 
7 - 28.01.18 - 02:38
(1) если это запрос без постобработки (не построитель, не скд) - то это условие всегда будет истина. Плюс предложение "ПЕРВЫЕ" здесь бессмысленно. Может это шаблон, а дальше текст запроса меняется?
   Anarki
 
8 - 28.01.18 - 03:21
Как же я обожаю мисту! Мне на то что бы просто понять о чем спросили в сабже нужно вникать пол дня, а местные гении ответ дают по делу через 1  минуту) (не сарказм)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует