Каталог решений - Нумерация колонок таблицы (при формировании через СКД)

Нумерация колонок таблицы (при формировании через СКД)

Нумерация колонок таблицы (при формировании через СКД)

В наличии

При формировании таблицы через СКД бывает необходимо пронумеровать колонки. Привожу один из возможных вариантов решения.

Категория:

Описание

При формировании отчета-таблицы через СКД мне потребовалось нумеровать колонки. Стандартного функционала для этого не нашел, поэтому сделал следующее:

  • организовал программный вывод отчета (т.к. первоначально планировалось, что СКД все будет делать сама);
  • "допилил" сформированный в ТабличныйДокумент отчет, заменив первые несколько строк на нужный мне макет шапки (благо СКД "фиксирует" шапку отчета сама, что позволяет определить ее высоту);

Процедура Сформировать(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина) Экспорт

Результат.Очистить();

ТабДокДанныеОтчета = Новый ТабличныйДокумент;

ЭтотОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки());

// Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, ЭтотОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

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

// Выводим свою шапку таблицы
ШапкаТаблицы = ЭтотОбъект.ПолучитьМакет("ШапкаТаблицы");
Результат.Вывести(Шапкатаблицы);

// Выводим данные отчета
ОблШапкаСКД = ТабДокДанныеОтчета.Область("R1:R" + ТабДокДанныеОтчета.ФиксацияСверху);
ТабДокДанныеОтчета.УдалитьОбласть(ОблШапкаСКД, ТипСмещенияТабличногоДокумента.ПоВертикали);
Результат.Вывести(ТабДокДанныеОтчета);
Результат.ФиксацияСверху = 2;

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

Так же на скрине отмечена область "Группировок СКД", выведенная на форму отчета. Чтобы не париться с организацией различный вариантов отчета, предлагаю делать сразу несколько веток в одном варианте. При этом для "включения" нужного варианта необходимо всего лишь "включить" головной узел нужной ветки и выключить все остальные головные узлы. При этом, даже если высота шапки будет изменяться, мы сможем вставить нужный нам макет шапки с нумерацией.

has been added to your cart:
Оформление заказа