При формировании компактных отчетов с большим числом колонок и короткими данными (например, отметками, флагами или небольшими числами) возникает необходимость повернуть заголовки колонок вертикально. В схеме компоновки данных (СКД) платформы 1С:Предприятие часто возникает сложность: при изменении ориентации текста в свойствах поля оформление применяется не только к шапке, но и ко всем строкам с данными. Разберем практические способы, как повернуть исключительно заголовки колонок.
Проанализируем самый быстрый способ настройки без изменения структуры макета. Для того чтобы повернуть только заголовки колонок, воспользуемся вкладкой «Настройки» в СКД.
Выполним следующие шаги:
Ориентация текста и укажем значение 90 (текст снизу вверх) или 270 (текст сверху вниз).Ориентация текста со значением 0.Такой подход позволяет быстро настроить внешний вид отчета непосредственно в пользовательском режиме или в конфигураторе без доработки макетов.
Рассмотрим более надежный вариант, который исключает наследование оформления строками данных и позволяет полностью контролировать параметры ячеек шапки.
Ориентация текста укажем угол поворота 90 или 270 градусов.Использование макета заголовка изолирует оформление шапки: строки с данными гарантированно останутся с горизонтальной ориентацией текста без дополнительных правил в условном оформлении.
Если отчет формируется программно, ориентацию ячеек шапки можно задать после выполнения компоновки макета в результирующем табличном документе. Разберем пример кода модуля объекта отчета:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
// Получаем область шапки отчета и задаем вертикальную ориентацию
ОбластьШапки = ДокументРезультат.Область("R2C2:R2C10");
ОбластьШапки.ОриентацияТекста = 90;
ДокументРезультат.Строки[2].ВысотаСтроки = 120;
КонецПроцедуры
В этом примере после стандартного процесса вывода мы обращаемся к диапазону ячеек шапки через свойство ОриентацияТекста и явно фиксируем высоту строки через ВысотаСтроки.
При работе с вертикальным текстом в 1С важно учитывать следующие нюансы:
90 ориентирует текст снизу вверх, а значение 270 — сверху вниз. Для русскоязычных таблиц ориентация 270° зачастую читается легче при беглом просмотре колонок.ГоризонтальноеПоложение и ВертикальноеПоложение меняется местами относительно привычных осей ячейки.