Новый механизм размещения элементов в форме
Чтобы было понятно, о чём идёт речь в этой статье, необходимо сделать небольшое пояснение.
Особенностью управляемых форм является то, что разработчик не формирует внешний вид формы непосредственно. Разработчик только создаёт описание формы с помощью некоторых логических правил. Исходя из этих правил, платформа самостоятельно генерирует визуальное представление формы. Причём это визуальное представление зависит от размеров окна, в котором отображается форма. Одна и та же форма, показанная в узком окне или в окне, раскрытом на весь экран, будет иметь разное визуальное представление.
Так вот, та часть платформы, которая формирует визуальное представление формы, называется механизмом размещения элементов в форме.
Почему понадобился новый механизм?
Во-первых, прежний механизм, к сожалению, имел недостатки. Наиболее значительный из них заключался в том, что многие изменения свойств элементов формы, выполняемые на клиенте, требовали обязательного обращения к серверу. А любое обращение к серверу ведёт к замедлению работы.
Во-вторых, мы оценивали опыт использования управляемых форм и обнаружили ряд критичных потребностей, которые необходимо было реализовать.
И, в-третьих, мы хотели заложить в новый механизм возможности будущего развития.
Основные изменения
Схематично представить работу прежнего механизма можно следующим образом:

Разработчик в конфигураторе создаёт дерево элементов формы и задаёт свойства элементов. В тот момент, когда прикладное решение должно показать форму пользователю, происходит следующее. Сначала на сервере платформа создаёт описание визуальной формы. Потом это описание передаётся на клиента. А на клиенте визуализатор формирует то изображение, которое увидит пользователь.
Основное действие, которое выполнялось на сервере при создании описания визуальной формы, это расчет длин строк. Имеются в виду всевозможные заголовки, надписи и так далее. Зная длины строк можно уже просчитать расположение элементов в форме.
Так как эта операция выполнялась на сервере, присутствовали два негативных момента. Во-первых, для расчёта использовались не те шрифты, которые будут использованы на клиенте, а те, которые установлены на сервере. А они могут отличаться, особенно если речь идёт о разных платформах (Windows, Linux). Или даже нужные шрифты могут быть совсем не установлены на сервере. Во-вторых, для расчёта длин использовался тот «движок» растеризации шрифтов, который есть на сервере. А он может работать не совсем так, как механизм рендеринга текстовых строк, существующий на клиенте в интернет-браузере, например. В результате могли появляться формы либо с «обрезанными» текстами, либо, наоборот, с чересчур широкими надписями.
Другая проблема заключалась в том, что отсутствовала какая-либо адаптация к размеру окна, в котором форма будет показана у клиента. Фактически на сервере описание формы создавалось исходя из минимально возможного размера окна, и дальнейший успех её отображения зависел уже от того, насколько хорошо она «умеет» растягиваться.
В новом механизме генерацию описания визуальной формы, которая раньше целиком выполнялась на сервере, мы разделили на две части, серверную и клиентскую:

Серверная часть стала существенно меньше. В ней не выполняется никаких расчётов. На сервере создаётся только «заготовка» описания, которая не содержит точных длин текстовых полей, и в ней не разрешены элементы адаптивности. На сервере обрабатывается видимость элементов, но только та, которая определяется функциональными опциями, и та, которая установлена пользователем. Но тут и нельзя иначе, потому что сами функциональные опции доступны только на сервере. А интерактивное изменение настроек пользователем в любом случае приведёт к серверному вызову.
В результате получается некий «полуфабрикат» визуального представления формы, который передаётся на клиента.
На клиенте производится необходимая доработка описания визуальной формы. Рассчитываются длины строк, рассчитываются элементы адаптивности, связанные с размерами клиентского дисплея, и отрабатывается видимость. После этого, как и раньше, начинает работать визуализатор, который и создаёт окончательную форму, которую видит клиент.
Благодаря тому, что расчёт длин строк производится на клиенте, удалось избавиться от ненужных и неаккуратных «щелей» между элементами. А отработка видимости на клиенте без обращения к серверу позволила ускорить работу форм. Потому что включение/выключение видимости элементов формы это одна из наиболее частых операций.
Некоторые новые возможности
Элементы адаптивного интерфейса
Новый механизм размещения элементов в форме не только улучшает те возможности, которые имелись ранее, но и добавляет новые возможности. Например, он адаптирует внешний вид формы к размерам клиентского дисплея. Для этого используются несколько путей.
Во-первых, выполняется автоматический перенос строк с подстройкой высоты заголовков и декораций. Как это работает, можно посмотреть на рисунке:

Если в форме есть длинные строки, которые можно разбить на отдельные слова, то такие строки переносятся, если в этом есть необходимость. Соответственно высота формы увеличивается, потому что нижняя её часть «отъезжает» вниз. В результате форма будет выглядеть нормально даже на узких экранах. Более того, этот механизм работает динамически, а значит, вы можете сжимать форму в реальном режиме времени, и вместе с этим будут переноситься длинные строки.
Автоматический перенос работает для заголовков элементов, заголовков групп, текстовых декораций и текста в кнопках, имеющих вид Гиперссылка.
Вторым элементом адаптивности является изменение ориентации групп. У групп и у формы в целом появился новый вариант ориентации — «Горизонтально, если возможно». В этом варианте, если клиентский дисплей позволяет расположить элементы горизонтально, они располагаются горизонтально. Если нет, то они располагаются вертикально.
Третий элемент адаптивности, это автоматическое определение количества колонок у переключателя или тумблера. Раньше, если не было специальных указаний, количество колонок устанавливалось максимальным, и он выводился в одну строку. Теперь, в той же ситуации, анализируется ширина формы, и устанавливается такое количество колонок, при котором переключатель/тумблер будет выглядеть на экране хорошо.
Горизонтальное и вертикальное выравнивание
Раньше такая возможность отсутствовала, и для реализации нестандартного выравнивания приходилось выдумывать разные «хитрости». Теперь форме и группе можно указать, каким образом должны выравниваться её элементы по вертикали и по горизонтали. Например, на рисунке ниже, группа кнопок показывает три возможных варианта выравнивания: Лево, Центр и Право:

На этом рисунке кнопки размещены в обычной группе, которая растягивается по горизонтали. Расположение кнопок внутри группы управляется свойством группы ГоризонтальноеПоложениеПодчиненных.
Управление внешним выравниванием
Например, у вас есть форма, в которой расположены поле Подразделение, группы Адрес и Телефон. Прежний механизм выравнивал поля этих групп так, как показано на левом рисунке. Поля в форме выравнивались между собой, и поля в каждой группе выравнивались между собой.

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

Выравнивание элементов и заголовков
Ещё одна новая возможность, которая появилась, это возможность управлять взаимным расположением элементов и заголовков. Как во всей форме, так и в отдельных группах. Например, заголовки и элементы вы можете «растянуть» к разным краям формы, или наоборот, «стянуть» их друг к другу, выровняв заголовки вправо, а элементы — влево.

Ограничение максимальной ширины элементов
Раньше, если вы указывали элементу, что он должен растягиваться, то элемент растягивался до тех пор, пока это возможно. Например, на весь экран. Для одних элементов это было хорошо (например, поле HTML), а для других элементов это могло быть и не очень хорошо. Например, для числовых полей. Потому что числовые данные, или кнопки, управляющие полем, оказывались где-то далеко справа.
Теперь у элементов появились булевы свойства, с помощью которых можно установить режим автоматического растягивания по ширине или высоте. В этом режиме платформа самостоятельно определяет, до каких границ можно растягивать поле. Если автоматический режим отключить, тогда платформа будет вести себя так же, как и раньше. Если вы указываете конкретную ширину/высоту поля, будет использоваться она. А если вы указываете значение 0, то элемент будет растягиваться до тех пор, пока это возможно.
Управление расстоянием между элементами
Также появилась возможность управлять горизонтальным и вертикальным интервалами между элементами. Например, на следующем рисунке у левой группы вертикальный интервал увеличен, а у правой — уменьшен.

Отключение растягивания формы
Мы реализовали ещё один, новый режим работы формы, который отключает растягивание её элементов по вертикали. Этот режим будет полезен для форм, содержащих небольшое количество элементов.
Отключение прокрутки у страниц
Для форм, содержащих большое количество элементов, мы тоже несколько изменили поведение. Теперь вертикальная прокрутка у страниц не появляется. Вертикальная прокрутка теперь может быть у самой формы или внутри элементов формы, таких, как таблица, табличный документ и так далее. А страница формы всегда будет иметь полную высоту. Это должно облегчить работу пользователей, потому что большое количество скроллеров в форме часто смущает и сбивает с толку.
Резюме
В этой обзорной статье мы перечислили лишь основные возможности, которые даёт новый механизм размещения элементов в форме. Но не менее важно на наш взгляд и то, что в этом механизме заложен существенный запас для будущего развития.
1 с 8 Предприятие. Конфигурирование и администрирование.
Как в диалоге управляемой формы разместить элементы по горизонтали?
1. Выбрать элементы и перетащить в нужное место на диалоге
2. В свойстве элемента задать расположение относительно предыдущего
3. Правила размещения могут быть заданы для всех элементов формы, либо на отдельные группы
Да в управляемой форме теперь не разгуляешься, но может оно и к лучшему. Так глядишь скоро и конфигуратор не понадобится а с ним и целая братия стоящих у кормушки.
Разбор тестирования 1С:Профессионал и PMP
3.62 Настройки редактора управляемых форм определяются.
1. Для всех форм в настройках параметров конфигуратора
2. Только в настройках самой формы
3. Общие в настройках конфигуратора и индивидуальные в настройке формы
4. Платформой без возможности их изменений
Правильный ответ четвертый — в случае режима работы конфигуратора "Управляемое приложение" в настройках параметров конфигурации нет закладки Формы:
1С:Предприятие 8.3 (8.3.12.1616) В случае режима работы конфигуратора "Управляемое приложение" в настройках параметров конфигурации ЕСТЬ закладка Формы. И на этой закладке можно указать настройки. Как быть?
Подтверждаю. Есть там эта закладка. Как это влияет на ответ на вопрос?
Действительно, закладка "Форма" существует, но ее настройки относятся к работе приложения для мобильной платформы. Та закладка, о которой идет речь в этом вопросе называется "Обычные формы" и к управляемым очевидно не имеет никакого отношения. Таким образом, все что относится к настройке конкретной управляемой формы, настраиваться может только в ней.
По вопросу 03.66 не согласен. Считаю третий вариант ответа "Ограничена видимость реквизита объекта по ролям" не верным. Поясняю.
Реквизит "ПолноеНаименование" не является реквизитом ФОРМЫ, поскольку находится в дереве реквизита "Объект". Т.е. мы видим в списке реквизитов формы реквизит "Объект", раскрываем плюсиком его элементы, и уже среди них видим реквизит "ПолноеНаименование", справа от которого стоит галка "Использовать всегда".
Так вот. Реквизиту "Объект" свойства Просмотр и Редактирование доступны. А вот для ЕГО реквизитов (через плюсик которые) никаких свойств уже не видно. Получается, что настроить права Просмотр и Видимость на реквизит формы "Объект" можно только ЦЕЛИКОМ.
Далее. Переходим к ЭЛЕМЕНТУ формы "Полное наименование". Среди его свойств видим "Пользовательская видимость (открыть)". Вот там уже и можно настроить видимость данного элемента формы по ролям.
Таким образом видно, что правильным ответом является первый вариант "Ограничена видимость элемента по ролям".
Спасибо за внимание.

Надо мыслить шире. У пользователя есть роли. В ролях для реквизита объекта можно устанавливать свои права доступа, отличные от прав доступа к объекту в целом. В данном случае у пользователя право чтения объекта есть, а право чтения реквизита — нет. Тогда на форме этого реквизита не будет.
Обычно конечно никто так не делает, это вопрос чисто чтоб подловить сдающего.
Нюанс ещё и в том, что нужно иметь хотя бы одного пользователя с ролью. Иначе, если просто завести роль и в ней для реквизита объекта снять галки видимости, то это никак не отразится на видимости этого реквизита в режиме исполнения. Один фиг он будет виден.
Правильный ответ всё-таки 3.
Александр — против. Логично. И что теперь? Фирма 1С должна покаяться? А нам сдающим на сертификат, что делать?
Вопрос 69 Как осуществляется изменение размера элемента управления в диалоге управляемой форме?
Вопрос 3 Макет какого типа может быть создан конструктором макетов?
1. Active document
2. Табличный документ
4. Таблицу значений
5. Все ответы правильные
6. Верны 1, 2 утверждения
Вопрос 4 Какие данные может содержать макет, созданный конструктором макетов?
1. Текстовый документ
2. Географическую схему
3. Дерево значений
4. Все ответы правильные
5. Верны 1, 2 утверждения
Вопрос 5 При работе с конструктором макета необходимо выполнять загрузку из файла при работе с типами макета:
1. Табличный документ, Текстовый документ, НТМL-документ
2. Текстовый документ, Двоичные данные, Active document, Географическая схема
3. Двоичные данные, Active document, Географическая схема
4. HTML-документ, Двоичные данные, Active document, Географическая схема
Вопрос 6 Выбор в конструкторе макетов типа «Табличный документ».
1. позволяет использовать для подготовки макета Текстовый редактор
2. предполагает, что подготовка макета будет производиться с помощью Табличного редактора
3. позволяет использовать заранее подготовленные редактором географических схем документы для создания макета
4. верны утверждения 1 и 2
5. все утверждения верны
Вопрос.7 Для чего предназначен конструктор печати?
1. Для создания макета с заданными именованными областями для некоторых объектов конфигурации
2. Для создания макета с заданными именованными областями и процедуры печати отчетов
3. Для создания макета с заданными именованными областями и процедуры печати для некоторых объектов конфигурации
4. Для создания макета с заданными именованными областями и процедуры печати любых объектов
Вопрос 8 Если в конструкторе печати указано имя процедуры, которая будет выполнять построение печатной формы, и такая процедура уже присутствует в модуле.
1. то конструктор перепишет ее заново, при этом введенный ранее в тело процедуры текст будет потерян
2. то конструктор предложит задать другое имя процедуры
3. то конструктор выполнит объединение текстов модулей, при этом ранее существовавший текст процедуры будет закомментирован
4. то конструктор выполнит объединение текстов модулей, при этом добавляемый текст процедуры будет закомментирован
5. конструктор выполнит объединение текстов модулей с вариантом, указанным пользователем