|   |   | 
| 
 | Задание динамических параметров в СКД | ☑ | ||
|---|---|---|---|---|
| 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) Ну он и так видит настройки, они заданы ранее.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |