|
|
Как в отчете СКД задавать текущего пользователя, полученного из параметров сеанса? |
☑ |
|
0
Dan12345
06.03.23
✎
16:50
|
Добрый день. Есть отчет "Выданные книги". Для администратора библиотеки формируется отчет по всем посетителям.
Стоит задача сделать так, чтобы при авторизации посетителя, он мог строить этот отчет только по себе, а не по всем.
Создал параметр сеанса, считываю там текущего пользователя. Соответственно, как я понимаю, нужно в отчет передавать параметром значение текущего пользователя, но не знаю как.
|
|
|
1
mikecool
06.03.23
✎
16:52
|
создать параметр, задань на вкладке его значение, профит
|
|
|
2
KJlag
06.03.23
✎
16:56
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПараметрыСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных;
...
ПараметрыСКД.УстановитьЗначениеПараметра("Пользак", Пользак);
КонецПроцедуры
|
|
|
3
Dan12345
06.03.23
✎
17:02
|
(2) так же сделал. не помогло)
может где-то еще проблема не знаю. задаю условие на клиента по наименованию текущего пользователя.
в параметрах создал ТекущийПользователь
в модуле объекта:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
Параметры.УстановитьЗначениеПараметра("ТекущийПользователь", ПараметрыСеанса.ТекущийПользователь);
КонецПроцедуры
в модуле сеанса:
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
Имя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Клиент = Справочники.Клиенты.НайтиПоНаименованию(Имя);
Если Клиент.Пустая() Тогда
КлиентОбъект = Справочники.Клиенты.СоздатьЭлемент();
КлиентОбъект.Наименование = Имя;
Клиент = КлиентОбъект.Ссылка;
КонецЕсли;
ПараметрыСеанса.ТекущийПользователь = Клиент;
КонецПроцедуры
|
|
|
4
unenu
06.03.23
✎
17:06
|
Параметр.Использование = Истина
|
|
|
5
Мультук
гуру
06.03.23
✎
17:07
|
(3)
КлиентОбъект = Справочники.Клиенты.СоздатьЭлемент();
КлиентОбъект.Наименование = Имя;
КлиентОбъект.Записать(); //<--------------------------------------------------------------------
Клиент = КлиентОбъект.Ссылка;
|
|
|
6
Dan12345
06.03.23
✎
17:10
|
Разобрался. Сравнивал по наименованию клиента, а нужно было по ссылке. Всем спасибо!
|
|
|
7
Dan12345
06.03.23
✎
17:37
|
К этой же теме. Вопрос такой. Пользователю не выводится макет отчета. Выводится только "Параметр: <ФИО>", то есть тот клиент, который считался и записался в параметр запроса.
Если дать этому пользователю админские права, то все ок. Стоят права на чтение регистров, использование и просмотр самого отчета. Чего может не хватать?
|
|
|
8
Мультук
гуру
06.03.23
✎
18:29
|
(7)
Не хватает прав на чтение и просмотр данных по которым строится отчёт
|
|
|
9
Donkey_hot
06.03.23
✎
18:38
|
(0) А не правильнее методически через RLS это сделать?
|
|
|
10
Dan12345
06.03.23
✎
21:25
|
(9) правильнее. я не смог найти инфы. если скинете - буду благодарен.
|
|
|
11
Dan12345
06.03.23
✎
22:23
|
проблема решена. нужно было в запросе просто поставить галку "разрешенные", поэтому через RLS изначально не получалось))
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший