Имя: Пароль:
1C
1С v8
Запрос по справочнику и RLS
0 lysov
 
01.07.15
13:39
Имеем:
- упп 1.3
- справочник подразделения организаций
- rls с условие по справочнику с доступом для пользователя от середины (для непонятливых: корень справочника пользователю не виден)
- запрос
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПодразделенияОрганизаций.Владелец КАК Владелец,
    ПодразделенияОрганизаций.Ссылка КАК Ссылка,
    ПодразделенияОрганизаций.Код,
    ПодразделенияОрганизаций.Порядок,
    ПодразделенияОрганизаций.КодПоОКАТО,
    ПодразделенияОрганизаций.КодПоОКТМО,
    ПодразделенияОрганизаций.КПП,
    ПодразделенияОрганизаций.ПометкаУдаления
ИЗ
    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ГДЕ
    ПодразделенияОрганизаций.Владелец = &Владелец

в таком варианте выборка идёт
добавляю
ИТОГИ ПО
    Владелец,
    Ссылка
в таком варианте выборка тоже идёт
а если мне таки нужна иерархия справочника
ИТОГИ ПО
    Владелец,
    Ссылка ИЕРАРХИЯ
то кирдык, видна только организация и всё
задолбало уже.
"Цто делать?"(с)Чернышевский
1 butterbean
 
01.07.15
13:41
кривой РЛС, без учета иерархии
2 lysov
 
01.07.15
13:46
да нивапрос, где ошибка?

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

ограничения доступа к данным
<Прочие поля> #лмОрганизацияПодразделение("Владелец", "Подразделение")
Ссылка где истина
3 lysov
 
01.07.15
14:32
(1) хотя бы подскажите как иерархию учитывать?
4 gornovrom
 
01.07.15
14:59
(3) Неверная настройка RLS -
ИМХО должна быть логика, когда пользователю видны все родители объекта, но могут быть не видны некоторые из подчиненных
5 gornovrom
 
01.07.15
15:00
(3) И вообще, зачем ограничивать на Чтение доступ к справочнику Подразделения?
6 lysov
 
01.07.15
15:15
(5) чтобы не видели данных верхних подразделений
7 gornovrom
 
01.07.15
15:18
(6) Так к данным бы и доступ ограничивали, а не к справочнику
8 lysov
 
01.07.15
15:30
а как ограничивается доступ к документам?)))
9 lysov
 
01.07.15
15:31
особенно если доступ привязан к иерархической структуре предприятия