Предположим есть отчет на СКД со следующей структурой:

Необходимо заголовки колонок «Месяц» объединить в одну ячейку:

Для того, чтобы привести отчет к такому виду, была выполнена пост-обработка в процедуре «ПриКомпоновкеРезультата». А именно, после того как мы вывели отчет в табличный документ, обходим нужные области в цикле и объединяем в процедуре ОбъединитьЯчейкиВТабличномДокументе().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; //Макет компоновки КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки); //Компоновка данных ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); //Вывод результата ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ОбъединитьЯчейкиВТабличномДокументе(ДокументРезультат); КонецПроцедуры Процедура ОбъединитьЯчейкиВТабличномДокументе(ДокументРезультат) КоличествоКолонокВМесяце = 5; // 4-и ресурса + 1 итоги НачальнаяКолонкаРесурсов = 2; НомерСтрокиЗагаловка = 3; Сч = НачальнаяКолонкаРесурсов; Пока Сч < ДокументРезультат.ШиринаТаблицы Цикл ДокументРезультат.Область(НомерСтрокиЗагаловка, Сч, НомерСтрокиЗагаловка, Сч+КоличествоКолонокВМесяце-1).Объединить(); Сч = Сч + КоличествоКолонокВМесяце; КонецЦикла; КонецПроцедуры |
Переменные: КоличествоКолонокВМесяце, НачальнаяКолонкаРесурсов и НомерСтрокиЗагаловка заполняются исходя из структуры отчета.
