|
програмно установить параметр СКД | ☑ | ||
|---|---|---|---|---|
|
0
karlson85
19.05.10
✎
22:02
|
Есть отчет на СКД, создал для него форму, в модуле ПриОткрытии, хочу установить значение одному из 3-х параметров:
делаю так: &НаКлиенте Процедура ПриОткрытии(Отказ) Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")).Значение=ПолучитьТекущегоПользователя(); КонецПроцедуры В результате форма открывается, а значение не подставляется, что я делаю не так? |
|||
|
1
gr13
19.05.10
✎
22:15
|
||||
|
2
karlson85
19.05.10
✎
22:18
|
искал я в поисковиках, там только под 8.1, в 8.2 упр. форма - это не работает
|
|||
|
3
karlson85
20.05.10
✎
09:35
|
help
|
|||
|
4
Defender aka LINN
20.05.10
✎
09:45
|
А использование кто ставить будет?
|
|||
|
5
AmoreMe
20.05.10
✎
09:52
|
Процедура ПриОткрытии()
ПараметрДанныхМастер = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2]; ПараметрДанныхМастер.Значение = ПараметрыСеанса.ТекущийПользователь.ФизЛицо; КонецПроцедуры //Можно и так но про галочку использование не забудьте :) вкладка параметры данных |
|||
|
6
Aprobator
20.05.10
✎
10:07
|
(4) если не подставляется значение, то до использования еще дожить надо.
|
|||
|
7
karlson85
20.05.10
✎
10:09
|
Неа, не помогает, значение использование уже в конфигураторе поставлено, ну я прописал тоже, но не помогло, может в управляемом приложении как-то по другому надо?
|
|||
|
8
Elena_KR
20.05.10
✎
10:24
|
Попробуйте загрузить настройки, которые меняете :
Настройки = КомпоновщикНастроек.ПолучитьНастройки(); Параметр =Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); Параметр.Значение = ПолучитьТекущегоПользователя(); КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); |
|||
|
9
Elena_KR
20.05.10
✎
10:26
|
Да и нужно делать на сервере, насколько мне не изменяет память, так как меняем объект сам
|
|||
|
10
johnbay
20.05.10
✎
10:26
|
(0) Версия платформы какая? У меня в упр форме процедура приоткрытии не отрабатывает вообще... платформа 8.2.10.82
Делаю все в ПриСозданииНаСервере() |
|||
|
11
karlson85
20.05.10
✎
11:11
|
Версия платформы 8.2.10.82.
И на сервере пробывал, в отладчике вижу что значение присвоилось, форма открывается, пусто &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); Параметр =Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); Параметр.Значение = ШиПБиблиотекаСервер.ПолучитьТекущегоПользователя(); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); КонецПроцедуры |
|||
|
12
CyberNut
20.05.10
✎
11:12
|
Подпишусь на тему, тоже сталкивался с этой бедой.
|
|||
|
13
Aprobator
20.05.10
✎
11:33
|
(11) хм - а в типовых ниче такого нету? Сдается мне что тут надо посмотреть в сторону ЗначениеВРеквизитФормы, хотя могу ошибаться.
|
|||
|
14
Ksandr
20.05.10
✎
11:36
|
А устанавливать перед формированием отчета и программно выводить?
|
|||
|
15
johnbay
20.05.10
✎
11:53
|
(11) Попробуй вместо своего кода такой:
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); Параметр.Значение = ШиПБиблиотекаСервер.ПолучитьТекущегоПользователя(); |
|||
|
16
Aprobator
20.05.10
✎
11:58
|
(14) а фиг его знает. Отладчиком после открытия формы (пришей бы к какой нить левой кнопке команду, а к ней событие для отлова) посмотри, что пасется в КомпоновщикНастроек.Настройки.ПараметрыДанных - видится ли там это значение. Если видится, то надо точно играться с ЗначениемВРеквизит и т.п., а нет - надо думать дальше.
|
|||
|
17
Aprobator
20.05.10
✎
11:58
|
+(16) имеется в виду при наличии (11)
|
|||
|
18
karlson85
20.05.10
✎
12:18
|
(15) пробывал, не работает.
(14) попробывал так: &НаКлиенте Процедура Команда1(Команда) //команда кнопки РРР(); КонецПроцедуры &НаСервере Процедура РРР() Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); Параметр =Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); КонецПроцедуры в Параметр.Значение пусто |
|||
|
19
Aprobator
20.05.10
✎
12:21
|
(18) ну значит до формы параметр не дошел. Как там компоновщик настроек к форме привязан? Через какой реквизит формы?
|
|||
|
20
karlson85
20.05.10
✎
12:30
|
(19) У формы есть основной реквизит Отчет, типа ОтчетОбъект, у него есть свойство КомпановщикНастроек
|
|||
|
21
Aprobator
20.05.10
✎
12:34
|
(20) ну дык попробуй в (11) в конце ЗначениеВРеквизитФормы(Отчет, "Отчет");
тока синтаксис проверь, на всякий случай. |
|||
|
22
Aprobator
20.05.10
✎
12:38
|
+(21) а может даже и ЗначениеВДаныеФормы(Отчет, "Отчет"). В общем посмотри в этом направлении. Не взлетит бум думать дальше.
|
|||
|
23
Aprobator
20.05.10
✎
12:41
|
+(22) щаз кстати у ся все это попробую.
|
|||
|
24
Aprobator
20.05.10
✎
12:42
|
отпишусь по результатам.
|
|||
|
25
karlson85
20.05.10
✎
12:55
|
Вообщем мне удалось добится заполнения этого значения только так:
&НаКлиенте Процедура ПриОткрытии(Отказ) ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[2].Значение=ШиПБиблиотекаСервер.ПолучитьТекущегоПользователя(); КонецПроцедуры Тут конечно мне две вещи не нравится: 1) - идет лишнее обращение к серверу 2) не находит он мне параметр Дизайнер через ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти("Дизайнер") |
|||
|
26
Aprobator
20.05.10
✎
13:02
|
(25) пока еще копаюсь, но первое что бросилось в глаза - вариант отчета. То чего я в 8.1 не видел. Не исключено, что перед тем как устанавливать значения параметров необходимо как то спозиционироваться на варианте отчета.
|
|||
|
27
karlson85
20.05.10
✎
13:02
|
2-ю проблему решил так:
Параметр=ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); Параметр.Значение=ШиПБиблиотекаСервер.ПолучитьТекущегоПользователя(); Но я так думаю, должен быть метод оптималнее, чтоб сразу на сервере этот параметр заполнился, есть у кого еще какие идеи? |
|||
|
28
Aprobator
20.05.10
✎
13:29
|
хм - как то странно. У меня почему то (0) все отрабатывает. Ты пардон параметры на форму как выводишь? Релиз платформы 8.2.9.356.
|
|||
|
29
karlson85
20.05.10
✎
13:34
|
НУ как я понял оно отрабатывает, но вот еще один глюк, у меня есть еще два параметра типа дата, хочу их тоже установить так:
&НаКлиенте Процедура ПриОткрытии(Отказ) Параметр1=ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")); Параметр1.Значение=НачалоМесяца(ТекущаяДата()); Параметр2=ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода")); Параметр2.Значение=КонецМесяца(ТекущаяДата()); Параметр3=ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Дизайнер")); Параметр3.Значение=ШиПБиблиотекаСервер.ПолучитьТекущегоПользователя(); КонецПроцедуры А он мне только дизайнера проставляет, странно? |
|||
|
30
Aprobator
20.05.10
✎
13:39
|
(29) у меня отрабатывает без ЭтаФорма. У тебя Отчет - Основной реквизит формы? Галочка там стоит? Названия параметров не перепутал?
|
|||
|
31
karlson85
20.05.10
✎
13:51
|
Хм...., да тут интересная особенность есть, если мы у параметра ставим галочку "Включать в пользовательские настройки", то вот так:
Параметр2=ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода")); Параметр2.Значение=КонецМесяца(ТекущаяДата()); не прокатывает, нужно непосредственно устанавливать пользовательские настройки так: Параметр2=ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0]; Параметр2.Значение=НачалоМесяца(ТекущаяДата()); Вот только я никак не могу победить чтоб ображение шло не как к элементу массива типа Элементы[1], делаю так: Параметр2=ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти("НачалоПериода"); возвращает неопределено |
|||
|
32
Aprobator
20.05.10
✎
14:02
|
нефига не понял, а причем здесь пользовательские поля и параметры? "НачалоПериода" и "КонецПериода" в пользовательские поля запихнуты что ли? Зачем?
|
|||
|
33
karlson85
20.05.10
✎
14:04
|
Чтобы юзеры могли задавать период
|
|||
|
34
Aprobator
20.05.10
✎
14:06
|
а параметры чем не катят?
|
|||
|
35
karlson85
20.05.10
✎
14:10
|
это и есть параметры
|
|||
|
36
Aprobator
20.05.10
✎
14:16
|
т.е. период добавляется в пользовательские поля через новое ПолеВыбор, а не параметр Запроса?
|
|||
|
37
Aprobator
20.05.10
✎
14:18
|
+(36) а сек - счас дочитаю )
|
|||
|
38
karlson85
20.05.10
✎
14:21
|
В запросе есть переменные НачалоПериода и КонецПериода, они попали в параметры, я их еще добавил в польз. настройки
|
|||
|
39
Aprobator
20.05.10
✎
14:28
|
а блин - увидел )
|
|||
|
40
Aprobator
20.05.10
✎
14:45
|
о - нашел:
соррь если че - я 8.2 можно сказать тока недели 2 юзаю - местами туплю. |
|||
|
41
Aprobator
20.05.10
✎
14:46
|
+40 пользовательские настройки тока щаз понял как работают и нафиг нужны ).
|
|||
|
42
karlson85
20.05.10
✎
15:09
|
угу, спасибо, все проблемы решены :)
|
|||
|
43
Aprobator
20.05.10
✎
15:11
|
и тебе спасибо - все таки мой скил в 8.2 чуть подрос ).
|
|||
|
44
karlson85
21.05.10
✎
16:52
|
(40) в веб клиенте валится с ошибкой :)
|
|||
|
45
Aprobator
24.05.10
✎
13:56
|
(44) Странно, в СП вроде никаких ограничений не прописано. Че пишет то хоть?
|
|||
|
46
karlson85
02.06.10
✎
09:51
|
(45)в 8.2.11.22 проблем не наблюдаю, в 8.2.10 выходила ошибку, не помню что писал
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |