Как объединить заголовки нескольких колонок в табличной части управляемой формы 1С?

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

При разработке интерфейсов на управляемых формах 1С часто возникает задача визуального объединения нескольких реквизитов табличной части под одним общим заголовком. Это необходимо для экономии экранного пространства и логической группировки данных, например, когда несколько колонок относятся к одному периоду или описывают характеристики одного объекта. Однако стандартное создание группы колонок часто приводит к тому, что в шапке таблицы появляются лишние пустые поля или дублирующие надписи. В этой статье мы подробно разберем, как добиться чистого и профессионального вида «объединенной ячейки» в шапке таблицы.

Постановка задачи и анализ стандартного поведения

Рассмотрим ситуацию: у нас есть табличная часть с тремя реквизитами, и мы хотим, чтобы в интерфейсе они выглядели как единый блок с общей подписью сверху. Если мы просто выделим эти реквизиты в дереве элементов формы и сгруппируем их (правой кнопкой мыши — «Сгруппировать колонки»), платформа автоматически создаст объект типа ГруппаФормы с видом ГруппаКолонок.

Проблема, с которой сталкиваются многие разработчики, заключается в следующем: даже если задать заголовок для группы, заголовки вложенных реквизитов продолжают отображаться, занимая место. Попытка установить свойство ПоложениеЗаголовка в значение Нет для каждого реквизита не всегда решает проблему полностью — зачастую в шапке все равно остаются пустые области, которые «раздувают» высоту строки заголовка или создают визуальный шум.

Основное решение: работа со свойством «Отображать в шапке»

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

  1. Создаем группу колонок: В окне «Элементы» формы выделите нужные колонки табличной части, нажмите правую кнопку мыши и выберите «Сгруппировать колонки».
  2. Настраиваем группу: Выделите созданную группу. В свойстве Заголовок укажите тот текст, который должен стать общим для всех колонок. Убедитесь, что флажок Отображать в шапке для самой группы установлен.
  3. Настраиваем вложенные элементы: Теперь самое важное. Выделите каждый реквизит, входящий в эту группу, и в палитре свойств найдите флажок Отображать в шапке. Его необходимо снять.

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

Варианты группировки данных внутри колонки

Проанализируем, как свойство Группировка влияет на визуальное представление данных. В свойствах группы колонок мы можем выбрать два основных режима:

Горизонтальная группировка: В этом режиме колонки располагаются классическим способом — в ряд. Общий заголовок растягивается на всю ширину группы. Это создает классический вид объединенной шапки, привычный пользователям по Excel.

Вертикальная группировка: Если мы выберем этот вариант, данные реквизитов будут отображаться друг под другом в рамках одной физической колонки таблицы. При этом общий заголовок в шапке будет относиться ко всему этому «стеку» данных. Это крайне эффективно, если в строке таблицы нужно вывести много мелких параметров (например, «Артикул», «Код» и «Штрихкод»), не раздувая таблицу в ширину.

Выравнивание и оформление объединенного заголовка

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

Также стоит обратить внимание на свойство Растягивать по горизонтали. Если для группы установлено Да, а для внутренних колонок — Нет, платформа может распределить пространство неравномерно. Рекомендуется настраивать растягивание согласованно.

Многоуровневые (древовидные) заголовки

Платформа 1С позволяет создавать неограниченную вложенность групп колонок. Мы можем построить сложную структуру шапки. Например:

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

Программное управление заголовками

Иногда требуется изменять видимость или текст объединенных заголовков «на лету», в зависимости от действий пользователя или данных в базе. Для этого мы можем обращаться к элементам формы через встроенный язык. Рассмотрим пример, где мы программно скрываем заголовок группы:


&НаСервере
Процедура НастроитьОтображениеТаблицы()
    // Обращаемся к группе колонок по имени, заданному в конфигураторе
    Группа = Элементы.ГруппаКолонкиЦены;
    
    // Управляем видимостью всей группы в шапке
    Группа.ОтображатьВШапке = Ложь;
    
    // Можно также программно изменить текст объединенного заголовка
    Группа.Заголовок = "Актуальные цены на " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
КонецПроцедуры

Такой подход полезен в динамических отчетах или при реализации различных режимов работы формы (например, «Краткий вид» и «Полный вид»). Для реализации подобных задач можно использовать пример динамического добавления и удаления элементов управляемой формы.

Особенности для платформы 8.3 и интерфейса «Такси»

Начиная с версии платформы 8.3.15+, поведение элементов в режиме «Такси» стало более адаптивным. Важно помнить, что если суммарная ширина вложенных колонок превышает доступную ширину экрана, платформа может начать скрывать часть данных или переносить их. Для объединенных заголовков это означает, что текст может быть обрезан. Поэтому всегда проверяйте свойство АвтоМаксимальнаяШирина для группы, чтобы заголовок оставался читаемым.

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

Резюме

Для создания чистого объединенного заголовка в управляемой форме 1С необходимо использовать объект Группа колонок, установить ему требуемый Заголовок, оставить включенным флаг Отображать в шапке для группы и обязательно выключить этот же флаг у всех дочерних элементов этой группы. Этот простой, но не всегда очевидный механизм позволяет создавать сложные и удобные интерфейсы для работы с большими объемами данных.

← На главную