Имя: Пароль:
1C
1С v8
УФ КомпоновщикНастроекКомпоновкиДанных, отбор на форме
,
0 Djoko
 
19.06.14
11:23
Добрый день!

Есть необходимость вывести на форму таблицу с произвольными отборами. В толстом клиенте реализовал  через построитель отчета. В тонком начал пробовать через КомпоновщикНастроекКомпоновкиДанных. Создал реквизит КомпоновщикНКД с типом КомпоновщикНастроекКомпоновкиДанных, на форму вывел таблицу, с данными из  КомпоновщикНКД.Настройки.Отбор.  Далее запускаю код, который должен(по крайней мере мне бы это хотелось) для произвольного текста запроса заполнить настройки компановщика, и на форме можно было добавить отборы, по доступным полям.

&НаКлиенте
Процедура ЗаполнитьНастройки(Команда)
    СтрокаКд = ЗаполнитьМакетНаСервере();
    Отчет.КомпоновщикНКД.ЗагрузитьНастройки(ПолучитьИзВременногоХранилища(СтрокаКд));
КонецПроцедуры

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


Подскажите, пожалуйста, ЧЯДН? Или как можно ещё реализовать в УФ отборы на форме?
1 Djoko
 
19.06.14
14:09
Знатоки управляющих форм, тут же наверняка есть такие, не проходите мимо, подскажите!
2 ironkrab
 
19.06.14
14:20
Не совсем понял что за таблица, для чего. Чем не подходит динамический список.
Или в эту таблицу пользователь вводит данные?
3 Djoko
 
19.06.14
14:33
Немного не точно написал, в первом посте: Таблица не с данными, а именно таблица в которой пользователи настраивают отборы, как в скд.
Т.е. еслив форме отчета у Тз в данных указать компоновщик настроек.Настройка.отбор, то в таблице можно будет настраивать отборы для этого отчета. Мне нужно так же, но для произвольного запроса.
4 banco
 
19.06.14
14:34
(0)пробуй так
URLСхемы = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор());
Отчет.КомпоновщикНКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));
5 banco
 
19.06.14
14:38
(0) и эти две строки лишнее
Возврат ПоместитьВоВременноеХранилище(Отчет.КомпоновщикНКД.ПолучитьНастройки());

Отчет.КомпоновщикНКД.ЗагрузитьНастройки(ПолучитьИзВременногоХранилища(СтрокаКд));
6 ironkrab
 
19.06.14
14:42
(3) Если (4)и (5) не поможет, тогда глянь, как реализована консоль запросов для УФ, там такое вроде есть...
7 Djoko
 
19.06.14
14:45
(4) спасибо, помогло!:)

Теперь меня мучает другой вопрос, почему вариант

Отчет.КомпоновщикНКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));

инициализирует настройки на сервере, но на клиент возвращается пустой, а

URLСхемы = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор());
Отчет.КомпоновщикНКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));

инициализирует настройки и на сервере и на клиенте:)

По истине, "дьявол кроется в деталях." ©
8 blopp
 
19.06.14
14:49
(7) Потому что схема компоновки данных не реализована на клиенте -> не может быть туда передана -> невозможно и создать / передать на клиента источник доступных настроек на основе схемы.
9 blopp
 
19.06.14
14:51
в дополнение к (8)
Ну а источник на временном хранилище есть и на клиенте и на сервере.
10 Djoko
 
19.06.14
15:04
(8) Спасибо за пояснение!
Основная теорема систематики: Новые системы плодят новые проблемы.