|
Отчет в привилегированном режиме | ☑ | ||
---|---|---|---|---|
0
Nyarlathotep
15.02.18
✎
15:22
|
Всем привет!
Мне нужно чтобы мой отчет(встроенный в конфигурацию, на СКД) получил и показал пользователю данные без ограничений по РЛС, как сделать так, чтобы отчет работал в привилегированном режиме? |
|||
1
Волшебник
модератор
15.02.18
✎
15:25
|
УстановитьПривилегированныйРежим(Истина);
|
|||
2
Nyarlathotep
15.02.18
✎
15:26
|
(1) Но тогда придется делать запрос в модуле отчета и передавать его результат в СКд объектом, я правильно понимаю? А можно сделать так, чтобы отчет сам отработал в привилегированном режиме?
|
|||
3
Волшебник
модератор
15.02.18
✎
15:29
|
(2) Ничего не происходит само. Для всего есть причина и движущая сила.
|
|||
4
Cyberhawk
15.02.18
✎
15:35
|
Не взлетит, если в результурующем запросе есть ссылки
|
|||
5
cons74
15.02.18
✎
15:57
|
(2)
УстановитьПривилегированныйРежим(Истина); Отчет.Скомпоновать(); И пожалуйста без извращений "написать запрос в модуле" |
|||
6
Cyberhawk
15.02.18
✎
16:04
|
(5) В лучшем случае у него будет "Объект не найден", в худшем - ошибка при выводе
|
|||
7
Nyarlathotep
15.02.18
✎
16:12
|
(6) нашел вот такую тему:
КомпоновщикМакетаКомпоновкиДанных (DataCompositionTemplateComposer) Выполнить (Execute) Синтаксис: Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>) Параметры: <Схема> (обязательный) Тип: СхемаКомпоновкиДанных. Схема, для которой требуется построить макет. <Настройки> (обязательный) Тип: НастройкиКомпоновкиДанных. Настройки, для которых необходимо создать макет. <ДанныеРасшифровки> (необязательный) Тип: ДанныеРасшифровкиКомпоновкиДанных. Содержит переменную, в которую будут помещены данные расшифровки. Если параметр не указан, расшифровка заполняться не будет. <МакетОформления> (необязательный) Тип: МакетОформленияКомпоновкиДанных. Макет оформления, в соответствии с которым необходимо оформлять макет компоновки данных. Если не указан, будет использоваться макет оформления по умолчанию. <ТипГенератора> (необязательный) Тип: Тип. Указывает тип генератора макета компоновки данных. Возможные типы: ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений (DataCompositionValueCollectionTemplateGenerator); ГенераторМакетаКомпоновкиДанных (DataCompositionTemplateGenerator) . Значение по умолчанию: Тип("ГенераторМакетаКомпоновкиДанных"). <ПроверятьДоступностьПолей> (необязательный) Тип: Булево. Определяет, выполнять ли проверку прав на просмотр полей и проверку доступности поля во включенных функциональных возможностях. Значение по умолчанию: Истина. <ПараметрыФункциональныхОпций> (необязательный) Тип: Структура. Содержит параметры функциональных опций, используемые при исполнении отчета. Возвращаемое значение: Тип: МакетКомпоновкиДанных. Созданный макет компоновки. Описание: поможет? |
|||
8
1sanekmaloi1
15.02.18
✎
16:22
|
(7) Да
|
|||
9
1sanekmaloi1
15.02.18
✎
16:24
|
(6)Ты не прав, если программно вывести в таб док в привел.режиме то все ок будет.
|
|||
10
drcrasher
15.02.18
✎
16:29
|
зачем такие извращения, если есть в модуле ПриКомпоновкеРезультата() и там вполне можно УстановитьПривилегированныйРежим(Истина);
|
|||
11
Cyberhawk
15.02.18
✎
16:58
|
(9) Ты не понимаешь, о чем говоришь
|
|||
12
1sanekmaloi1
15.02.18
✎
16:59
|
(11) пример дать?
|
|||
13
Nyarlathotep
15.02.18
✎
17:06
|
(10) Сделал в модуле объекта нужного отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) УстановитьПривилегированныйРежим(Истина); КонецПроцедуры когда открываю отчет под пользователем с ограничениями РЛС пишет мне: Недостаточно прав для работы с таблицей "Документ.ПоступлениеТоваровУслуг" Что я сделал неправильно? |
|||
14
Cyberhawk
15.02.18
✎
17:09
|
(12) Пример чего, что все хорошо? Не сомневаюсь. Только речь-то не об этом.
|
|||
15
Cyberhawk
15.02.18
✎
17:10
|
"Что я сделал неправильно?" // Проигнорировал (6)
|
|||
16
Nyarlathotep
15.02.18
✎
17:11
|
(15) У меня ошибка при открытии отчета, даже форма не успевает открыться.
|
|||
17
Cyberhawk
15.02.18
✎
17:13
|
(16) Именно это там и написано
|
|||
18
1sanekmaloi1
15.02.18
✎
17:15
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; УстановитьПривилегированныйРежим(Истина); НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки,,,Ложь); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры |
|||
19
1sanekmaloi1
15.02.18
✎
17:17
|
+(18) Отчет должен быть встроен в конфу
|
|||
20
Cyberhawk
15.02.18
✎
17:18
|
Ну-ну )
|
|||
21
Nyarlathotep
15.02.18
✎
17:53
|
(18) (19)
Тоже самое, когда открываю, еще до того, как открывается форма, пишет мне Недостаточно прав для работы с таблицей "Документ.ПоступлениеТоваровУслуг" Получается, только запрос в модуле объекта писать, так, и потом объектом в СКД? |
|||
22
Nyarlathotep
15.02.18
✎
17:55
|
(21) Стоп...
У пользователя, из под которого я пробую вообще нет прав на просмотр поступлений(в профиле групп доступа не указана соответствующая роль), это привилегированный режим обойдет? |
|||
23
1sanekmaloi1
15.02.18
✎
18:00
|
(22)Нет
|
|||
24
1sanekmaloi1
15.02.18
✎
18:02
|
Отсутствие прав на таблицу не обойти никак , но это не точно.
|
|||
25
Cyberhawk
15.02.18
✎
18:03
|
(24) Переобулся после (9)? Нехорошо...
|
|||
26
1sanekmaloi1
15.02.18
✎
18:18
|
(25) В (0) про ограничение по РЛС написано которое можно обойти, отсутствие прав как таковых это другая немного тема.
Не? |
|||
27
Cyberhawk
15.02.18
✎
18:19
|
(26) А что по-твоему означает "обойти ограничение RLS"?
|
|||
28
xxTANATORxx
15.02.18
✎
18:25
|
(0)схему выполнить на сервере привилигированно, пользователю уже показать Табличный документ, предположу что неразрешенных ссылок в нем не должно быть.
|
|||
29
1sanekmaloi1
15.02.18
✎
18:29
|
(27) То и означает, ограничения на уровне строк данных, т.е. доступ к самой таблице подразумевается что есть.
Ваше мнение что такое РЛС? |
|||
30
Cyberhawk
15.02.18
✎
18:32
|
(29) Это запрет на просмотр "строк данных" (в таблицах). И привилегированный режим никак тут не поможет эти ограничения обойти, если как в (4) (а много ты видел отчетов где нет ссылок, а только их представления?)
|
|||
31
1sanekmaloi1
15.02.18
✎
18:41
|
(30)Еще раз говорю, если доступ к таблице есть, то РЛС обходится легко.Код я привел выше.
Проведите эксперимент. 1. Отчет в составе конфы. 2 в скд запрос выбрать все поля из справочника организации, в настройках детальные записи ссылка, код, инн все что хотите 3. Скопируйте процедуру прикомпоновке в модуль объекта. 4. Откройте пользователем у которого рлс на организации и удивитесь что в отчете показаны ВСЕ организации, даже те к которым у него нет доступа |
|||
32
sdf
15.02.18
✎
18:57
|
для информации спорящих: в типовой БУХ 3 все бухотчеты выполняются в прив. режиме...
|
|||
33
Cyberhawk
15.02.18
✎
19:21
|
(31) Лениво проверять, поверю наслово.
Только добавлю, что РЛС накладывается на "базовые" права "Чтение", "Добавление", "Изменение" и "Удаление", а на "Просмотр" уже не наложить, и вот отсутствие у пользователя права на право (пардон за каламбур) "Просмотр" все-таки поставит крест на идее вывода в отчет ссылок, пусть и успешно полученных в привилегированном режиме :) Предлагаю сойтись на том, что право "Просмотр" (которое никак ограничивать через РЛС нельзя) для объекта метаданных должно у пользователя быть, если в отчет выводятся ссылки. Ну и для просмотра всех таких ссыллок, а не только тех, что разрешены через РЛС, нужно использовать привилегированный режим. Вроде так. |
|||
34
Cyberhawk
15.02.18
✎
19:23
|
(32) Интересная информация. Видимо, у таких отчетов обязательно используются отборы (возможно автоматические), списки значений для которых формируются вне привилегированного режима. Не видит же пользователь там данные по неразрешенным организациям?
Кстати там и хитрые шаблоны РЛС есть типа "две организации в шапке" (для документов передачи чего-нибудь из одной в другую) и еще похлеще. |
|||
35
1sanekmaloi1
16.02.18
✎
09:14
|
(33)Переобулись?
Зачем сливать в кучу разные понятия. 1.Как вы называете "Базовые права" это первый уровень ограничения, разрешено пользователю в принципе что то делать с объектом или нет, а РЛС это второй т.е. следующий уровень.РЛС без положительного первого уровня смысла не имеет вовсе. 2.В отчетах РЛС обходится методом выше и в отчете вы увидите и ссылки и не ссылки все что захотите.Но интерактивно открыть эти ссылки не получится если РСЛом они запрещены. Т.е. все работать будет штатно. 3.Выводы верные.Но сколько сил нужно чтобы вы поняли что были не правы. |
|||
36
echo77
16.02.18
✎
10:06
|
(13) Можно, попробовать:
- В отчете очищаем поле Основная схема компоновки данных, тогда при открытии не будет ошибки отсутствия прав на таблицу - При компоновке результата: включаем привилегированный режим, компонуем отчет по-своему с использованием СКД. Стандартная обработка = ложь Минус - нельзя будет выполнить произвольные настройки отчета(отборы, структура) |
|||
37
Cyberhawk
16.02.18
✎
10:57
|
(35) Ну, не совсем переобулся. Без права на "Просмотр" обход РЛСов в отчетах не поможет, так что "все ок будет" - не всегда, однако :)
Но Я открыт всему новому! |
|||
38
Nyarlathotep
16.02.18
✎
17:03
|
Вот как получилось - в запросе везде прописал ВЫБРАТЬ РАЗРЕШЕННЫЕ, а в модуле отчета сделал как в (18). Так работает, менеджер с ограничениями по РЛС получает все данные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |