При разработке интерфейсов документов и справочников в 1С разработчики часто сталкиваются с ситуацией, когда название колонки таблицы состоит из нескольких длинных слов (например, «Выручка безнал» или «Сумма взаиморасчетов без НДС»). Если оставить заголовок в одну строку, колонка занимает слишком много полезного пространства на форме либо ее текст обрезается. Разберем по шагам, как настроить многострочный заголовок колонки табличной части в платформе 1С:Предприятие.
Проанализируем механику работы таблиц в платформе 1С. По умолчанию для любого элемента формы типа Таблица свойство ВысотаШапки установлено в значение 1. При такой настройке заголовок таблицы физически ограничен одной строкой. Даже если разработчик вставляет символ переноса строки в текст заголовка, платформа просто заменяет его на пробел либо обрезает нижнюю часть текста.
Следовательно, для реализации многострочного названия необходимо выполнить два обязательных условия:
Рассмотрим порядок настройки через редактор формы в среде «1С:Предприятие»:
ВысотаШапки (в управляемых формах он находится в группе свойств «Расположение» / «Отображение шапки»). Установим значение 2 (или более, в зависимости от требуемого числа строк).Заголовок.Посмотрим на пример установки заголовка в коде модуля формы. Допустим, нам необходимо сформировать заголовок динамически при открытии формы или при изменении параметров документа.
Обратите внимание: обращение к элементам формы в управляемом интерфейсе всегда выполняется через коллекцию Элементы. Символ переноса строки задается системным перечислением Символы.ПС.
Пример кода в процедуре ПриСозданииНаСервере:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Увеличиваем высоту шапки таблицы (если не задано в свойствах)
Элементы.Товары.ВысотаШапки = 2;
// Задаем заголовок конкретной колонки с принудительным переносом
Элементы.ТоварыВыручкаБезнал.Заголовок = "Выручка" + Символы.ПС + "Безнал";
КонецПроцедуры
Разберем еще один удобный механизм управляемых форм. Если для таблицы задано свойство ВысотаШапки = 2, а в названии колонки присутствуют пробелы или дефисы, платформа умеет автоматически переносить слова при недостатке ширины.
Для активации автоматического переноса достаточно:
ВысотаШапки больше 1.Ширина или МаксимальнаяШирина, при котором длинный заголовок не помещается в одну строку.Важное ограничение: если название колонки представляет собой одно длинное сплошное слово без разделителей, автоматический перенос платформой не выполняется. В таком случае требуется только явная вставка Символы.ПС (или Shift + Enter в Конфигураторе).
Если в табличной части много колонок и увеличение высоты всей шапки делает таблицу слишком громоздкой, рассмотрим альтернативные решения:
ГруппаКолонок, установим для нее вид отображения В шапке и поместим связанные колонки внутрь. Это позволит создать общий верхний заголовок группы (например, «Выручка») и короткие заголовки внизу («Нал», «Безнал»).Подсказка. Текст подсказки будет отображаться пользователю при наведении курсора мыши.