Отображение названия полей из property

Здравствуйте. Есть страничка, где название полей подтягивается из property. Отображается в таком виде:
8
При обновлении странички надписи становятся на свои места, но все поля съезжают.
9
Можно ли как то это поправить?

Добрый день.

Не могли бы Вы приложить демо проект, в котором воспроизводится данная проблема? Сейчас не возможно определить в чем причина проблемы.

Глеб

Прикладываю демо проект
monmod-develop.zip (8.1 МБ)

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

Сделал демо проект, там названия полей берутся из caption. В моем проекте название полей берется из property, если точнее то из динамических атрибутов, но проблема все равно остается, название полей съезжает. Прикладываю демо:
cubaproject.zip (356.8 КБ)

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

Screenshot 2021-07-07 at 17.01.56

то будет выявлено несколько проблем:
Screenshot 2021-07-07 at 17.04.37

Смещение полей после рефреша страницы, не является багом. Когда для компонента form задано captionPosition="TOP", то form не выделяет отдельной строки под заголовки (как происходит с выделенной колонкой при captionPosition="LEFT"). Каждый заголовок является частью филда, т.е. влияет на его высоту внутри строки и увеличивает высоту строки, т.к. она имеет авто высоту, т.е. высоту по контенту внутри нее. А так как выравнивание компонентов по умолчанию происходит по левому верхнему краю, то получается такой эффект:

Screenshot 2021-07-07 at 17.05.39

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

В качестве альтернативы, можно сократить длину заголовков, а для полного описания использовать description или contextHelp.