Как уменьшить ширину колонки с флажком и перенести заголовок в 2 строки на управляемой форме 1С?

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

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

Способ 1. Настройка свойств таблицы и использование ручного переноса

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

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

  1. В окне свойств элемента формы типа Таблица найдем параметр ВысотаШапки. Установим значение равным 2 (или более, если требуется больше строк).
  2. Перейдем к свойствам конкретной колонки (элемент Поле).
  3. В поле Заголовок введем текст, используя сочетание клавиш Shift + Enter в тех местах, где требуется разрыв строки.
  4. Для того чтобы текст смотрелся гармонично, установим свойство колонки ГоризонтальноеПоложениеВШапке в значение Центр.

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

Способ 2. Программная установка заголовка при создании формы

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

Воспользуемся серверной процедурой ПриСозданииНаСервере. Посмотрим на пример кода:


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

Этот метод более надежен, так как символ Символы.ПС (перевод строки) гарантированно интерпретируется платформой как команда к переносу текста, если установлена достаточная высота шапки.

Способ 3. Управление шириной и растягиванием

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

Попробуем следующую комбинацию настроек для колонки:

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

Способ 4. Использование иконок вместо текста (стандарт UX)

Рассмотрим ситуацию, когда форма перегружена данными и даже две строки заголовка не спасают положение. В типовых конфигурациях (например, в ERP или УТ 11) для узких колонок с флажками часто используют картинки в заголовке.

Посмотрим, как это реализовать:

  1. Найдем в свойствах колонки параметр КартинкаШапки.
  2. Выберем подходящую стандартную картинку (например, БиблиотекаКартинок.Флажок или Статус).
  3. Поле Заголовок в таком случае можно оставить пустым или поставить в нем точку/краткую аббревиатуру.
  4. Важный момент: чтобы пользователь понимал назначение колонки, обязательно заполните свойство Подсказка. При наведении мышки на иконку в шапке пользователь увидит полное описание.

Способ 5. Изменение типа поля для расширенного управления

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

Рассмотрим пошагово:

  1. Изменим Вид элемента формы с Поле флажка на Поле ввода.
  2. Убедимся, что тип данных этой колонки по-прежнему Булево.
  3. В свойстве КнопкаВыбора установим Нет, а в свойстве РежимРедактирования выберем Вход в ячейку.

Теперь у нас появились свойства МногострочныйРежим и более гибкое управление шириной. Платформа все равно будет отображать булево значение как флажок (или текст "Да/Нет" в зависимости от настроек), но позволит нам более детально настроить заголовок.

Резюме и рекомендации

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

← На главную