Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RLS.Шаблон обмеження
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
XBrut
Конфігурація УТ 2.3.18.1 Україна
Маємо запит:
    ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
        СоставГруппы.Ссылка КАК ГруппаПользователей
    ИЗ
        Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
    ГДЕ
        СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
    ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)                       // ОЦЕ ЧОМУ ТАК?
    ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ          // І ЦЕ ЧОМУ ТАК?
            ИЛИ .......


імхо якась дивна конструкція.
Власне ЧОМУ ТАК?
Я б зробив якось простіше. Типу:

#ТекущаяТаблица ГДЕ
    &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ //на випадок, коли RLS взагалі не треба
    ИЛИ
    #ТекущаяТаблица.#Параметр(1)    В  ...//і тут підсунути запит, що вертає перелік досяжних значень


єдине, про що можна здогадуватись, то це швидкість виконання...
Цікаво почути коментарі вид тих, хто знає подробиці на цю тему...
Fynjy
Что вы знаете про запросы с соединением "ПО ИСТИНА" ?
XBrut
уже знаю smile.gif
виходить декартовий добуток
необходимо зарегистрироваться для просмотра ссылки

Але все одно незрозуміло саме навіщо робити декартовий добуток таблиці документів та таблиці груп доступу користувача?
Мені здається, що мій варіант простіший.
Хто знає напевно, відпішіться будь ласка.
Fynjy
Цитата(XBrut @ 25.06.13, 0:51) необходимо зарегистрироваться для просмотра ссылки
уже знаю smile.gif
виходить декартовий добуток
необходимо зарегистрироваться для просмотра ссылки

Але все одно незрозуміло саме навіщо робити декартовий добуток таблиці документів та таблиці груп доступу користувача?
Мені здається, що мій варіант простіший.
Хто знає напевно, відпішіться будь ласка.

Вы уж простите начал со сложного ) Давайте с простого, с логического И и ИЛИ ...
ЗЫ: на самом деле в вашем варианте
&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ //на випадок, коли RLS взагалі не треба
ИЛИ

При истине вы дадите доступ и ничего не ограничите ...
ЗЫЫ: запрос реально монстротный, но это не самый страшный запрос в 1С 8 ... Он не сравниться с запросами в ЗУПе ... Разберите его на части и вам все станет ясно ...
XBrut
поставим вопрос по-другому:
накуа делать декартово произведение таблицы документов и таблицы групп пользователей, а потом на этого монстра вешать условия, вместо того, чтобы сразу накладывать условия на таблицу документов?

Варианты ответов:
1. КГ/АМ
2. Это очень ценный приём, потому что....(дальше следует понятное объяснение)
3. Пункт 1 отнести к автору запроса в типовой конфигурации.

alex040269
1) исчерпывающий ответ почему так а не иначе может дать только автор
2) я так полагаю 1С выбирает РАЗЛИЧНЫЕ документы, которые можно показать и ПЕРВЫЕ (сколько нужно показать).
так что декартово произведение на самом деле таковым не является, вопрос в том какими механизмами ограничивать выборку
1) ВНУТРЕННЕЕ СОЕДИНЕНИЕ
2) ГДЕ
3) РАЗЛИЧНЫЕ ПЕРВЫЕ N
автор выбрал последний способ.
XBrut
alex040269, возможно я чего-то не знаю. а где тут РАЗЛИЧНЫЕ ПЕРВЫЕ?

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


Как использовать метод ограничения выборки "РАЗЛИЧНЫЕ ПЕРВЫЕ N" подобных случаях? Интересно увидеть пример, или подскажите, что почитать smile.gif
alex040269
и я не знаю. я только предположил. 1С наверняка формирует запрос выбрать .... и т.д.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.