При разработке интерфейсов управляемых форм в платформе 1С:Предприятие 8.3 разработчики часто сталкиваются с задачей визуального выравнивания элементов управления. Типичная ситуация: на форме размещена вертикальная группа, состоящая из нескольких полей типа «Флажок» (булевы реквизиты). Если заголовки полей располагаются слева, а сами квадратные элементы с галочками — справа, разница в длине наименований приводит к тому, что флажки расставляются неравномерно. В результате сама линия галочек становится «рваной» и выглядит неэстетично.
В этой статье мы подробно разберем, почему возникает подобное поведение платформы, и изучим несколько эффективных способов решения проблемы выравнивания элементов по правому краю.
Проанализируем особенности работы компоновщика интерфейса 1С в режиме управляемого приложения (интерфейс «Такси»). Когда у элемента управления ПолеФлажка установлено свойство ПоложениеЗаголовка = Лево, платформа по умолчанию привязывает квадратик флажка непосредственнно к завершению текста наименования.
Даже если у вертикальной группы включен параметр «Сквозное выравнивание», платформа стремится выровнять текстовые блоки заголовков, а не сами интерактивные квадратики по правой границе. Если заголовки имеют разную длину в символах, позиция квадратика рассчитывается динамически для каждой строки индивидуально. Кроме того, на отображение существенно влияют свойства родительских (вышестоящих) групп, в которые вложен текущий блок элементов.
Рассмотрим по шагам все доступные варианты решения данной задачи.
Начиная с версий платформы 8.3.10, у объектов типа ГруппаФормы предусмотрено специальное свойство ВыравниваниеЭлементовИЗаголовков.
ВыравниваниеЭлементовИЗаголовков.Важное замечание: Если после изменения свойства отображение элементов на форме не изменилось, проверим вышестоящие (родительские) группы. Если вертикальная группа с булевыми реквизитами вложена в другие контейнеры, свойства высших уровней могут переопределять правила расчета сетки выравнивания. В этом случае необходимо проверить аналогичные свойства у всех предков нашей группы или попробовать временно вынести группу на верхний уровень иерархии для проверки.
Если требуется жестко зафиксировать положение текста слева, а всех квадратиков — строго по единой правой линии, организуем компоновку элементов с помощью комбинации двух подгрупп.
Разберем данный алгоритм построения формы:
ГруппаОсновная).ГруппаЗаголовки (левая колонка) — будет содержать текстовые описания.ГруппаФлажки (правая колонка) — будет содержать непосредственно поля ввода.ДекорацияФормы), содержащие текст заголовков.ПолеФлажка.ПоложениеЗаголовка в значение «Нет».ГруппаФлажки настроим выравнивание элементов по правому краю (свойство Группировка или выравнивание элементов в группе).При таком разделении длина текста надписей в левой колонке перестает влиять на координаты расположения флажков в правой колонке, и платформа строит безупречно ровную вертикальную линию из галочек.
По умолчанию у вновь создаваемых групп в конфигураторе установлено свойство Объединенная = Истина.
Когда данный флаг включен, платформа воспринимает содержимое группы как единую сетку (табличный макет) и пытается согласовывать ширину колонок во всех подчиненных элементах. Попробуем снять флажок «Объединенная» у родительской группы:
Объединенная.Другой простой способ принудительно выровнять квадратики — заставить платформу отводить под текстовую часть заголовка одинаковое пространство.
АвтоМаксимальнаяШирина или АвтоМинимальнаяШирина.ШиринаЗаголовка (например, 25 или 30 символов).После задания одинаковой фиксированной ширины заголовка для всех трех элементов платформа отведет под текст равное количество пикселей, благодаря чему галочки встанут строго друг под другом.
В современных конфигурациях для отображения булевых реквизитов часто применяется альтернативный вид элемента управления — Тумблер.
Рассмотрим, как изменить вид поля:
Булево на форме.Вид выберем значение Поле тумблера.Тумблеры имеют фиксированные размеры кнопок, поэтому их намного проще выравнивать по правому краю формы, при этом интерфейс приобретает современный внешний вид.
В заключение проанализируем официальные стандарты разработки интерфейсов фирмы «1С». Расположение элементов, при котором текст находится слева, а сам флажок справа (ПоложениеЗаголовка = Лево), считается нежелательным пользовательским решением.
На широких мониторах пользователю сложно визуально сопоставить текст, находящийся у левого края экрана, с галочкой, смещенной далеко вправо. Рекомендуемый стандарт размещения:
ПоложениеЗаголовка = Право или Авто).При стандартном расположении все галочки выстраиваются по ровной левой линии, а разная длина наименований справа не нарушает визуальную гармонию формы.