|
Как ограничить доступ к данным | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
20.01.15
✎
10:12
|
Добрый день. Подскажите, пжл, как побороть следующую проблему.
В конфигурации ЗУП 2.5 создаю роль с ограничением прав к реквизитам справочника "Сотрудники", в частности к реквизиту "ТарифнаяСтавка" закрываю права на просмотр и редактирование. Далее захожу под юзером, которому назначена созданная роль с урезанными правами, из справочника "Сотрудники" открываю печатную форму "Трудовой договор" и в нем почему-то указывается значение реквизита "ТарифнаяСтавка", доступ к которому я закрывал. Стал разбираться дальше - в модуле объекта справочника "Сотрудники" есть процедура, в которой есть запрос, который и вытаскивает инфу из справочника "Сотрудники" по тарифной ставке. Почему запрос отрабатывается, ведь доступ к этому реквизиту я закрыл? |
|||
1
polosov
20.01.15
✎
10:14
|
(0) Запрос
ВЫБРАТЬ РАЗРЕШЕННЫЕ ? |
|||
2
Aleksey1989
20.01.15
✎
10:21
|
(1)
В запросе у меня стоит просто "Выбрать", но в этом случае должна появляться ошибка, означающая, что у пользователя нет прав на получение данных, указанных в запросе, но ни какой ошибки нет, запрос выполняется. |
|||
3
polosov
20.01.15
✎
10:22
|
+(1) Просто есть какая-то особенность при выборе запрещенных объектов в запросе без РАЗРЕШЕННЫЕ. В зависимости от СУБД по разному отрабатываются сложные запросы. А учитывая, что в ЗУПе извращенцы любители вложенных запросов порезвились, то не исключаю что всплыла как раз эта проблема.
|
|||
4
polosov
20.01.15
✎
10:23
|
(2) http://programmist1s.ru/osobennost-razreshennyie-v-zaprose-1s/
Вот что-то подобное. |
|||
5
Aleksey1989
20.01.15
✎
11:11
|
Пробовал указывать слово "Разрешенные" - все равно выводится ТарифнаяСтавка. Общий запрос получается следующий:
ВЫБРАТЬ Разрешенные ОтветственноеЛицоОрганизации.Должность КАК ДолжностьРуководителя, ТрудовойДоговор.НомерДоговора КАК НомерДок, ТрудовойДоговор.ДатаДоговора КАК ДатаДок, ТрудовойДоговор.Организация.НаименованиеПолное КАК ПолноеНазваниеОрганизации, ЕСТЬNULL(ФИООтветственныхЛиц.Фамилия + " " + ФИООтветственныхЛиц.Имя + " " + ФИООтветственныхЛиц.Отчество, ОтветственноеЛицоОрганизации.НаименованиеФизлица) КАК ФИОРуководителя, ЕСТЬNULL(ФИОФизЛиц.Фамилия + " " + ФИОФизЛиц.Имя + " " + ФИОФизЛиц.Отчество, ТрудовойДоговор.Физлицо.Наименование) КАК ФИОРаботника, ТрудовойДоговор.ДатаОкончания КАК ДатаУвольнения, ТрудовойДоговор.ДатаНачала КАК ДатаПриема, ТрудовойДоговор.Должность.Наименование КАК Должность, ТрудовойДоговор.ЗанимаемыхСтавок, ТрудовойДоговор.ИспытательныйСрок, ТрудовойДоговор.ПодразделениеОрганизации.Наименование КАК Подразделение, ВЫБОР КОГДА ТрудовойДоговор.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы) ТОГДА "основной работе" ИНАЧЕ "совместительству" КОНЕЦ КАК ВидЗанятости, ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия, ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер, ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи, ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан, АдресРегистрации.Представление КАК АдресРегистрации, ТелефонДомашний.Представление КАК Телефоны, КонтактнаяИнформация.Представление КАК АдресОрганизации, ТелефонОрганизации.Представление КАК ТелефоныОрганизации, ТрудовойДоговор.Организация.Наименование КАК НазваниеОрганизации, ТрудовойДоговор.Организация.ИНН + "/" + ТрудовойДоговор.Организация.КПП КАК ИНН, ТрудовойДоговор.ГрафикРаботы.ВидГрафика КАК ВидГрафика, ТрудовойДоговор.ГрафикРаботы.ДлительностьРабочейНедели КАК ДлительностьРабочейНедели, ТрудовойДоговор.ВидРасчета, ТрудовойДоговор.ТарифнаяСтавка, ТрудовойДоговор.ВалютаТарифнойСтавки.Наименование КАК ВалютаТарифнойСтавки, ТрудовойДоговор.ПерсональныеНадбавки.( Ссылка, НомерСтроки, Надбавка КАК Надбавка, Показатель1 ) ИЗ Справочник.СотрудникиОрганизаций КАК ТрудовойДоговор ЛЕВОЕ СОЕДИНЕНИЕ ВТОтветственноеЛицо КАК ОтветственноеЛицоОрганизации ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних( &ДатаДокумента, Физлицо В (ВЫБРАТЬ Ответственные.Физлицо ИЗ ВТОтветственноеЛицо КАК Ответственные)) КАК ФИООтветственныхЛиц ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаДокумента, Физлицо = &Физлицо) КАК ФИОФизЛиц ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаДокумента, Физлицо = &Физлицо) КАК ПаспортныеДанныеФизЛицСрезПоследних ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресРегистрации ПО ТрудовойДоговор.Физлицо = АдресРегистрации.Объект И (АдресРегистрации.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ТелефонДомашний ПО ТрудовойДоговор.Физлицо = ТелефонДомашний.Объект И (ТелефонДомашний.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизЛица)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО ТрудовойДоговор.Организация = КонтактнаяИнформация.Объект И (КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресОрганизации)) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ТелефонОрганизации ПО ТрудовойДоговор.Организация = ТелефонОрганизации.Объект И (ТелефонОрганизации.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонОрганизации)) ГДЕ ТрудовойДоговор.Ссылка = &СправочникСсылка |
|||
6
Aleksey1989
20.01.15
✎
11:32
|
Поизучал я информацию на данную тему, оказывается, что RLS не работает, когда используются временные запросы. Придется по условию на принадлежность юзера к той или иной роли запрос формировать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |