Имя: Пароль:
1C
1С v8
Подскажите - как правильно настроить RLS
0 MatrosoV AleXXXand_R
 
28.11.11
13:18
Нужно настроить, чтобы пользователь мог добавлять и изменять элементы в определенной группе справочника номенклатуры, а читать и просматривать весь справочник

У пользователя к примеру 2 роли - "Пользователь" (чтение, просмотр без RLS) и "Право добавления/изменения номенклатуры" (добавление через RLS, изменение через RLS)

RLS ставлю для примера просто - "Номенклатура ГДЕ (ИСТИНА)"
Но он мне не дает добавлять в таком случае новые записи в справочник. Если же я добавлю во 2-ой роли еще "Интерактивное добавление" - то дает, но в интерактивное добавление я не могу добавить RLS (недоступно)

Вопрос - в моем случае - во второй роли нужно и "Добавление" и "Интерактивное добавление"? Если "Интерактивное добавление" нужно - как мне сделать, чтобы добавлять можно было только в определенную группу?
1 MatrosoV AleXXXand_R
 
28.11.11
13:32
UP UP
2 Irbis
 
28.11.11
13:34
RLS, как бы только на основные права устанавливается (чтение, добавление, изменение, удалени).
3 Grusswelle
 
28.11.11
13:35
Выражение, которое ты пишешь в ячейке, само по себе должно выдавать значение ИСТИНА.
4 Beduin
 
28.11.11
13:35
(0) А ты у этого нового элемента видишь группу?
5 Ненавижу 1С
 
гуру
28.11.11
13:35
(2) +100

в условии же поставь

Номенклатура В ИЕРАРХИИ (&ТвояПапка)
6 MatrosoV AleXXXand_R
 
28.11.11
13:36
(2) Это я уже понял
Мне главное понять - реально ли сделать так в типовой, чтобы просматривать пользователь мог весь справочник, а редактировать - только определенную группу

И как это можно сделать?
7 Irbis
 
28.11.11
13:37
(6) А переносить из группы в группу?
8 Beduin
 
28.11.11
13:38
(6) При "изменении" вставь его условие (5)
9 MatrosoV AleXXXand_R
 
28.11.11
13:38
(7) На это тоже + добавление
10 Beduin
 
28.11.11
13:38
(7) Я в параметр сеанса писал нужную группу)
11 MatrosoV AleXXXand_R
 
28.11.11
13:40
(10) Нет, я хочу сделать через регистр свелений "Настройки прав доступа пользователей"
12 MatrosoV AleXXXand_R
 
28.11.11
13:41
А чтобы добавлять элементы можно было только в определенную группу, это тоже как в (8) надо сделать?
13 Beduin
 
28.11.11
13:43
(12) Если в записи таблицы доступна группа на момент создания через RLS то в чем проблема?
14 MatrosoV AleXXXand_R
 
28.11.11
13:51
(13) Накладываю RLS на добавление, ограничиваю добавление только в определенной группу, добавляю роли также "Интерактивное добавление" - и он дает добавлять в любую группу справочника
15 Beduin
 
28.11.11
13:52
(14) Запрос в RLS выкладывай
16 MatrosoV AleXXXand_R
 
28.11.11
13:53
#Если &ИспользоватьОграничениеПоНоменклатура #Тогда
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
           СоставГруппы.Ссылка КАК ГруппаПользователей
       ИЗ
           Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
       ГДЕ
           СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
       ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
   (НЕ 1 В
               (ВЫБРАТЬ ПЕРВЫЕ 1
                   1
               ИЗ
                   РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                   
                   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                       ПО
                           НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Родитель
                           И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                           И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
                           И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
                           
               ГДЕ                
                    НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                          И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Номенклатура)
               
                   И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли
17 Beduin
 
28.11.11
14:00
(16) Это у тебя на добавление условие?
18 MatrosoV AleXXXand_R
 
28.11.11
15:28
Подскажите ...

Есть вот такой запрос

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

Посмотрел в консоли запросов (вместо ТекущаяТаблица брал Справочник.Номенклатура) - в результат запроса попадают записи с группами номенклатуры, в которых резрешено добавление номенклатуры. Но ...
Если у меня у роли стоит один флажок "Добавление" - то ничего не добавляется, ни в какую из групп, если я добавляю флажок "Интерактивное добавление" - то добавляет без разницы - и в разрешенную и в неразрешенную

В чем ошибка?