Как выводить имена колонок по вертикали в СКД?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При формировании компактных отчетов с большим числом колонок и короткими данными (например, отметками, флагами или небольшими числами) возникает необходимость повернуть заголовки колонок вертикально. В схеме компоновки данных (СКД) платформы 1С:Предприятие часто возникает сложность: при изменении ориентации текста в свойствах поля оформление применяется не только к шапке, но и ко всем строкам с данными. Разберем практические способы, как повернуть исключительно заголовки колонок.

Способ 1. Настройка через условное оформление СКД

Проанализируем самый быстрый способ настройки без изменения структуры макета. Для того чтобы повернуть только заголовки колонок, воспользуемся вкладкой «Настройки» в СКД.

Выполним следующие шаги:

  1. Перейдем на вкладку «Настройки» схемы компоновки данных.
  2. Выберем корневой элемент отчета или конкретную таблицу/группировку, в которой требуется изменить отображение колонок.
  3. Перейдем на вкладку «Условное оформление» и добавим новый элемент оформления.
  4. В колонке «Оформление» активируем свойство Ориентация текста и укажем значение 90 (текст снизу вверх) или 270 (текст сверху вниз).
  5. В колонке «Оформляемые поля» выберем конкретные поля, для которых необходимо применить вертикальный заголовок.
  6. Если оформление применилось и к строкам детальных записей, перейдем на уровень вложенной группировки строк и в ее условном оформлении явно переопределим свойство Ориентация текста со значением 0.

Такой подход позволяет быстро настроить внешний вид отчета непосредственно в пользовательском режиме или в конфигураторе без доработки макетов.

Способ 2. Использование пользовательского макета поля в СКД

Рассмотрим более надежный вариант, который исключает наследование оформления строками данных и позволяет полностью контролировать параметры ячеек шапки.

  1. Откроем схему компоновки данных и перейдем на вкладку «Макеты».
  2. Нажмем кнопку «Добавить макет поля».
  3. В открывшемся окне укажем требуемое поле и выберем тип макета — «Заголовок».
  4. В табличном документе макета выделим ячейку заголовка и откроем палитру свойств.
  5. В свойстве Ориентация текста укажем угол поворота 90 или 270 градусов.
  6. При необходимости зададим точную высоту строки и параметры выравнивания текста.

Использование макета заголовка изолирует оформление шапки: строки с данными гарантированно останутся с горизонтальной ориентацией текста без дополнительных правил в условном оформлении.

Способ 3. Программная постобработка табличного документа

Если отчет формируется программно, ориентацию ячеек шапки можно задать после выполнения компоновки макета в результирующем табличном документе. Разберем пример кода модуля объекта отчета:


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

В этом примере после стандартного процесса вывода мы обращаемся к диапазону ячеек шапки через свойство ОриентацияТекста и явно фиксируем высоту строки через ВысотаСтроки.

Особенности и ограничения платформы

При работе с вертикальным текстом в 1С важно учитывать следующие нюансы:

  1. Выбор угла (90° против 270°): Значение 90 ориентирует текст снизу вверх, а значение 270 — сверху вниз. Для русскоязычных таблиц ориентация 270° зачастую читается легче при беглом просмотре колонок.
  2. Автовысота строк: Механизм автоматического расчета высоты строки табличного документа 1С не всегда корректно рассчитывает габариты повернутого текста. Если текст обрезается, следует явно задать фиксированную высоту строки в макете или кодом.
  3. Инверсия выравнивания: При повороте текста на 90° или 270° визуальное поведение свойств ГоризонтальноеПоложение и ВертикальноеПоложение меняется местами относительно привычных осей ячейки.
  4. Отображение в веб-клиенте: В веб-клиенте рендеринг повернутого текста выполняется средствами браузера, поэтому рекомендуется визуально проверять итоговую ширину и высоту колонок в целевом веб-браузере.
← На главную