Имя: Пароль:
1C
1С v8
Шаблон RLS проверка на заполненное значение
,
0 Kalina
 
28.11.19
09:44
Здравствуйте
есть вот такой шаблон RLS для проверки на доступ к Контрагенту
у меня Документ ОтчетОРозничныхПродажах, в нем может быть указан Эквайрер, а может быть и не указан (если нет оплаты картой в течение дня), соответственно если Эквайрер (Контрагент) указан - шаблон отрабатывает правильно, а если не указан - результат пустой
как мне добавить условие, что если Эквайрер (Контрагент) не указан - не проверять дальше ?
Буду признателен за подробный, разжеваный ответ :)

#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
ТекущаяТаблица
ИЗ
    #ТекущаяТаблица КАК ТекущаяТаблица
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            СоставГруппы.Ссылка КАК ГруппаПользователей
        ИЗ
            Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
        ГДЕ
            СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
        ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
    (НЕ 1 В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    1
                ИЗ
                    РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                                                                
                    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
                    ПО Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(1)                
                    
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                        ПО
                            НастройкиПравДоступаПользователей.ОбъектДоступа = ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
                                    
                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                                И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДанные)
                                                                                                
                                И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
                ГДЕ                
                     НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                           И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты))
                
                    И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли
1 Kalina
 
28.11.19
11:07
есть тут кто-нибудь ?
2 catena
 
28.11.19
11:18
ПО Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(1)  или ТекущаяТаблица.#Параметр(1) = Значение(Справочник.Контрагенты.ПустаяСсылка)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший