Показать сообщение отдельно
Старый 15.07.2024, 18:00   #10  
ice321i is offline
ice321i
Участник
 
63 / 54 (2) ++++
Регистрация: 22.10.2007
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Маленькая поправка - это сделать можно только один раз. Т.е. если:
- в стандартном коде уже для нужного контрола / поля датасорса уже вызван registerOverrideMethod
- или есть расширение, в котором вызван метод registerOverrideMethod

то такой способ не подойдет (если вызван для контрола - то можно вызвать для датасорса, отменив тем самым по сути вызов перекрытого метода у контрола).

Также обращу внимание, что если метод lookup перекрыт через обработчики событий (Event Hanler), то метод registerOverrideMethod - "отменит" эти перекрытия.
Т.е. грубо говоря, используя метод registerOverrideMethod у разработчика не будет возможности "в случае, если условия сложились иначе - вызвать штатный код"
Если в стандарте уже вызван registerOverrideMethod, то можно и это обойти, используя в своем расширении запрет на вызов перегруженых методов:

X++:
formRun.controlMethodOverload(true);
formRun.ContolMethodOverloadObject(formRun);
Но есть нюанс, вызываться престанут все перегруженые методы на форме))

Последний раз редактировалось ice321i; 15.07.2024 в 18:24.
За это сообщение автора поблагодарили: sukhanchik (4).