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