Экран выбора (lookup) отличается от простого экрана тем, что при вызове методом openLookup() отображает внизу панель с кнопками, позволяющими передать вызывающему коду экземпляр выбранной в данный момент в списке сущности.
При вызове методом openWindow() или, например, из главного меню, панель с кнопками выбора не отображается.
В метод openLookup() передается объект с интерфейсом Window.Lookup.Handler. Метод handleLookup() этого объекта вызывается экраном, и ему передается коллекция выбранных пользователем экземпляров сущности. Тем самым вызывающий
код получает из экрана выбранные экземпляры.
Экраны выбора рекомендуется использовать для отображения списков сущностей. Визуальные компоненты, предназначенные для отображения
и редактирования ссылок между сущностями (такие как
PickerField
,
LookupPickerField
,
SearchPickerField
), вызывают экраны выбора для поиска связанных сущностей.
Для корректной работы стандартных действий идентификатор экрана выбора в файле
screens.xml
должен иметь вид {имя_сущности}.lookup, например, sales$Customer.lookup.
Контроллер экрана выбора должен быть унаследован от класса AbstractLookup. В XML экрана в атрибуте lookupComponent должен быть указан компонент (например,
Table
), из которого будет взят экземпляр сущности при выборе.

