Программное создание структуры отчета на СКД
ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
ТекНастройкиКомпоновщика.Структура.Очистить();
//добавить группировку
ГруппировкаПоСкладу = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаПоСкладу.Имя = "Склад";
ГруппировкаПоСкладу.Использование = Истина;
//созданная группировка по полю "Склад"
ПолеГруппировкиСклад = ГруппировкаПоСкладу.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировкиСклад.Использование = Истина;
ПолеГруппировкиСклад.Поле = Новый ПолеКомпоновкиДанных("Склад");
ПолеГруппировкиСклад.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
ПолеГруппировкиСклад.ТипДополнения = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;
//добавить выводимые поля в группировке: склад и количество остаток для данной группировки
ВыбранноеПоле = ГруппировкаПоСкладу.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Склад");
ВыбранноеПоле = ГруппировкаПоСкладу.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
//добавим детальные записи как подгруппу в "Склад". Все отличие только в том, что нет группировки
ДетальныеЗаписи = ГруппировкаПоСкладу.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Имя = "Детальные";
ДетальныеЗаписи.Использование = Истина;
//добавить выводимые поля в детальных записях: Номенклатуру и количество остаток
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");