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

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

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

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

Выясним причину: почему элементы «разъезжаются»?

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

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

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

Решение 1: Отключение сквозного выравнивания (главная скрытая причина)

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

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

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

Решение 2: Настройка свойств растягивания и положения подчиненных

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

  1. Выберите группу с кнопками и откройте её свойства.
  2. Найдите свойство РастягиватьПоГоризонтали и установите его в значение Нет (сняв флажок «Авто»). Если сам контейнер не будет растягиваться по ширине экрана, то и его содержимое не будет разъезжаться.
  3. Найдите свойство ГоризонтальноеПоложениеПодчиненных и вместо значения Авто принудительно укажите Лево.
  4. Дополнительно обратите внимание на свойство группы «Объединенная». Попробуйте установить этот флаг в положение Да. Это указывает платформе позиционировать элементы внутри группы как единое целое, минимизируя стандартные отступы.

Решение 3: Метод «Распорки» (пустая декорация в конце группы)

Посмотрим на пример классического приема верстки в 1С — использование пустой декорации-распорки. Этот метод незаменим, когда группа обязана растягиваться по ширине всей формы (например, для соответствия общему стилю), но кнопки внутри нее должны быть плотно прижаты к левому краю.

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

Разберем по шагам, как правильно настроить этот механизм, так как при малейшей ошибке он перестает работать:

  1. Добавьте в самый конец вашей группы новый элемент с типом Декорация (вид — Надпись).
  2. Очистите текст этой декорации, чтобы она была абсолютно пустой.
  3. В свойствах этой пустой декорации установите флаг РастягиватьПоГоризонтали в значение Да (Истина).
  4. Критически важный шаг: проверьте свойства ваших кнопок и полезных декораций, стоящих левее. У них свойство РастягиватьПоГоризонтали должно быть строго установлено в значение Нет (Ложь).
  5. У самой родительской группы свойство РастягиватьПоГоризонтали должно быть установлено в значение Да.

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

Решение 4: Управление шириной и свойством «АвтоМаксимальнаяШирина»

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

Чтобы вернуть контроль над размерами элементов, выполните следующие настройки:

  1. Выберите элемент (декорацию или кнопку).
  2. В палитре свойств снимите флаг АвтоМаксимальнаяШирина.
  3. В поле Ширина задайте конкретное небольшое число. Например, для декорации, выполняющей роль небольшого разделителя, можно указать значение 2 или 3.
  4. Для кнопок можно оставить ширину 0 при снятом флаге автоширины, тогда платформа сожмет кнопку ровно под длину её названия.

Решение 5: Настройка интервалов группы и масштаба формы

Если вам нужно просто уменьшить расстояние между элементами, не прибегая к глобальной перестройке структуры, обратите внимание на свойства оформления интерфейса:

Решение 6: Использование Группы кнопок вместо Обычной группы

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

Развенчаем миф: есть ли «привязки» в управляемых формах?

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

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

← На главную