Цитата:
Сообщение от
syl
При определении в диалоге метода
X++:
public void dialogPostRun(DialogRunbase dialog)
{
;
Super(dialog);
dialog.formRun().controlMethodOverload(true);
dialog.formRun().controlMethodOverloadObject(this);
}
Выскакивает ошибка: обьект не инициализаирован...
Картинка стоит тысячи слов
Судя по стеку вызовов, у вас RunBase не переключается на клиента при работе диалога. Если посмотреть на свойства CustPrepaymentFactureCreate_RU (наследника RunBase в данном примере), то там прописано RunOn == Server, так что переключаться на клиента он не умеет. А вот DialogRunbase переключаться на клиента умеет - и делает это, в итоге при работе диалога есть два экземпляра DialogRunbase: один клиентский, который рулит формой диалога и содержит непустую ссылку на FormRun, а другой - серверный, у которого такой ссылки нет. Вы на серверном экземпляре вызываете dialog.formRun() и получаете закономерную ошибку "объект не инициализирован".
Вообще, чтобы вешать свои обработчики на поля диалога, выполняемого на клиенте, нужен клиентский же объект, которого в вашем случае нет. Учите CustPrepaymentFactureCreate_RU переключаться между клиентом и сервером.