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