|
СКД и права доступа | ☑ | ||
---|---|---|---|---|
0
LisaAlisa
07.09.16
✎
12:30
|
Есть запрос на СКД к договорам контрагентов, никакие другие таблицы не испльзуются. Права пользователей разграничены по Организациям.
Нужно, чтобы любой пользователь мог выполнить отчет и при этом в отчете видел даже те договоры, доступ к которым ему закрыт (т.к. отчет выявляет ошибки). Что можно предпринять? |
|||
1
rozer76
07.09.16
✎
12:32
|
если rls - под теми же пользователями не получиться
|
|||
2
Метранпаж
07.09.16
✎
12:34
|
Вынести формирование отчёта в привелигерованный модуль
|
|||
3
LisaAlisa
07.09.16
✎
12:36
|
(2) как это сделать, если это СКД?
|
|||
4
Метранпаж
07.09.16
✎
12:40
|
(3) СКД - это не устав воинской службы. Его можно применять и программно
|
|||
5
LisaAlisa
07.09.16
✎
12:53
|
УстановитьПривилегированныйРежим(Истина) в процедуре ПриКомпоновкеРезультата() не помогло
|
|||
6
aleks_default
07.09.16
✎
12:56
|
Пользователь, который выявляет ошибки - это аудитор. У него должны быть права на все организации. Иначе как выполнять аудит?
|
|||
7
LisaAlisa
07.09.16
✎
12:58
|
(6) это понятно, но приходится действовать в рамках поставленой задачи
|
|||
8
Метранпаж
07.09.16
✎
12:58
|
(5) А я сказал про модуль отчёта? Или я маленько по-другому выразился?
|
|||
9
Fragster
гуру
07.09.16
✎
12:59
|
(5) дополнительно надо сделать "стандартная обработка = ложь" и программное формирование и вывод отчета
|
|||
10
LisaAlisa
07.09.16
✎
13:00
|
(8) наверно имеешь в виду модуль конфигцрации? но этот вариант не подходит
|
|||
11
Метранпаж
07.09.16
✎
13:00
|
(10) Могу подарить 2 листа писчей бумаги формата А4.
И комплиментом - шариковую ручку. |
|||
12
LisaAlisa
07.09.16
✎
13:01
|
(9) кратенько
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ///УстановитьПривилегированныйРежим(Истина); ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей=Ложь; ВнешниеНаборыДанных = Новый Структура; Запрос = Новый Запрос; Запрос.Текст = ...текст запроса ВнешниеНаборыДанных.Вставить("ЗапросТЗ",Запрос.Выполнить()); СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); //УстановитьПривилегированныйРежим(Ложь); ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей=Истина; КонецПроцедуры |
|||
13
LisaAlisa
07.09.16
✎
13:03
|
в оригинале УстановитьПривилегированныйРежим(Истина) не закомментировано
|
|||
14
Fragster
гуру
07.09.16
✎
13:08
|
либо у вас выводится "объект не найден" потому что вы не получаете представления (и, соответственно, не настроили выражения представления у полей набора данных), либо вы врёте, что не работает.
|
|||
15
LisaAlisa
07.09.16
✎
13:11
|
(14) если использовать полностью код из (12), то Да, выводит Объект не найден. Но в (13) я написала, что в оригинале вместо ПараметрыСеанса.ИспользоватьОграниченияПравДоступаНаУровнеЗаписей=Ложь; я использую УстановитьПривилегированныйРежим(Истина)
Под полными правами, естественно, ОК. Под огранченными "нарушение прав доступа" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |