Вход | Регистрация



Отчет в привилегированном режиме

Отчет в привилегированном режиме
Я
   Nyarlathotep
 
15.02.18 - 15:22
Всем привет!

Мне нужно чтобы мой отчет(встроенный в конфигурацию, на СКД) получил и показал пользователю данные без ограничений по РЛС, как сделать так, чтобы отчет работал в привилегированном режиме?
 
 
   Волшебник
 
Модератор
1 - 15.02.18 - 15:25
УстановитьПривилегированныйРежим(Истина);
   Nyarlathotep
 
2 - 15.02.18 - 15:26
(1) Но тогда придется делать запрос в модуле отчета и передавать его результат в СКд объектом, я правильно понимаю? А можно сделать так, чтобы отчет сам отработал в привилегированном режиме?
   Волшебник
 
Модератор
3 - 15.02.18 - 15:29
(2) Ничего не происходит само. Для всего есть причина и движущая сила.
   Cyberhawk
 
4 - 15.02.18 - 15:35
Не взлетит, если в результурующем запросе есть ссылки
   cons74
 
5 - 15.02.18 - 15:57
(2)
УстановитьПривилегированныйРежим(Истина);
 Отчет.Скомпоновать();
И пожалуйста без извращений "написать запрос в модуле"
   Cyberhawk
 
6 - 15.02.18 - 16:04
(5) В лучшем случае у него будет "Объект не найден", в худшем - ошибка при выводе
   Nyarlathotep
 
7 - 15.02.18 - 16:12
(6) нашел вот такую тему:

КомпоновщикМакетаКомпоновкиДанных (DataCompositionTemplateComposer)
Выполнить (Execute)
Синтаксис:

Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>)
Параметры:

<Схема> (обязательный) 

Тип: СхемаКомпоновкиДанных.
Схема, для которой требуется построить макет. 
<Настройки> (обязательный) 

Тип: НастройкиКомпоновкиДанных. 
Настройки, для которых необходимо создать макет. 
<ДанныеРасшифровки> (необязательный) 

Тип: ДанныеРасшифровкиКомпоновкиДанных. 
Содержит переменную, в которую будут помещены данные расшифровки. Если параметр не указан, расшифровка заполняться не будет. 
<МакетОформления> (необязательный) 

Тип: МакетОформленияКомпоновкиДанных.
Макет оформления, в соответствии с которым необходимо оформлять макет компоновки данных. Если не указан, будет использоваться макет оформления по умолчанию. 
<ТипГенератора> (необязательный) 

Тип: Тип. 
Указывает тип генератора макета компоновки данных.
Возможные типы:
ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений (DataCompositionValueCollectionTemplateGenerator); 
ГенераторМакетаКомпоновкиДанных (DataCompositionTemplateGenerator)
.
Значение по умолчанию: Тип("ГенераторМакетаКомпоновкиДанных").
<ПроверятьДоступностьПолей> (необязательный) 

Тип: Булево.
Определяет, выполнять ли проверку прав на просмотр полей и проверку доступности поля во включенных функциональных возможностях.
Значение по умолчанию: Истина. 
<ПараметрыФункциональныхОпций> (необязательный) 

Тип: Структура.
Содержит параметры функциональных опций, используемые при исполнении отчета.
Возвращаемое значение:

Тип: МакетКомпоновкиДанных.
Созданный макет компоновки.
Описание:


поможет?
   1sanekmaloi1
 
8 - 15.02.18 - 16:22
(7) Да
   1sanekmaloi1
 
9 - 15.02.18 - 16:24
(6)Ты не прав, если программно вывести в таб док в привел.режиме то все ок будет.
   drcrasher
 
10 - 15.02.18 - 16:29
зачем такие извращения, если есть в модуле ПриКомпоновкеРезультата() и там вполне можно УстановитьПривилегированныйРежим(Истина);
 
 Рекламное место пустует
   Cyberhawk
 
11 - 15.02.18 - 16:58
(9) Ты не понимаешь, о чем говоришь
   1sanekmaloi1
 
12 - 15.02.18 - 16:59
(11) пример дать?
   Nyarlathotep
 
13 - 15.02.18 - 17:06
(10) Сделал в модуле объекта нужного отчета

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    УстановитьПривилегированныйРежим(Истина);
    
КонецПроцедуры


когда открываю отчет под пользователем с ограничениями РЛС пишет мне:


Недостаточно прав для работы с таблицей "Документ.ПоступлениеТоваровУслуг"


Что я сделал неправильно?
   Cyberhawk
 
14 - 15.02.18 - 17:09
(12) Пример чего, что все хорошо? Не сомневаюсь. Только речь-то не об этом.
   Cyberhawk
 
15 - 15.02.18 - 17:10
"Что я сделал неправильно?" // Проигнорировал (6)
   Nyarlathotep
 
16 - 15.02.18 - 17:11
(15) У меня ошибка при открытии отчета, даже форма не успевает открыться.
   Cyberhawk
 
17 - 15.02.18 - 17:13
(16) Именно это там и написано
   1sanekmaloi1
 
18 - 15.02.18 - 17:15
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    УстановитьПривилегированныйРежим(Истина);    
    
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки,,,Ложь);
    
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
КонецПроцедуры
   1sanekmaloi1
 
19 - 15.02.18 - 17:17
+(18) Отчет должен быть встроен в конфу
   Cyberhawk
 
20 - 15.02.18 - 17:18
Ну-ну )
   Nyarlathotep
 
21 - 15.02.18 - 17:53
(18) (19)

Тоже самое, когда открываю, еще до того, как открывается форма, пишет мне
Недостаточно прав для работы с таблицей "Документ.ПоступлениеТоваровУслуг"

Получается, только запрос в модуле объекта писать, так, и потом объектом в СКД?
   Nyarlathotep
 
22 - 15.02.18 - 17:55
(21) Стоп...


У пользователя, из под которого я пробую вообще нет прав на просмотр поступлений(в профиле групп доступа не указана соответствующая роль), это привилегированный режим обойдет?
   1sanekmaloi1
 
23 - 15.02.18 - 18:00
(22)Нет
   1sanekmaloi1
 
24 - 15.02.18 - 18:02
Отсутствие прав на таблицу не обойти никак , но это не точно.
   Cyberhawk
 
25 - 15.02.18 - 18:03
(24) Переобулся после (9)? Нехорошо...
   1sanekmaloi1
 
26 - 15.02.18 - 18:18
(25) В (0) про ограничение по РЛС написано которое можно обойти, отсутствие прав как таковых это другая немного тема.
Не?
   Cyberhawk
 
27 - 15.02.18 - 18:19
(26) А что по-твоему означает "обойти ограничение RLS"?
   xxTANATORxx
 
28 - 15.02.18 - 18:25
(0)схему выполнить на сервере привилигированно, пользователю уже показать Табличный документ, предположу что неразрешенных ссылок в нем не должно быть.
   1sanekmaloi1
 
29 - 15.02.18 - 18:29
(27) То и означает, ограничения на уровне строк данных, т.е. доступ к самой таблице подразумевается что есть.
Ваше мнение что такое РЛС?
   Cyberhawk
 
30 - 15.02.18 - 18:32
(29) Это запрет на просмотр "строк данных" (в таблицах). И привилегированный режим никак тут не поможет эти ограничения обойти, если как в (4) (а много ты видел отчетов где нет ссылок, а только их представления?)
   1sanekmaloi1
 
31 - 15.02.18 - 18:41
(30)Еще раз говорю, если доступ к таблице есть, то РЛС обходится легко.Код я привел выше.
Проведите эксперимент.
1. Отчет в составе конфы.
2 в скд запрос выбрать все поля из справочника организации, в настройках детальные записи ссылка, код, инн все что хотите
3. Скопируйте процедуру прикомпоновке в модуль объекта.
4. Откройте пользователем у которого рлс на организации и удивитесь что в отчете показаны ВСЕ организации, даже те к которым у него нет доступа
   sdf
 
32 - 15.02.18 - 18:57
для информации спорящих: в типовой БУХ 3 все бухотчеты выполняются в прив. режиме...
   Cyberhawk
 
33 - 15.02.18 - 19:21
(31) Лениво проверять, поверю наслово.
Только добавлю, что РЛС накладывается на "базовые" права "Чтение", "Добавление", "Изменение" и "Удаление", а на "Просмотр" уже не наложить, и вот отсутствие у пользователя права на право (пардон за каламбур) "Просмотр" все-таки поставит крест на идее вывода в отчет ссылок, пусть и успешно полученных в привилегированном режиме :)

Предлагаю сойтись на том, что право "Просмотр" (которое никак ограничивать через РЛС нельзя) для объекта метаданных должно у пользователя быть, если в отчет выводятся ссылки. Ну и для просмотра всех таких ссыллок, а не только тех, что разрешены через РЛС, нужно использовать привилегированный режим.
Вроде так.
 
 
   Cyberhawk
 
34 - 15.02.18 - 19:23
(32) Интересная информация. Видимо, у таких отчетов обязательно используются отборы (возможно автоматические), списки значений для которых формируются вне привилегированного режима. Не видит же пользователь там данные по неразрешенным организациям?
Кстати там и хитрые шаблоны РЛС есть типа "две организации в шапке" (для документов передачи чего-нибудь из одной в другую) и еще похлеще.
   1sanekmaloi1
 
35 - 16.02.18 - 09:14
(33)Переобулись?
Зачем сливать в кучу разные понятия.
1.Как вы называете "Базовые права" это первый уровень ограничения, разрешено пользователю в принципе что то делать с объектом или нет, а РЛС это второй т.е. следующий уровень.РЛС без положительного первого уровня смысла не имеет вовсе.
2.В отчетах РЛС обходится методом выше и в отчете вы увидите и ссылки и не ссылки все что захотите.Но интерактивно открыть эти ссылки не получится если РСЛом они запрещены. Т.е. все работать будет штатно.
3.Выводы верные.Но сколько сил нужно чтобы вы поняли что были не правы.
   echo77
 
36 - 16.02.18 - 10:06
(13) Можно, попробовать:
- В отчете очищаем поле Основная схема компоновки данных, тогда при открытии не будет ошибки отсутствия прав на таблицу
- При компоновке результата: включаем привилегированный режим, компонуем отчет по-своему с использованием СКД.
Стандартная обработка = ложь

Минус - нельзя будет выполнить произвольные настройки отчета(отборы, структура)
   Cyberhawk
 
37 - 16.02.18 - 10:57
(35) Ну, не совсем переобулся. Без права на "Просмотр" обход РЛСов в отчетах не поможет, так что "все ок будет" - не всегда, однако :)
Но Я открыт всему новому!
   Nyarlathotep
 
38 - 16.02.18 - 17:03
Вот как получилось - в запросе везде прописал ВЫБРАТЬ РАЗРЕШЕННЫЕ, а в модуле отчета сделал как в (18). Так работает, менеджер с ограничениями по РЛС получает все данные.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует