Имя: Пароль:
1C
1С v8
Как в СКД на 8.2 сделать не видимым параметр
0 URAL
 
09.12.11
10:35
сделал отчет в СКД и появилась необходимость на уровне прав сделать так чтобы некоторые пользователи могли видеть только данные по своему подразделению. В запросе набора данных прописал условие и при открытии формы отчета задаю параметр нужного подразделения. Но как мне сделать не видимым параметр подразделение когда открывают отчет не избранные )))
1 URAL
 
09.12.11
10:37
например руководителю нужно чтобы он мог видеть как по всем подразделениям так и выборочно, поэтому просто включить ограничение доступности не вариант, а как обратится программно при открытии к нужному параметру не могу сообразить
2 URAL
 
09.12.11
10:42
Как программно управлять ограничением доступности при открытии формы отчета?
3 URAL
 
09.12.11
10:49
Например можно установить параметр

Настройки = Отчет.КомпоновщикНастроек.Настройки;
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Подразделение", Отчет.Подразделение);

или так
   ЗначениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Подразделение"));
   ЗначениеПараметра.Использование = Истина;
   ЗначениеПараметра.Значение = Отчет.Подразделение;


А как сделать не видимым данное поле?
4 zippygrill
 
09.12.11
10:52
можешь здесь посмотреть
5 zippygrill
 
09.12.11
10:52
КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.Элементы
6 URAL
 
09.12.11
10:54
(5) пробовал уже, и в цикле перебирал и обращался через индекс, но там нет управления видимостью или ограничение доступности
7 zippygrill
 
09.12.11
10:58
нда тоже сейчас смотрел и не видил ОграничениеДоступность
8 URAL
 
09.12.11
11:00
нужно обратится к полю, но при попытке получить нужное поле мне возвращает НЕОПРЕДЕЛЕНО
9 darkvett
 
09.12.11
11:02
отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный
10 URAL
 
09.12.11
11:02
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПоляПараметров.НайтиПоле(Новый ПолеКомпоновкиДанных("Подразделение"))
11 URAL
 
09.12.11
11:03
(9) ща пробую
12 URAL
 
09.12.11
11:24
(9) нет не помогло, я все равно могу менять подразделение
13 darkvett
 
09.12.11
11:29
Должно помочь. У меня работает.
&НаКлиенте
Процедура ПриОткрытии(Отказ)    
   УстановитьВидимостьПараметра();        
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьПараметра()
   Если ПараметрыСеанса.ТекущийПользователь.Наименование = "Наталья Васильевна"   Тогда
       отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   КонецЕсли;
КонецПроцедуры

Главное отладчиком пойми какой у тебя номер индекса.
14 URAL
 
09.12.11
11:59
(13) и что не отображается само поле, мне нужно чтобы в параметрах поле выбора подразделения не отображалось
15 milan
 
09.12.11
12:03
(14) А ограничение доступности у параметра ?
16 darkvett
 
09.12.11
12:05
А смысл отображать поле если ни как его не изменить??
Если только с точки зрения информации для пользователя
то активировать: В СКД Настройки --- ДругиеНастройки --- ВыводитьПараметры
17 milan
 
09.12.11
12:08
Не путай параметр запроса и отбор. Можешь в параметр передать подразделение, а на форму положить отбор по отобранным подразделениям.
18 URAL
 
09.12.11
12:09
(16) а у меня позволяет изменить, и в отладчике я его нашел, программно я задам параметр на нужного пользователя, мне нужно чтобы он не клацал и не выбирал, поэтому нужно сделать данное поле не видимым
19 URAL
 
09.12.11
12:10
как обратится к самой СКД в отчете?
20 URAL
 
09.12.11
12:11
я так понимаю управление ограничением доступности там находится, но никак в ни в компанивщике настроек
21 URAL
 
09.12.11
12:12
(15, 17) мне нужно управлять видимостью поля параметра программно
22 URAL
 
09.12.11
12:13
(15,17) что такое отбор и параметр мне известно
23 milan
 
09.12.11
12:16
(22) отлично, при открытиии отчета 1 раз устанавливаешь параметр подразделение, если манагеру надо не по всем доступным он использует отбор.
24 URAL
 
09.12.11
12:20
(23) там у меня не только по подразделению, там порядка 4 параметров и мне нужно управлять видимостью поля параметра, было бы одно подразделение только я бы и не заморачивался, включил бы в отбор и решена задача
25 URAL
 
09.12.11
12:28
Вопрос остается открытым, как управлять видимостью поля параметра программно?
26 darkvett
 
09.12.11
12:39
Уточним. Тебе надо управлять доступностью поля выбора параметра или управлять видимостью параметра?
27 URAL
 
09.12.11
12:45
(26) видимостью параметра
28 URAL
 
09.12.11
12:46
(26) и как доступностью тоже интересно узнать
29 darkvett
 
09.12.11
12:48
(27) Но ведь если мы параметру установим режим отображения "Недоступный" то этот параметр внешне ни где не будет отображаться. Почему при данном режиме отображения ты его видишь не пойму.....
30 URAL
 
09.12.11
12:51
Сейчас попробую код с натальей васильевной )))
31 URAL
 
09.12.11
12:59
(29) не работает
32 URAL
 
09.12.11
13:00
РежимОтображенияЭлементаНастройкиКомпоновкиДанных (DataCompositionSettingsItemViewMode)
Недоступный (Inaccessible)
Описание:

Этот элемент настройки не предназначен для изменения в составе пользовательской настройки.
33 jump if zero
 
09.12.11
13:01
СхемаКомпоновкиДанных.Параметры.Найти("Валюта").ОграничениеИспользования=Истина;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроек.Настройки);
34 URAL
 
09.12.11
15:05
Если при открытии использовать ДанныеФормыВЗначение то в ТонкомКлиенте Выдает ошибку, но при толстом все ок отрабатывает, а если использую на сервере то ничего не меняется



&НаСервере
Процедура УправлениеВидимостьюПараметра();
       СхемаКомпоновкиДанных = ДанныеФормыВЗначение(Отчет, Тип("ОтчетОбъект.РРПМ")).СхемаКомпоновкиДанных;
       СхемаКомпоновкиДанных.Параметры.Найти("Подразделение").ОграничениеИспользования = Истина;
       Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
       Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Отчет.КомпоновщикНастроек.Настройки);
КонецПроцедуры;