Как добавить произвольный текст под заголовком колонки в таблице 1С?

Программист IT и автоматизация бизнеса
← На главную

В процессе разработки интерфейсов на управляемых формах 1С часто возникает задача разместить дополнительную пояснительную информацию в шапке таблицы. Например, под названием колонки "Сумма" нужно дописать "(в рублях)" или под колонкой "Номенклатура" указать "артикул + наименование". Основная сложность заключается в том, чтобы сделать это аккуратно, сохранив "плоскую" структуру данных, когда одна строка в таблице соответствует одной физической строке на экране, без лишнего нагромождения уровней шапки.

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

Способ 1. Программный перенос строки (Наиболее изящный метод)

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

Для реализации этого метода выполним следующие действия:

  1. В модуле формы, в процедуре ПриСозданииНаСервере, пропишем программную установку заголовка.
  2. Используем системную константу Символы.ПС (перенос строки) для разделения основного названия и подзаголовка.
  3. Обязательно настроим свойство таблицы "Высота шапки", иначе вторая строка просто не влезет в отведенное пространство и будет обрезана.

Рассмотрим пример кода:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Устанавливаем многострочный заголовок для колонки
    ЗаголовокКолонки = "Количество" + Символы.ПС + "(в базовых ед.)";
    Элементы.ТоварыКоличество.Заголовок = ЗаголовокКолонки;
    
    // Устанавливаем высоту шапки таблицы (в строках)
    // Это важно, чтобы текст отобразился полностью
    Элементы.Товары.ВысотаШапки = 2;
    
КонецПроцедуры

Преимущество этого метода: структура таблицы остается неизменной, данные отображаются строго в одну строку, а шапка выглядит цельной.

Способ 2. Группировка колонок с подменой заголовков (Метод "Костыль")

Выясним причину, по которой стандартное использование групп колонок часто приводит к визуальным дефектам (лишним пустым строкам в данных). Если просто добавить колонку в группу, платформа пытается создать "двухэтажную" таблицу. Однако, если применить небольшую хитрость с заголовками, можно добиться нужного эффекта.

Алгоритм действий следующий:

  1. Добавим в таблицу формы Группу колонок.
  2. В свойствах группы установим Группировка — В колонке (Vertical).
  3. Переместим нашу основную колонку внутрь этой группы.
  4. Теперь самое важное: в свойстве Заголовок самой Группы пишем текст, который должен быть СВЕРХУ (основное название).
  5. В свойстве Заголовок элемента (реквизита внутри группы) пишем текст, который должен быть СНИЗУ (дополнительный текст).
  6. Если платформа по умолчанию меняет их местами, попробуйте инвертировать логику: установите заголовок реквизита как основной, а заголовок группы — как пояснение, управляя видимостью заголовка группы.

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

Способ 3. Вертикальная группировка с фиктивным элементом

Если нам нужно, чтобы пояснительный текст под заголовком был динамическим и, возможно, имел другое форматирование, мы можем использовать группировку типа "В колонке" с двумя элементами, один из которых будет скрыт в области данных.

  1. Создаем группу колонок с типом "В колонке".
  2. Помещаем туда основной реквизит (например, Цена).
  3. Добавляем туда же второй реквизит или декорацию (текст).
  4. В настройках второго элемента устанавливаем свойство "Отображать в группе" только для шапки, а в самой строке данных скрываем этот элемент.

Посмотрим на настройки свойств:

Для группы колонок установите ОтображатьВГруппе в значение Верхнее или Нет, чтобы заголовок группы не создавал лишний уровень, если это не требуется.

Способ 4. Современный подход — Расширенная подсказка

Рассмотрим ситуацию, когда текст под заголовком слишком длинный и загромождает интерфейс. В современных версиях платформы (интерфейс "Такси") правильнее использовать свойство "Подсказка" или "Заголовок (подсказка)".

Как это работает:

Важные нюансы и ограничения

Проанализируем несколько технических моментов, которые могут повлиять на результат:

1. Вариант управления высотой шапки: Если вы используете многострочные заголовки (Способ 1), обратите внимание на свойство всей таблицы ВариантУправленияВысотойШапки. Если установлено Авто, платформа постарается сама подобрать размер, но лучше фиксировать его значением (например, 2 или 3), чтобы избежать "прыгающего" интерфейса при изменении состава колонок.

2. Использование подвала: В некоторых сообщениях предлагалось использовать свойство Подвал = Истина. Помните, что Подвал (Footer) находится в самом низу таблицы. Если в таблице 100 строк, пользователь увидит текст только после прокрутки до конца. Для пояснения смысла колонки подвал категорически не подходит — он предназначен для итогов (сумм, средних значений).

3. Форматированная строка: Начиная с последних версий 8.3, заголовок можно программно установить как ФорматированнаяСтрока. Это позволит сделать пояснительный текст под основным заголовком, например, серым цветом или курсивом:


ТекстЗаголовка = Новый ФорматированнаяСтрока("Основной текст", , , , , Новый ФорматированнаяСтрока(Символы.ПС + "доп. инфо", Новый Шрифт(,,Истина), ЦветаСтиля.ТекстВторостепеннойНадписи));
Элементы.ИмяКолонки.Заголовок = ТекстЗаголовка;

Таким образом, наиболее рекомендуемым и надежным методом является сочетание программной установки заголовка через Символы.ПС и явная установка свойства ВысотаШапки. Это гарантирует предсказуемое поведение интерфейса и чистоту структуры данных.

← На главную