Показать сообщение отдельно
Старый 14.07.2015, 16:15   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от 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 переключаться между клиентом и сервером.
За это сообщение автора поблагодарили: alex55 (1), syl (1).