|
Права на установку отбора в СКД | ☑ | ||
---|---|---|---|---|
0
Natalika
22.01.15
✎
11:46
|
Есть отчет на СКД. Нужно, чтобы пользователи с ограниченными правами, могли его формировать только по своему подразделению. Подразделение устанавливается в отборе. В процедуре ПриОткрытии() я это делаю следующим образом:
НастройкиПодразделение = КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(0); НастройкиПодразделение.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; НастройкиПодразделение.ПравоеЗначение = СписокЗначений; НастройкиПодразделение.Использование = Использование; НастройкиПодразделение.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; При этом устанавливается отбор по списку доступных подразделений, но проблема в том, что РежимОтображения не становится недоступным, т.е. пользователь может откорректировать список подразделений или отключить этот отбор. Как сделать, чтобы эта строка отбора была недоступна или не видна для определенных пользователей? |
|||
1
DrZombi
гуру
22.01.15
✎
12:21
|
(0) Схитри, установи предопределенные условия в зависимости от роли, через вот это: "ПриКомпоновкеРезультата()" (предопределенная процедура в модуле отчета)
http://1cskd.ru/2010/07/vneshnie-nabori-dannyh/ там укажи вместо таблицы значения: СтандартнаяОбработка = Ложь; //------------------------- НастройкиКомпоновщика = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); ЭлемПользНастр = ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; //ПрибавлятьФильтр=Ложь; // настройка период Если НастройкиКомпоновщика.ПараметрыДанных.Элементы.Количество()>0 ТОгда Для каждого Элемент Из НастройкиКомпоновщика.ПараметрыДанных.Элементы Цикл Если Сокрлп(Элемент.Параметр)="ВариантЗапроса" тогда Элемент.Использование = Истина; //Отобразим для пользователя НайденЭлемент = ЭлемПользНастр.Найти(Элемент.ИдентификаторПользовательскойНастройки); Если НайденЭлемент <> Неопределено Тогда НайденЭлемент.Использование = Истина; КонецЕсли; ///.... и т.д. КонецЕсли; КонецЦикла; КонецЕсли; //ТЗИтог= СформироватьОтчет(ДатаНачала,ДатаОкончания,Календарь); //Связь между таблицей значений и именами в СКД ВнешниеНаборыДанных = Новый Структура; //ВнешниеНаборыДанных.Вставить("ТЗИтог",ТЗИтог); //Макет компоновки КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, НастройкиКомпоновщика, ДанныеРасшифровки); //Компоновка данных ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); //Вывод результата ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
2
DrZombi
гуру
22.01.15
✎
12:21
|
+(1) А как использовать в запросе свой параметр ты сама додумаешь :)
|
|||
3
DrZombi
гуру
22.01.15
✎
12:23
|
+(1) Установить значение параметру: Элемент.Значение = <Твое значение>.
|
|||
4
Адский плющ
22.01.15
✎
12:44
|
РЛС? Не, не слышал...
|
|||
5
Natalika
22.01.15
✎
12:53
|
(1) А попроще как-нибудь можно? Т.е. я хочу просто заблокировать это поле отбора для определенных пользователей, но почему-то установка режима отображения не дает желаемого результата. РежимОтображенияЭлементаНастройкиКомпоновкиДанных (DataCompositionSettingsItemViewMode)
Недоступный (Inaccessible) Описание: Этот элемент настройки не предназначен для изменения в составе пользовательской настройки. Есть ли другой метод установки видимости или доступности отбора? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |