|
Передача параметра в СКД програмно | ☑ | ||
---|---|---|---|---|
0
AlexGS87
29.05.13
✎
14:37
|
Процедура Кнопка1Нажатие(Элемент)
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Из схемы возьмем настройки по умолчанию Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); //Очищаем поле табличного документа Результат = ЭлементыФормы.Результат; Результат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ; КонецПроцедуры Процедура ПриОткрытии() ЗначениеПараметраТара = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Тара")); Если ЗначениеПараметраТара <> Неопределено Тогда ЗначениеПараметраТара.Значение = Справочники.Номенклатура.НайтиПоКоду("0000019") ; ЗначениеПараметраТара.Использование = Истина; КонецЕсли; КонецПроцедуры В результате вылетает ошибка: {Отчет.Отчет2.Форма.ФормаОтчета.Форма(30)}: Ошибка при вызове метода контекста (Вывести) ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); по причине: Ошибка вывода результата по причине: Ошибка при выводе результата по причине: Ошибка получения данных по причине: Ошибка создания набора данных "НаборДанных1" по причине: Ошибка при исполнении запроса набора данных по причине: {(7, 69)}: Не задано значение параметра "тара" Интек_ОборотыТарыПоставщикиОстаткиИОбороты.Номенклатура.Родитель = <<?>>&тара Текст запроса ВЫБРАТЬ ОборотыТарыПоставщикиОстаткиИОбороты.Номенклатура ИЗ РегистрНакопления.Интек_ОборотыТарыПоставщики.ОстаткиИОбороты КАК ОборотыТарыПоставщикиОстаткиИОбороты ГДЕ ОборотыТарыПоставщикиОстаткиИОбороты.Номенклатура.Родитель = &тара При виводе без параметра все работает. Как исправить даную ситуацию. Спасибо. |
|||
1
mikecool
29.05.13
✎
14:38
|
если тара - предопределенный элемент, то задай значение на закладке параметры
|
|||
2
AlexGS87
29.05.13
✎
14:43
|
Дело в том что это я для примера взял один параметр, для того чтобы разобратся как всё этоработает. В реальной задаче у меня 4-5 параметров будет, которые будут вводится пользователем с формы.
|
|||
3
mikecool
29.05.13
✎
14:47
|
(2) тогда к каждому условию добавлять ИЛИ &Параметр = &ПустоеЗначениеТипаПараметр
или пользоваться отборами |
|||
4
AlexGS87
29.05.13
✎
14:54
|
Не понятная ситуация почему когда без параметров запрос тогда отчет виполняется (ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ), а если есть параметры , то на этой строчке вылетает
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ? |
|||
5
AlexGS87
29.05.13
✎
14:56
|
Если можно то маленький примерчик для передачи параметра при программном создании отчета.
|
|||
6
Kreont
29.05.13
✎
15:01
|
Да вроде так же в коде в ПриОткрытии:
КомпоновщикНастроек.Инициализировать(Неопределено); КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = Склад; КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование = Истина; А может не работает, поскольку потом загрузку настроек еще раз делаешь строкой: Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; |
|||
7
AlexGS87
29.05.13
✎
15:07
|
Спасибо, сейчас попробую
|
|||
8
AlexGS87
29.05.13
✎
15:39
|
Kreont, спасибо за подсказку. Дело действительно было в том что настройки передавались по умолчанию, без заполненых параметров.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |