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