|
Задание динамических параметров в СКД | ☑ | ||
---|---|---|---|---|
0
chingiz
22.08.11
✎
14:00
|
В общем выполняю учебное задание. Цель - создать динамически изменяющийся запрос на основании кол-ва характеристик номенклатуры и потом подменить его в скд.
Запрос написал, в скд сделал заполнение параметров(в отладчике видно, что заполняет). Но почему-то он их в итоге не заполняет, чего-то еще не хватает. Вот выкладка куска кода по настройке скд. СхемаКомпоновкиДанных = Отчеты.СКД_СвойстваНоменклатуры.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1; НаборДанных.Запрос= "ВЫБРАТЬ РАЗЛИЧНЫЕ | ЗначенияСвойствНоменклатуры.НаборСвойств КАК НаборСвойств " +ВремПоля+ "ИЗ | РегистрСведений.ЗначенияСвойствНоменклатуры КАК ЗначенияСвойствНоменклатуры"+ ВремЗапрос; Настройки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); НомерТекПеременной = 0; Выборка.Сбросить(); Пока Выборка.Следующий() Цикл НомерТекПеременной = НомерТекПеременной + 1; ТекПеременнаяИмени = "ВидСвойства" + НомерТекПеременной; Параметр = Настройки.ПараметрыДанных.Элементы.Найти(ТекПеременнаяИмени); Если Параметр=Неопределено Тогда Параметр=Настройки.ПараметрыДанных.Элементы.Добавить(); параметр.Параметр=Новый ПараметрКомпоновкиДанных(ТекПеременнаяИмени); КонецЕсли; Параметр.Использование=Истина; Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ТекПеременнаяИмени, Выборка.Ссылка); КонецЦикла; Настройки = КомпоновщикНастроек.Настройки; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки); ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ЭлементыФормы.Результат.Очистить(); ДокументРезультат=ЭлементыФормы.Результат; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ДокументРезультат.ОтображатьСетку=Ложь; ДокументРезультат.ОтображатьЗаголовки=Ложь; ДокументРезультат.Показать(); |
|||
1
chingiz
22.08.11
✎
14:27
|
Точнее сказать при вывыводе отчета выдает ошибку, что параметр не задан. Помогите, уже пол дня бьюсь!
|
|||
2
jump if zero
22.08.11
✎
14:47
|
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ТекПеременнаяИмени);
|
|||
3
chingiz
22.08.11
✎
15:31
|
Разрешилось использованием параметровсхемыданных в цикле выборки вместо параметров компоновки
ПараметрСхемы = СхемаКомпоновкиДанных.Параметры.Добавить(); ПараметрСхемы.Имя = ТекПеременнаяИмени; ПараметрСхемы.Заголовок = ТекПеременнаяИмени; ПараметрСхемы.Значение = Выборка.Ссылка; ПараметрСхемы.ОграничениеИспользования = Истина; И все работает как надо, только настройки вывода подпилить осталось. |
|||
4
chingiz
22.08.11
✎
15:32
|
(2) Ну он и так видит настройки, они заданы ранее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |