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