Автоматическая генерация формы

Есть несколько объектов. Определяю их с помощью метакода defineNamedObject. Каждый объект имеет как одинаковые свойства(например name) так и отличающиеся. Можно ли как-то присвоить свойства какой-то группе и потом всю группу вывести на форму(не автоматически сгенерированную, а определенную самостоятельно)? Можно с первичными свойствами работать как с коллекцией?


Ответы (1 шт):

Автор решения: DAle

Можно ли как-то присвоить свойства какой-то группе и потом всю группу вывести на форму

Нет, такой возможности нет. В частном случае, если нам нужно, например, добавлять более-менее фиксированный набор свойств для разных классов параметров, то можно создать метакод, в котором будет EXTEND FORM с PROPERTIES блоком, добавляющим эти свойства.

Можно с первичными свойствами работать как с коллекцией?

Да. В модуле Reflection объявлен класс Property, по объектам которого можно итерироваться (также там есть классы и для некоторых других абстракций). Там вы сможете посмотреть, какие есть свойства, в которые параметром передаются объекты класса Property. Также практически все эти свойства есть на форме Reflection.properties, которую можно открыть из навигатора: Администрирование > Метаданные > Свойства (если у вас вдруг в этой форме пусто, то убедитесь, что в конфигурации, с помощью которой запускаете проект, отключена опция Light start).

С помощью Reflection можно программно, например, настроить политику безопасности, скрыть какие-то свойства на форме или сделать какие-то выборки. Но добавить на форму свойства таким образом не получится, так как объекты Reflection-классов - это просто отображение существующих на старте сервера объектов (в данном случае свойств), а добавление на форму - это по сути создание нового объекта "свойство на форме".

→ Ссылка