Имя: Пароль:
1C
 
Помогите создать RLS
0 Простенький вопросик
 
06.12.20
09:39
Есть справочник пользователи и номенклатура. У номенклатуры есть табличная часть пользователи. Как написать рлс, чтобы по табличной части был фильтр, видит пользователь эту номенклатуру или нет?
1 ДенисЧ
 
06.12.20
09:41
РЛС или работает, или нет. Если работает, то пользователь не видит. если не работает - видит
2 Простенький вопросик
 
06.12.20
09:43
Ну это самописка, там еще нет никакого рлс, там нестандартное ограничение, помогите придумать как его реализовать
3 ДенисЧ
 
06.12.20
09:44
Тогда простой ответ - ЯНХНП
4 Простенький вопросик
 
06.12.20
09:51
Есть справочник пользователи, без реквизитов.
Есть справочник номенклатура, который имеет ТЧ Пользователи с реквизитом "пользователь"
Надо чтобы был рлс, который фильтрует номенклатуру по текущему пользователю, если в тч номенклатуры есть этот пользователь, то пользователь видит номенклатуру. Если нет пользователя, то не видит.
5 Простенький вопросик
 
06.12.20
09:55
А еще не добавил, у справочника пользователи есть реквизит УИД, который связан с УИД пользователя базы
6 Фрэнки
 
06.12.20
09:57
Никто не придумает, если не видит твоих метаданных
7 Фрэнки
 
06.12.20
09:57
Можно от балды наболтать идей
8 Простенький вопросик
 
06.12.20
10:05
ну наболтайте что то, может подойдет
9 Ненавижу 1С
 
гуру
06.12.20
10:07
Где ссылка в (выбрать ТЧ.Ссылка из справочник.номенклатура.твояТЧ как ТЧ
где ТЧ.Пользователь = &ТекущийПользователь)
10 Lama12
 
06.12.20
10:07
(0) Могу ошибаться, вроде в описании ролевого доступа в УПП написано почему нет ограничения на видимость номенклатуры по РЛС.
На память примерно следующее.
Не ясно, как пользователь имеющий ограничения на номенклатуру должен видеть документ содержащий такую номенклатуру?
Т.е. представь что есть документ который содержит номенклатуру которую пользователь должен видеть и которую пользователь не должен видеть. Пользователю с этим документом работать надо.
Как решать будете?
11 Фрэнки
 
06.12.20
10:08
в методическом плане - уже известно давно
12 Простенький вопросик
 
06.12.20
10:09
(10)
в этой самописке не будет документов
13 Lama12
 
06.12.20
10:10
(12) Хм... Ну тогда (9).
14 Простенький вопросик
 
06.12.20
10:15
(9)
это уже неплохо, только справочник пользователей и системные пользователи это разное. Они связываются по реквизиту УИД в справочнике пользователей и УИД пользователя в системе
15 Фрэнки
 
06.12.20
10:19
а вот это я и назвал - метаданные не видит никто - что тут советовать?

з.ы. (мне они не нужны и кроме занудства ничего от меня не получишь)
16 Простенький вопросик
 
06.12.20
10:28
Процедура при записи из модуля справочника сотрудников. Вот тут у меня создается пользователь в базе по пользователю в справочнике, но реквизит "ИдентификаторПользователяИБ" не заполняется, хотя по отладчику заполняется. Что тут может быть не так?

Процедура ПриЗаписи()
    
    ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
            
Имя = этотобъект.Наименование;

            ПользовательИБ.Имя = Имя;

            ПользовательИБ.ПолноеИмя = Имя;

                      
                 ПользовательИБ.АутентификацияСтандартная = Истина;
                ПользовательИБ.Пароль = "1";
                ПользовательИБ.ПоказыватьВСпискеВыбора = истина;
            
            
            ПользовательИБ.Язык = Метаданные.Языки.Русский;
            
            ПользовательИБ.Роли.Добавить(Метаданные.роли.БазовыеПрава);
            
            
      
    
        Попытка
            ПользовательИБ.Записать();
            Сообщить(ПользовательИБ.Имя + " создан!");    
        Исключение
            Сообщить("Ошибка создания или редактирования " +" "+ ОписаниеОшибки());
        КонецПопытки;
        
        этотобъект.ИдентификаторПользователяИБ = строка(ПользовательИБ.УникальныйИдентификатор);

конецпроцедуры;
17 Простенький вопросик
 
06.12.20
10:28
(16)
не сотрудников, пользователей
18 Ненавижу 1С
 
гуру
06.12.20
10:36
У тебя в начале сеанса должен быть заполне н параметр сеанса ТекущийПользователь
19 Простенький вопросик
 
06.12.20
11:35
(9)
А текущий пользователь только из параметров сеанса берется или еще как то можно задать?
20 Простенький вопросик
 
06.12.20
11:39
+(19)
Вот у меня есть справочник пользователи, который должен быть во входящем параметре для РЛС и есть пользователь системы, который зашел. Как это все связать, чтобы был параметр сеанса типа справочник пользователей, чтобы его в рлс можно было использовать?
21 Ненавижу 1С
 
гуру
06.12.20
11:44
В конфигураторе создаёшь параметр сеанса ТекущийПользователь. т.к.только через параметры сеанса доступны параметры в рлс.

При входе пользователя определяешь по ууид в справочнике и заполняешь параметр сеанса найденной ссылкой на справочник пользователи
22 Простенький вопросик
 
06.12.20
11:45
(21)
Вот так правильно?
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)

       Перем ИДПользователя,СпрПользователейДляПоиска,СсылкаНаНайденногоПользователя;

       Если ИменаПараметровСеанса = Неопределено Тогда
       Иначе
               СпрПользователейДляПоиска = Справочники.Пользователи;
               ИДПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
               ПараметрыСеанса.ТекущийПользователь = СпрПользователейДляПоиска.НайтиПоРеквизиту("ИдентификаторПользователяИБ",ИДПользователя);
       КонецЕсли;

КонецПроцедуры
23 Простенький вопросик
 
06.12.20
11:50
(22)
только что проверил, 22 работает, (9) огр. спасибо
24 Cthulhu
 
06.12.20
19:34
а если не найден?
25 vde69
 
06.12.20
19:40
вместо табличного поля в номенклатуре сделай регистр сведений...

разница будет в индексах, для сотни элементов будет пофиг, а для десятков тысяч разница будет ограмная
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший