Имя: Пароль:
1C
1С v8
RLS KA, пытаюсь настроить доступ к номенклатуре
0 evgeniy1987
 
05.10.11
19:01
Здравствуйте. На Комплекснай автоматизация, редакция 1.1 (1.1.13.1) пытаюсь настроить доступ к номенклатуре для этого создал роль ПробаРЛС, даю права на все и в ограничении доступа к данным делаю:
"где ссылка = &Номенклатура", создаю парам сеанса номенклатура тип спр номенклатура.в при начале работы обычного приложения пишу
ПараметрыСеанса.Номенклатура = Справочники.Номенклатура.Пробный;
перед этим создав предопределенный элемент справочника номенклатура пробный. Захожу в справочник, и могу видеть все. Что я делаю не так?
1 timax
 
05.10.11
19:04
Это единственная роль у пользователя? :)
2 evgeniy1987
 
05.10.11
19:07
Еще пользователь, т.к там проверка, если нет роли пользователь или полные права, то все гуд бай:)
3 Ахиллес
 
05.10.11
19:09
А ограничение на что поставил? На чтение?
4 Ахиллес
 
05.10.11
19:11
Или переверни роли. Сними у пользователя "Просмотр", а в нужной роли разрешай.
5 evgeniy1987
 
05.10.11
19:15
Мне нужно, запретить не просмотр все справочника номенклатуры, а только определенных позиций.
Для этого я права дал все на эту роль, а в закладке Ограничение доступа к данным, путаюсь написать условие, или я то то не так понимаю?
6 Ахиллес
 
05.10.11
19:22
Ставь такое же ограничение на "Чтение" в роли "Потльзователь", как на "Изменение" Я правда не знаю, не врежут ли тебе грабли по твоим фаберже... в этой ветке v8: Почему в России не популярны русские народные виды борьбы? народ утверждает, что удар по яйцам не останавливающий. Так, что вперёд!
7 evgeniy1987
 
05.10.11
19:38
Получилось. Вижу только этот элемент.
Но такой вопрос, это получается во всех ролях которые есть у пользователя, нужно выставлять эту настройку на доступ к справочнику, может есть какой то способ по удобнее? Мне мои, как Вы сказали, фаберже, жалковато:)
8 Reaper_1c
 
05.10.11
20:24
(7) А ты подумал, что будет когда твой пользователь откроет документ в котором ему доступна только часть номенклатуры?
9 timax
 
06.10.11
09:03
(8) Будет "<Объект не найден>" в соответствующем поле. Поэтому, для объектов содержащих ссылки на твой справочник также необходимо прописывать симметричные права доступа.
(7) В таком случае, наверно, я бы ограничение только в пользователе и прописал. А во всех остальных ролях убрал бы доступ вообще. На сколько я знаю - роль "пользователь" обязательная для всех. Тогда будешь уверен в том, что доступ к справочнику у всех открывается через одну роль и фильтруется по одним правилам. А правила уже пиши так, чтобы в режиме предприятия их можно было бы регулировать.
10 timax
 
06.10.11
09:05
(9) Сам недавно с настройкой РЛС столкнулся впервые, так что буду рад услышать конструктивные замечания по поводу предложенного мной решения
11 evgeniy1987
 
08.10.11
12:41
Такс, возникла небольшая проблемка, в РЛС написал вот такие буквы, и не пойму как передать во вложенные запрос, номенклатуру, т.е . если написать Номенклатура.Ссылка = Параметры сеанса то понятно, а как вот эту самую левую номенклатуру во вложеный запрос передать?
Номенклатура ИЗ (ВЫБРАТЬ
   ОграничениеПросмотраНоменклатуры.Пользователь КАК Пользователь,
   ОграничениеПросмотраНоменклатуры.Номенклатура КАК Номенклатура,
   ОграничениеПросмотраНоменклатуры.НеВидеть КАК НеВидеть
ИЗ
   РегистрСведений.ОграничениеПросмотраНоменклатуры КАК ОграничениеПросмотраНоменклатуры
ГДЕ
   ОграничениеПросмотраНоменклатуры.Пользователь = &ТекущийПользователь
   И ОграничениеПросмотраНоменклатуры.НеВидеть = ИСТИНА

СГРУППИРОВАТЬ ПО
   ОграничениеПросмотраНоменклатуры.Номенклатура,
   ОграничениеПросмотраНоменклатуры.Пользователь,
   ОграничениеПросмотраНоменклатуры.НеВидеть) КАК ВложенныйЗапрос
   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
   ПО Номенклатура = ВложенныйЗапрос.Номенклатура
12 evgeniy1987
 
08.10.11
12:42
Я создал регистр сведений с из измерений Пользователь и номенклатура и ресурсов показывать не показывать, хочу по значениям в этом регистре смотреть можно ли показывать или нет
13 evgeniy1987
 
08.10.11
16:12
Такая проблема. Если делаю так
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
       СоставГруппы.Ссылка КАК ГруппаПользователей
   ИЗ
       Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
   ГДЕ
       СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
   ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
           ИЛИ (НЕ 1 В
                   (ВЫБРАТЬ ПЕРВЫЕ 1
                       1 КАК ПолеОтбора
                   ИЗ
                       РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                   ГДЕ
                       НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                       И ВЫБОР
                           КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                               ТОГДА ВЫБОР
                                       КОГДА 1 В
                                               (ВЫБРАТЬ ПЕРВЫЕ 1
                                                   1
                                               ИЗ
                                                   РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                               ГДЕ
                                                   (НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Ссылка)
                       И                                                 НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                       
                                                   И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                       ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                           ТОГДА ЛОЖЬ
                                       ИНАЧЕ Истина
                                   КОНЕЦ
                           ИНАЧЕ ИСТИНА
                       КОНЕЦ = ЛОЖЬ))
                       И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
14 evgeniy1987
 
08.10.11
16:13
То мне выводит все кроме того что я выбрал, но я хочу что бы можно было выбрать группу, а он все элементы не показывал, для этого сделал так:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
       СоставГруппы.Ссылка КАК ГруппаПользователей
   ИЗ
       Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
   ГДЕ
       СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
   ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
           ИЛИ (НЕ 1 В
                   (ВЫБРАТЬ ПЕРВЫЕ 1
                       1 КАК ПолеОтбора
                   ИЗ
                       РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                   ГДЕ
                       НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                       И ВЫБОР
                           КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                               ТОГДА ВЫБОР
                                       КОГДА 1 В
                                               (ВЫБРАТЬ ПЕРВЫЕ 1
                                                   1
                                               ИЗ
                                                   РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                               ГДЕ
                                                   (НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.Ссылка ИЛИ НастройкиПравДоступаПользователей.ОбъектДоступа.ЭтоГруппа)
                       И (НЕ НастройкиПравДоступаПользователей.ОбъектДоступа.ЭтоГруппа ИЛИ ТекущаяТаблица.Ссылка в(НастройкиПравДоступаПользователей.ОбъектДоступа))
                                                   И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.#Параметр(1))
                       
                                                   И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                       ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                           ТОГДА ЛОЖЬ
                                       ИНАЧЕ Истина
                                   КОНЕЦ
                           ИНАЧЕ ИСТИНА
                       КОНЕЦ = ЛОЖЬ))
                       И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
15 evgeniy1987
 
08.10.11
16:13
А программа, все показывает;(
16 evgeniy1987
 
08.10.11
16:33
Мне кажется что это из за того что В регистре РегистрСведений.НастройкиПравДоступаПользователей  измерение ОбъектДоступа имеет множественный тип