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