вторник, 20 февраля 2018 г.

Программная смена схемы СКД

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

СхемаКомпоновкиДанных = ПолучитьМакет(?(Свернутый, "ОсновнаяСхемаКомпоновкиДанныхСвернутая", "ОсновнаяСхемаКомпоновкиДанных"));

КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Настройки = КомпоновщикНастроек.ПолучитьНастройки();

УстановитьПараметрСКД(Настройки, "НачалоПериода", ДатаНач);
УстановитьПараметрСКД(Настройки, "КонецПериода", ДатаКон);
УстановитьПараметрСКД(Настройки, "Организация", Организация);
УстановитьПараметрСКД(Настройки, "Статус", ВидЗадолженности);
УстановитьПараметрСКД(Настройки, "Менеджер", Менеджер);
УстановитьПараметрСКД(Настройки, "ТекущаяДата", ТекущаяДата());

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры

Процедура УстановитьПараметрСКД(Настройки, ИмяПараметра, Значение)

Параметр = Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
Если Параметр <> Неопределено Тогда
Параметр.Значение = Значение;
Параметр.Использование = Истина;
КонецЕсли;

КонецПроцедуры