При формировании отчета-таблицы через СКД мне потребовалось нумеровать колонки. Стандартного функционала для этого не нашел, поэтому сделал следующее:
- организовал программный вывод отчета (т.к. первоначально планировалось, что СКД все будет делать сама);
- "допилил" сформированный в ТабличныйДокумент отчет, заменив первые несколько строк на нужный мне макет шапки (благо СКД "фиксирует" шапку отчета сама, что позволяет определить ее высоту);
Процедура Сформировать(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина) Экспорт
Результат.Очистить();
ТабДокДанныеОтчета = Новый ТабличныйДокумент;
ЭтотОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки());
// Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
//
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.УстановитьДокумент(ТабДокДанныеОтчета);
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.Вывести(ПроцессорКомпоновки);
// Выводим свою шапку таблицы
ШапкаТаблицы = ЭтотОбъект.ПолучитьМакет("ШапкаТаблицы");
Результат.Вывести(Шапкатаблицы);
// Выводим данные отчета
ОблШапкаСКД = ТабДокДанныеОтчета.Область("R1:R" + ТабДокДанныеОтчета.ФиксацияСверху);
ТабДокДанныеОтчета.УдалитьОбласть(ОблШапкаСКД, ТипСмещенияТабличногоДокумента.ПоВертикали);
Результат.Вывести(ТабДокДанныеОтчета);
Результат.ФиксацияСверху = 2;
КонецПроцедуры
Так же на скрине отмечена область "Группировок СКД", выведенная на форму отчета. Чтобы не париться с организацией различный вариантов отчета, предлагаю делать сразу несколько веток в одном варианте. При этом для "включения" нужного варианта необходимо всего лишь "включить" головной узел нужной ветки и выключить все остальные головные узлы. При этом, даже если высота шапки будет изменяться, мы сможем вставить нужный нам макет шапки с нумерацией.
А почему не нарисовать макет самому вручную и не подменять программно шапку вообще? 😉
(1) Насколько это будет универсально?
(2)
Достаточно универсально.
В макете можно переопределить формат вывода всего макета, который создается СКД автоматически.
Для такой цели, как описано в данной публикации, использование макета — единственно красивый способ. Программно раскрашивать/изменять названия/менять шрифт некоторых полей, как мне кажется, не очень красиво, для этого ж и существует закладка Макет?
Хм, проблемка нарисовалась, границы колонок то съезжают, что-то не допру пока как это поправить(
http://clip2net.com/s/5M6WAe
Сделал как в 1м посте, программно конечно интереснее, но как их сопоставить не понятно.
(0) Вариант конечно, но не самый лучший 🙂
Выкладывать картинку за 1$m — это интересно, надо попробовать 🙂
(5) Видимо при изменениях сайта старая публикация конвертировалась в такую вот подставу 🙂
Тут вообще никаких вложений не может быть, т.к. весь сабж описан в тексте+скрины.