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

УТП 8.2

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

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

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

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

В чем ее смысл?
1 breezee
 
27.01.18
19:27
Подскажите лучше, в чем смылс этой конструкциии? Я её не понял совсем

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

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

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