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