|
СКД, программное заполнение и доступные поля отбора | ☑ | ||
---|---|---|---|---|
0
Весенняя Мелисса
05.12.12
✎
15:23
|
Создаю СКД программно с набором данных с типом запрос. Все хорошо, но... не получается настроить последующий интерактивный отбор по полям созданной СКД, т.е. при выборе в пользовательском режиме отбора доступные поля пустые. Давно уже обходила данную проблему, когда программное заполнение СКД запускала в теле модуля объекта. Но, теперь задача в изменении текста СКД уже после отработки тела модуля объекта, при интерактивном изменении параметров пользователем... Смотрю компоновщик настроек - ДоступныеПоляОтбора пустые, заполнить программно их нельзя, смотрю основной вариант настроек СКД, нужные поля заполнились, ограничений на отбор нет. Как сделать?
|
|||
1
Wobland
05.12.12
✎
15:26
|
что такое текст СКД?
|
|||
2
Wobland
05.12.12
✎
15:27
|
и почему без фото?
|
|||
3
Весенняя Мелисса
05.12.12
✎
15:29
|
(2) изменение текста запроса СКД, т.е. текст запроса набора данных СКД изменяется динамически после определенных действий пользователя.
|
|||
4
Весенняя Мелисса
05.12.12
✎
15:34
|
все необходимые действия с компоновщиком - инициализацию, загрузку настроек, восстановление естественно делаю. Проблема такая у меня уже была, делала программное заполнение СКД в теле модуля объекта, но в этот раз так не получится.
|
|||
5
Весенняя Мелисса
05.12.12
✎
15:46
|
управляемая форма на 8.2
|
|||
6
samozvanec
05.12.12
✎
16:02
|
включить отбор в пользовательские настройки, не?
|
|||
7
samozvanec
05.12.12
✎
16:04
|
доступные поля пустые - а в наборе-то эти поля для условий доступны вобще?
|
|||
8
Defender aka LINN
05.12.12
✎
16:06
|
(4) "все необходимые действия с компоновщиком - инициализацию, загрузку настроек, восстановление естественно делаю" - неправильно делаешь
|
|||
9
Весенняя Мелисса
05.12.12
✎
16:08
|
(8) почему неправильно?
(7) в наборе доступны, ограничений нет. |
|||
10
Defender aka LINN
05.12.12
✎
16:10
|
(9) Потому что если делать правильно, то все работает
|
|||
11
Весенняя Мелисса
05.12.12
✎
16:10
|
(6) с отключенным признаком использования все возможные поля в отбор? можно конечно, но некрасиво как то.
|
|||
12
Весенняя Мелисса
05.12.12
✎
16:10
|
(10) ну это понятно. только вот точно работает то?
|
|||
13
yurec_k
05.12.12
✎
16:12
|
инициализируешь так? :
АдресСхемы = ПоместитьВоВременноеХранилище(Схема); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы)); |
|||
14
Defender aka LINN
05.12.12
✎
16:17
|
(12) Ну, давай сюда руки, буду рвать плоскогубцами ногти и зубы, пока не сознаешься и не выдашь хоть строчку кода, хрустальный шар я дома забыл.
|
|||
15
Весенняя Мелисса
05.12.12
✎
16:20
|
(13) нет не так.... я вообще это в процедуре на сервере делаю без всяких временных хранилищ
(14) КНастроек.Инициализировать(Новый источникдоступныхнастроеккомпоновкиданных(СКД)); КНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); КНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное); КнНастроек - реквизит на форме с типом КомпоновщикНастроек |
|||
16
Весенняя Мелисса
05.12.12
✎
16:21
|
по СКД - все отлично формируется. а вот с компановщиком - беда, с интерактивным отбором.
|
|||
17
Defender aka LINN
05.12.12
✎
16:24
|
(15) Ну вот тебе и ответ
|
|||
18
Весенняя Мелисса
05.12.12
✎
16:25
|
(17) надо с разделением на сервер и клиент и с помещением во временное хранилище? в этом ответ?
|
|||
19
yurec_k
05.12.12
✎
16:28
|
создавай в коде новый объект компоновщик настроек
инициализируй как в (13) (иначе не взлетит) загружай настройки как у тебя в коде и КнНастроек = КомпоновщикНастроек ------ все что выше на сервере работате |
|||
20
Весенняя Мелисса
05.12.12
✎
16:29
|
(19) сейчас попробую
|
|||
21
yurec_k
05.12.12
✎
16:29
|
недавно эту песню делал
|
|||
22
Весенняя Мелисса
06.12.12
✎
12:51
|
Не соображаю с этими управляемыми формами, а вернее не понимаю "оптимальное клиент-серверное взаимодействие" управляемых форм. Я СКД создаю в процедуре на сервере, потому что она на сервере только и работает. Есть реквизит на форме с типом КомпоновщикНастроек. Если я инициализирую КомпоновщикНастроек на сервере, то доступные поля отбора заполнены правильно. Вот как мне передать такой же "хороший и правильный" компоновщик в этот реквизит на форме. Поместить во временное хранилище этот компоновщик на сервере, потом получить из временного хранилища на клиенте и присвоить этому реквизиту с типом компоновщик настроек - ДоступныеНастройкиОтбора компоновщика сразу на клиенте исчезают. Ну как это делается? правильно?
|
|||
23
yurec_k
06.12.12
✎
13:06
|
Вот рабочий код из модуля формы (на которую вытащено таб поле с пользовательскими настройки не основной СКД отчета) отчета:
&НаСервере Процедура УстановитьФишку() // ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); Схема = ОтчетОбъект.ПолучитьМакет("Схема"); Настройки = Схема.ВариантыНастроек.Основной.Настройки; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; АдресСхемы = ПоместитьВоВременноеХранилище(Схема); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы)); КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); КомпановщикНастроекНаФорме = КомпоновщикНастроек; КонецПроцедуры эта процедура вызывается например при установке флажка последней строчкой в процедуре делается " ... как мне передать такой же "хороший и правильный" компоновщик в этот реквизит на форме..." , и после этой строчки смотри в отладчике свои уже любимые доступные поля отбора у КомпановщикНастроекНаФорме или в твоем сл КнНастроек (если не ОК проверь правильно ли загрузились настройки), и иди дальше отладчиком смотри где эта хрень слетает |
|||
24
Весенняя Мелисса
06.12.12
✎
13:22
|
(23) Спасибо огромное. Так все заработало.
|
|||
25
ПиН
06.12.12
✎
13:22
|
(24) фото не забудьте, а то не порядок...
|
|||
26
yurec_k
06.12.12
✎
13:43
|
(25) екрны, вчера же была, с цветочками
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |