Как выровнять элементы управляемой формы в две ровные колонки

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

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

Метод 1: Структурная группировка (Две вертикали в одной горизонтали)

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

Проанализируем шаги реализации:

  1. Создаем на форме группу с видом Группа - обычная группа.
  2. Устанавливаем для этой группы свойство Группировка в значение Горизонтальная.
  3. Внутри этой группы создаем еще две группы с видом Группа - обычная группа, но для них устанавливаем Группировка — Вертикальная.
  4. Распределяем элементы по этим двум вертикальным группам.

Чтобы колонки были строго одинаковыми по ширине, выясним причину возможного перекоса. Часто платформа пытается подстроить ширину под самый длинный заголовок. Чтобы этого избежать, у обеих вертикальных групп следует установить свойство РастягиватьПоГоризонтали в значение Да, а свойство РастяжимостьПоГоризонтали выставить в одинаковое значение (например, 1).

Метод 2: Построчное выравнивание (Группы в группе)

Если нам нужно, чтобы элементы в разных колонках всегда находились на одной горизонтальной линии (строке), используем другой подход. Рассмотрим ситуацию, когда в первой колонке ПолеВвода, а во второй — Надпись или Флажок.

Разберем алгоритм действий:

  1. Создаем одну общую родительскую группу с Вертикальной группировкой.
  2. Для каждой пары элементов создаем вложенную группу с Горизонтальной группировкой.
  3. Устанавливаем для элементов первой колонки фиксированную ширину (свойство Ширина).

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

Решение проблемы со смещением флажков (галлок)

Часто программисты замечают, что строки с флажками «съезжают» вправо или влево относительно обычных полей ввода. Это происходит из-за особенностей отрисовки заголовков флажков. Проанализируем, как это исправить.

Использование пустых декораций:

Как советуют опытные разработчики, после элемента (например, после флажка в горизонтальной группе) можно добавить элемент Декорация - рисунок или Декорация - надпись. Установите следующие свойства для декорации:

Такой невидимый элемент заполнит всё оставшееся пространство справа, «подперев» основные элементы и не давая им смещаться произвольным образом.

Использование свойства ШиринаЗаголовка (TitleWidth)

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

Чтобы добиться идеальной вертикальной линии между заголовками и полями:

  1. Выделите все элементы в одной колонке.
  2. Найдите свойство ШиринаЗаголовка.
  3. Установите фиксированное числовое значение (например, 15 или 20).

Теперь все границы полей ввода выстроятся строго по одной линии, независимо от длины текста «Наименование», «Код» или «Артикул».

Продвинутый инструмент: Группа колонок

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

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

Работа с компактным интерфейсом и растяжимостью

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

Вместо жесткого задания ширины в 300 пикселей, лучше использовать:

Подводя итог, можно сказать, что создание ровного интерфейса в УФ — это всегда комбинация правильной иерархии групп и тонкой настройки свойств ШиринаЗаголовка и Растяжимость. Экспериментируйте с этими параметрами, и ваши формы будут выглядеть профессионально на любом устройстве.

← На главную