В процессе разработки интерфейсов на управляемых формах 1С часто возникает задача разместить дополнительную пояснительную информацию в шапке таблицы. Например, под названием колонки "Сумма" нужно дописать "(в рублях)" или под колонкой "Номенклатура" указать "артикул + наименование". Основная сложность заключается в том, чтобы сделать это аккуратно, сохранив "плоскую" структуру данных, когда одна строка в таблице соответствует одной физической строке на экране, без лишнего нагромождения уровней шапки.
Разберем по шагам несколько эффективных способов решения этой задачи: от визуальных "хитростей" в конфигураторе до программных методов управления формой.
Проанализируем самый простой и технологичный способ. Вместо создания сложных иерархий колонок мы можем использовать стандартное свойство заголовка и специальный символ переноса строки. Это позволяет разместить текст в несколько рядов внутри одной ячейки шапки.
Для реализации этого метода выполним следующие действия:
ПриСозданииНаСервере, пропишем программную установку заголовка.Символы.ПС (перенос строки) для разделения основного названия и подзаголовка.Рассмотрим пример кода:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Устанавливаем многострочный заголовок для колонки
ЗаголовокКолонки = "Количество" + Символы.ПС + "(в базовых ед.)";
Элементы.ТоварыКоличество.Заголовок = ЗаголовокКолонки;
// Устанавливаем высоту шапки таблицы (в строках)
// Это важно, чтобы текст отобразился полностью
Элементы.Товары.ВысотаШапки = 2;
КонецПроцедуры
Преимущество этого метода: структура таблицы остается неизменной, данные отображаются строго в одну строку, а шапка выглядит цельной.
Выясним причину, по которой стандартное использование групп колонок часто приводит к визуальным дефектам (лишним пустым строкам в данных). Если просто добавить колонку в группу, платформа пытается создать "двухэтажную" таблицу. Однако, если применить небольшую хитрость с заголовками, можно добиться нужного эффекта.
Алгоритм действий следующий:
Этот метод был предложен участниками форума как "борьба с костылями", но он имеет право на жизнь, если вам нужно визуально отделить текст стилистически через настройки шрифтов группы.
Если нам нужно, чтобы пояснительный текст под заголовком был динамическим и, возможно, имел другое форматирование, мы можем использовать группировку типа "В колонке" с двумя элементами, один из которых будет скрыт в области данных.
Цена).Посмотрим на настройки свойств:
Для группы колонок установите ОтображатьВГруппе в значение Верхнее или Нет, чтобы заголовок группы не создавал лишний уровень, если это не требуется.
Рассмотрим ситуацию, когда текст под заголовком слишком длинный и загромождает интерфейс. В современных версиях платформы (интерфейс "Такси") правильнее использовать свойство "Подсказка" или "Заголовок (подсказка)".
Как это работает:
ВысотаШапки, что особенно критично для небольших мониторов.Проанализируем несколько технических моментов, которые могут повлиять на результат:
1. Вариант управления высотой шапки: Если вы используете многострочные заголовки (Способ 1), обратите внимание на свойство всей таблицы ВариантУправленияВысотойШапки. Если установлено Авто, платформа постарается сама подобрать размер, но лучше фиксировать его значением (например, 2 или 3), чтобы избежать "прыгающего" интерфейса при изменении состава колонок.
2. Использование подвала: В некоторых сообщениях предлагалось использовать свойство Подвал = Истина. Помните, что Подвал (Footer) находится в самом низу таблицы. Если в таблице 100 строк, пользователь увидит текст только после прокрутки до конца. Для пояснения смысла колонки подвал категорически не подходит — он предназначен для итогов (сумм, средних значений).
3. Форматированная строка: Начиная с последних версий 8.3, заголовок можно программно установить как ФорматированнаяСтрока. Это позволит сделать пояснительный текст под основным заголовком, например, серым цветом или курсивом:
ТекстЗаголовка = Новый ФорматированнаяСтрока("Основной текст", , , , , Новый ФорматированнаяСтрока(Символы.ПС + "доп. инфо", Новый Шрифт(,,Истина), ЦветаСтиля.ТекстВторостепеннойНадписи));
Элементы.ИмяКолонки.Заголовок = ТекстЗаголовка;
Таким образом, наиболее рекомендуемым и надежным методом является сочетание программной установки заголовка через Символы.ПС и явная установка свойства ВысотаШапки. Это гарантирует предсказуемое поведение интерфейса и чистоту структуры данных.