|
Отображение параметров СКД отчета, созданного программно | ☑ | ||
---|---|---|---|---|
0
Dwarrior
12.12.16
✎
12:22
|
Здравствуйте уважаемые!
Собственно проблема - у формы документа есть макет типа "Схема компоновки данных". Программно загружаю его, задаю параметр запроса, формирую табличный документ, показываю. Отчет формируется верно, но значение параметра в отчете стоит "<Пустое значение>", хотя я его задал. Видимо что-то не так делаю. Вот код: СКД = Документы.ПеремещениеТоваров.ПолучитьМакет("СКДНоменклатураДокументов"); ПараметрДокументы = СКД.НастройкиПоУмолчанию.ПараметрыДанных.Элементы[0]; ПараметрДокументы.Значение = МассивДокументов; ПараметрДокументы.Использование = Истина; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,СКД.НастройкиПоУмолчанию); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ТабДок = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновки); Вот когда показываю ТабДок, в секция Параметры данных выглядит так: Параметры: Документы перемещения: <Пустое значение> |
|||
1
Dwarrior
12.12.16
✎
13:24
|
Кто знает СКД хорошо, подскажите пожалуйста:)
|
|||
2
bodri
12.12.16
✎
13:34
|
С чего вы взяли, что нужный параметр имеет индекс 0
пример обхода элементов параметров ПолеСклад = Новый ПолеКомпоновкиДанных("Склад"); Для каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если Элемент.ЛевоеЗначение = ПолеСклад Тогда ЭлементОтбора = Элемент; Прервать; КонецЕсли; КонецЦикла; Если ЭлементОтбора = Неопределено Тогда ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); КонецЕсли; ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ЛевоеЗначение = ПолеСклад; ЭлементОтбора.ПравоеЗначение = Отчет.Склад; ЭлементОтбора.Использование = ЗначениеЗаполнено(Отчет.Склад); |
|||
3
bodri
12.12.16
✎
13:38
|
(2) это пример отбора
пример параметра ЗначениеПараметраПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период")); Если ЗначениеПараметраПериод <> Неопределено Тогда ЗначениеПараметраПериод.Значение = ?(Отчет.Дата = '0001-01-01', Отчет.Дата, КонецДня(Отчет.Дата)); ЗначениеПараметраПериод.Использование = Истина; КонецЕсли; |
|||
4
bodri
12.12.16
✎
13:39
|
(0) не должно быть так:
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,СКД.НастройкиПоУмолчанию); |
|||
5
bodri
12.12.16
✎
13:40
|
+(4) вы заново передаете настройки по умолчанию
надо: Настройки = СКД.НастройкиПоУмолчанию; //установить настройки // а уже потом МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки); |
|||
6
mistеr
12.12.16
✎
13:59
|
(0) Так массив же у тебя, чего ты хотел? Используй СоединитьСтроки().
Задавать параметры можно проще: СКД.НастройкиПоУмолчанию.ПараметрыДанных.УстановитьЗначениеПараметра("Организация", Организация); |
|||
7
Dwarrior
12.12.16
✎
17:10
|
(2),(3) параметр точно один, проверено в отладчике. И это параметр запроса, а не отбор
(5) попробовал так - не помогает, все равно "Пустое значение" |
|||
8
Dwarrior
12.12.16
✎
17:11
|
+(7) Значение параметра точно задаю верно, тело отчета выводится правильное, только в секции вывода параметров почему-то Пустое значение
|
|||
9
Dwarrior
12.12.16
✎
17:15
|
(3) А где взять КомпоновщикНастроек? Это реквизит Отчета, но у меня самого отчета нет, у меня только СКД в макете
|
|||
10
EvgeniuXP
12.12.16
✎
19:51
|
(9) создай отчет, и загрузи СКД в него.
|
|||
11
EvgeniuXP
12.12.16
✎
19:53
|
а создать - у тебя два варианта - либо на форме создай, либо в пофигураторе.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |