25.01.2024, 18:17 | #1 |
Участник
|
TemporaryFormName - поймать в классе метод формы
Привет всем.
Задачка Аксапта 2012 R3 Есть самописный класс лукапа (копия SysTableLookup со своими переделками) В нем потребовалось запретить лукапу закрываться по клику на нем. Ну, как обычно, хотим перехватит close, closeSelect и не дать уйти в super. Но там используется псевдоформа TemporaryFormName, которой нет в АОТ. Попробовал применить controlMethodOverloadObject а оно не работает для методов формы close, closeSelect Для контролов работает. Видимо предназначено только для ловли методов контролов. Мне это показалось странным. Был же сарайчик. Должна же быть возможность перехватить. P.S. Сделал иначе - создал в АОТ свою форму MyTemporaryFormName Прописал ее в классе. Методы все также не перехватываются в классе, но поскольку форма существует в аот, то можно в ней в методах close, closeSelect прописать нужный код. P.P.S. Видел еще в 4-ке метод \Classes\TableLookup_RU\waitAndSearch там жестко через WinApi идет работа. Но мне казалось что можно попроще средствами платформы 12-ки сделать. P.P.P.S. В 2009-й еще были \Classes\SysSetupFormRun\addListener_W добавляла к форме обработчик и тогда к нему приходили события на init / run формы Но в 12-ке это похоже выпилили Да и это были просто подписчики на события они не позволяли логику менять т.е. не подходит этот костыль. В общем, ощущение, что я просто что-то неправильно сделал и методы формы можно перехватить в управляющем классе и можно обойтись без создания своей формы лукапа в AOT |
|