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

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

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

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

Почему происходит смещение флажков?

Проанализируем особенности работы компоновщика интерфейса 1С в режиме управляемого приложения (интерфейс «Такси»). Когда у элемента управления ПолеФлажка установлено свойство ПоложениеЗаголовка = Лево, платформа по умолчанию привязывает квадратик флажка непосредственнно к завершению текста наименования.

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

Рассмотрим по шагам все доступные варианты решения данной задачи.

Способ 1. Использование свойства «ВыравниваниеЭлементовИЗаголовков» и проверка родительских групп

Начиная с версий платформы 8.3.10, у объектов типа ГруппаФормы предусмотрено специальное свойство ВыравниваниеЭлементовИЗаголовков.

  1. Откроем нужную форму в режиме Конфигуратор.
  2. Выделим вертикальную группу, в которой расположены наши поля флажков.
  3. В палитре свойств найдем параметр ВыравниваниеЭлементовИЗаголовков.
  4. Установим значение «Элементы лево, заголовки право» или поэкспериментируем с другими значениями данного перечисления.

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

Способ 2. Разделение полей на две вертикальные группы (Наиболее надежный подход)

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

Разберем данный алгоритм построения формы:

  1. Создадим родительскую Горизонтальную группу (например, ГруппаОсновная).
  2. Внутрь родительской группы поместим две подчиненные Вертикальные группы:
    • ГруппаЗаголовки (левая колонка) — будет содержать текстовые описания.
    • ГруппаФлажки (правая колонка) — будет содержать непосредственно поля ввода.
  3. В левую группу добавим декорации вида Надпись (ДекорацияФормы), содержащие текст заголовков.
  4. В правую группу поместим сами элементы ПолеФлажка.
  5. У полей флажков в правой колонке установим свойство ПоложениеЗаголовка в значение «Нет».
  6. Для группы ГруппаФлажки настроим выравнивание элементов по правому краю (свойство Группировка или выравнивание элементов в группе).

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

Способ 3. Отключение свойства «Объединенная» у родительских групп

По умолчанию у вновь создаваемых групп в конфигураторе установлено свойство Объединенная = Истина.

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

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

Способ 4. Явное задание ширины заголовков полей

Другой простой способ принудительно выровнять квадратики — заставить платформу отводить под текстовую часть заголовка одинаковое пространство.

  1. Выделим все три поля флажка на форме.
  2. Снимем флажок у свойства АвтоМаксимальнаяШирина или АвтоМинимальнаяШирина.
  3. Зададим фиксированное значение в свойстве ШиринаЗаголовка (например, 25 или 30 символов).

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

Способ 5. Использование вида элемента «Тумблер»

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

Рассмотрим, как изменить вид поля:

  1. Выделим реквизит типа Булево на форме.
  2. В свойстве Вид выберем значение Поле тумблера.
  3. Настроим переключатели (например, значения «Да / Нет» или «Вкл / Выкл»).

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

Стандарты интерфейса 1С: Рекомендации UX

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

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

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

← На главную