Имя: Пароль:
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
Если при открытии использовать ДанныеФормыВЗначение то в ТонкомКлиенте Выдает ошибку, но при толстом все ок отрабатывает, а если использую на сервере то ничего не меняется



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