1С СКД свой макет вывода

 

Задача:

Сделать свой макет скд вместо стандартного

Решение:

Создадим простейший отчет СКД.

1

тут сразу уберем галочку:

2

 

Создадим свой макет СКД (макет оформления компановки данных):

3

создать макет оформления компоновки данных 1С 

Загрузим в макет стандартный макет и чуть чуть его подправим:

создать макет СКД

 Изменим фон заголовков:

изменить макет скд

я еще поправил цвет шрифта группировок

 

Теперь нужно его как-то загрузить....


Идем в модуль объекта нашего отчета и создаем предопределенную процедуру "ПриКомпоновкеРезультата"

В нее пишем такой код:

 

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ПользовательскиеНастройкиМодифицированы = Ложь;
	
	
	// Сформируем отчет
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
	
	ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос;   //не нужно если не менять текст запроса
//тут можно изменить запрос

	СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;	 //не нужно если не менять текст запроса

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

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

	ПроцессорВывода.Вывести(ПроцессорКомпоновки);

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

 

 Результат:

свой макет оформления компоновки данных в 1С