При разработке отчетов на базе системы компоновки данных (СКД) разработчики часто сталкиваются с ситуацией, когда стандартное условное оформление с областью применения «В заголовке полей» корректно меняет шрифт или фон шапки в одних конфигурациях (например, на базе современных версий БСП), но полностью игнорируется в устаревших конфигурациях (таких как УПП 1.2 или УПП 1.3), несмотря на запуск на современной версии платформы 1С:Предприятие 8.3.
Разберем подробно причины такого поведения платформы и проанализируем основные способы настройки внешнего вида шапки таблицы.
Возможность раздельного управления областью применения условного оформления (флаги «В заголовке полей», «В строках», «В подвале») появилась в платформе 1С начиная с версий 8.3. Если в конфигурации включен Режим совместимости с версией 8.2.13 (или ниже), процессор компоновки данных переключается на работу по алгоритмам платформы 8.2:
Рассмотрим рабочие способы решения данной задачи в условиях режима совместимости.
Наиболее надежный способ оформить шапку отчета без нарушения типового механизма компоновки — явное создание макета в схеме компоновки данных. Разберем по шагам, как это настроить:
При таком подходе процессор вывода компоновки данных гарантированно возьмет созданный макет для заголовка независимо от режима совместимости конфигурации.
Если требуется применить единый стиль ко всем заголовкам отчета, эффективным решением будет создание собственного макета оформления:
Заголовок и ШапкаТаблицы (зададим необходимые параметры шрифта и заливки).Иногда перекрытие стилей происходит из-за наложения встроенного макета оформления 1С. Проверим следующий вариант:
В этом случае платформа не будет принудительно окрашивать и форматировать шапку таблицы стандартными стилями, что может позволить пользовательским настройкам примениться к отчету.
Если отчет выводится программно через модуль объекта отчета или форму, можно применить форматирование к ячейкам результирующего табличного документа после завершения вывода компоновки. Посмотрим на пример кода:
// Создаем объекты для компоновки данных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ТабличныйДокумент.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
// Программное оформление шапки отчета
// Предположим, что заголовок находится во 2-й строке
ОбластьШапки = ТабличныйДокумент.Область("R2");
ОбластьШапки.Шрифт = Новый Шрифт(ОбластьШапки.Шрифт,,, Истина); // Устанавливаем жирный шрифт
Если помимо оформления шрифта требуется изменить стандартные наименования колонок (чтобы выводились пользовательские названия вместо системных имен полей базы данных), выполним следующие действия: