Доброго времени суток, есть отчет СКД с двумя макетами, по кнопке "Сформировать" выполняется следующий код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ОстаткиРеализации Тогда
МакетОстаткиРеализаций = ПолучитьМакет("ОстаткиРеализаций");
Настройки = МакетОстаткиРеализаций.НастройкиПоУмолчанию;
Настройки.ПараметрыДанных.Элементы[0].Значение = КонецДня(НаДату);
Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
Настройки.Отбор.Элементы[0].ВидСравнения = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ВидСравнения;
Настройки.Отбор.Элементы[0].ПравоеЗначение = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение;
Настройки.Отбор.Элементы[0].Использование = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование;
Настройки.Отбор.Элементы[1].ВидСравнения = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].ВидСравнения;
Настройки.Отбор.Элементы[1].ПравоеЗначение = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].ПравоеЗначение;
Настройки.Отбор.Элементы[1].Использование = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].Использование;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(МакетОстаткиРеализаций, Настройки,ДанныеРасшифровки,,,,);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки,);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.ОтображатьПроцентВывода = Истина;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ИначеЕсли РасчетныеДанныеПоФючерсамЗаПериод Тогда
МакетРасчетныеДанныеПоФьючерсамЗаПериод = ПолучитьМакет("РасчетныеДанныеПоФьючерсамЗаПериод");
Настройки = МакетРасчетныеДанныеПоФьючерсамЗаПериод.НастройкиПоУмолчанию;
Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоДня(СДаты);
Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
Настройки.ПараметрыДанных.Элементы[1].Значение = КонецДня(ПоДату);
Настройки.ПараметрыДанных.Элементы[1].Использование = Истина;
Настройки.Отбор.Элементы[0].ВидСравнения = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ВидСравнения;
Настройки.Отбор.Элементы[0].ПравоеЗначение = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение;
Настройки.Отбор.Элементы[0].Использование = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(МакетРасчетныеДанныеПоФьючерсамЗаПериод, Настройки,ДанныеРасшифровки,,,,);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки,);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.ОтображатьПроцентВывода = Истина;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецЕсли;
КонецПроцедуры
Вот что происходит на форме:
Процедура Переключатель1ПриИзменении(Элемент)
Если Переключатель1 = 0 Тогда
ОстаткиРеализации = Истина;
ЭлементыФормы.НадписьНаДату.Видимость = Истина;
ЭлементыФормы.ПолеВводаДатаОстаткиРеализации.Видимость = Истина;
ЭлементыФормы.НадписьДатаНачала.Видимость = Ложь;
ЭлементыФормы.ПолеВводаСДаты.Видимость = Ложь;
ЭлементыФормы.ПолеВводаСДаты.Значение = Неопределено;
СДаты = Неопределено;
ЭлементыФормы.НадписьДо.Видимость = Ложь;
ЭлементыФормы.ПолеВводаПоДату.Видимость = Ложь;
ЭлементыФормы.ПолеВводаПоДату.Значение = Неопределено;
ПоДату = Неопределено;
РасчетныеДанныеПоФючерсамЗаПериод = Ложь;
МакетОстаткиРеализации = ПолучитьМакет("ОстаткиРеализаций");
НастройкиПоУмолчанию = МакетОстаткиРеализации.НастройкиПоУмолчанию;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиПоУмолчанию);
ИначеЕсли Переключатель1 = 1 Тогда
ОстаткиРеализации = Ложь;
ЭлементыФормы.НадписьНаДату.Видимость = Ложь;
ЭлементыФормы.ПолеВводаДатаОстаткиРеализации.Видимость = Ложь;
ЭлементыФормы.ПолеВводаДатаОстаткиРеализации.Значение = Неопределено;
НаДату = Неопределено;
ЭлементыФормы.НадписьДатаНачала.Видимость = Истина;
ЭлементыФормы.ПолеВводаСДаты.Видимость = Истина;
ЭлементыФормы.НадписьДо.Видимость = Истина;
ЭлементыФормы.ПолеВводаПоДату.Видимость = Истина;
РасчетныеДанныеПоФючерсамЗаПериод = Истина;
//Подставить ОТБОР
МакетРасчетныеДанныеПоФьючерсамЗаПериод = ПолучитьМакет("РасчетныеДанныеПоФьючерсамЗаПериод");
НастройкиПоУмолчанию = МакетРасчетныеДанныеПоФьючерсамЗаПериод.НастройкиПоУмолчанию;
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиПоУмолчанию);
КонецЕсли;
КонецПроцедуры
Как я понимаю, то данные расшифроке беруться из основного макета, а как их можно передать после того как я сменил макет програмно?