0
Web00001
01.08.13
✎
05:13
|
Есть такой вот код:
СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
СтруктураПараметров = Новый Структура();
СтруктураПараметров.Вставить("НачалоПериода", НачалоДня(Дата));
СтруктураПараметров.Вставить("КонецПериода",КонецДня(Дата));
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
ФормаОтчета = ПолучитьФорму("ФормаОтчета");
ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ФормаОтчета.ЭлементыФормы.ПолеТабличногоДокумента1, СхемаКомпоновкиДанных.НастройкиПоУмолчанию, СтруктураПараметров, Расшифровка);
ФормаОтчета.ОбработчикРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(Расшифровка, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ФормаОтчета.Открыть();
Процедура ПолучитьДанныеНаОснованииСКД(СКД, ОбъектДляЗагрузки, ИсполняемыеНастройки = Неопределено, СтруктураПараметров = Неопределено, РасшифровкаСКД = Неопределено, МакетКомпоновки = Неопределено, ВнешниеНаборыДанных = Неопределено) Экспорт
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда
ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанных");
Иначе
ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений");
КонецЕсли;
Если ИсполняемыеНастройки = Неопределено Тогда
ИсполняемыеНастройки = СКД.НастройкиПоУмолчанию;
КонецЕсли;
Если СтруктураПараметров <> Неопределено Тогда
КоллекцияЗначенийПараметров = ИсполняемыеНастройки.ПараметрыДанных.Элементы;
Для каждого Параметр Из СтруктураПараметров Цикл
НайденноеЗначениеПараметра = КоллекцияЗначенийПараметров.Найти(Параметр.Ключ);
Если НайденноеЗначениеПараметра <> Неопределено Тогда
НайденноеЗначениеПараметра.Использование = Истина;
НайденноеЗначениеПараметра.Значение = Параметр.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
МакетКомпоновкиСКД = КомпоновщикМакета.Выполнить(СКД, ИсполняемыеНастройки, РасшифровкаСКД, МакетКомпоновки, ТипГенератора);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиСКД, ВнешниеНаборыДанных, РасшифровкаСКД);
Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ОбъектДляЗагрузки);
Иначе
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ОбъектДляЗагрузки);
КонецЕсли;
ПроцессорВывода.ОтображатьПроцентВывода = Истина;
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
КонецПроцедуры
В макете лежит схема компоновки данных. И так то все ок, это работает в отдельной обработке для расшифровки движений по выбранному товару, добавил в форму документа этот код и почему то коллекция параметров пустая. В чем тут может быть дело?
|
|