Приветствую!
Можно попробовать следующее:
Создайте новый метод в своём Interaction классе, который выполнится вместо оригинального метода clicked():
X++:
void info1(FormButtonControl _formButtonControl)
{
_formButtonControl.clicked(); // super()
info('1'); // some code added just for example
}
В этом методе вы можете выполнить super() вызвав оригинальный не перекрытый метод clicked()
X++:
_formButtonControl.clicked();
Также можете добавить свой код куда необходимо.
После этого на initialized() методе Interaction класса написать что-то вроде:
X++:
Common externalRecord;
FormDataSource formDS;
FormRun formRun;
FormButtonControl formButtonControl;
super();
externalRecord = this.listPage().activeRecord(identifierStr(<YourDSName>));
if(externalRecord.isFormDataSource())
{
formDs = externalRecord.dataSource();
formRun = formDs.formRun();
if (formRun)
{
formButtonControl = formRun.design().controlName(formControlStr(<YourFormName>,<YourButtonControlName>));
if(formButtonControl)
{
formButtonControl.registerOverrideMethod(
methodStr(FormButtonControl,clicked), // метод кнопки, который хотите перекрыть
methodStr(<YourClassInterationName>, info1), // метод, который будет вызван
this); // экземпляр класса, который содержит указанный выше метод[
}
}
}