Решил проверить одну догадку и вроде как помогло.
В init() формы поиска SysFormSearch получаю ссылку на вызвавшую её форму и блокирую её перерисовку методом lock()
AOT\Forms\SysFormSearch
X++:
void init()
{
// KSM 03.08.2022 -->> fix "Потеря фокуса при вызове формы поиска"
FormDataSource fds;
;
fds = this.args().record().dataSource();
caller = fds.formRun();
caller.lock();
// KSM 03.08.2022 <<-- fix "Потеря фокуса при вызове формы поиска"
_dataset = element.args().dataset();
super();
}
В методе сlose() на всякий случай делаю caller.ulock().
Переменная caller типа FormRun объявлена в ClassDeclaration.
Но оно вроде как и без этого само восстанавливается, потому как ещё до закрытия формы поиска видно как на заднем плане перерисовывается основная форма, но к потери фокуса это уже не приводит.
Вуаля, форма поиска больше не теряет фокус там где раньше теряла.