Показать сообщение отдельно
Старый 08.05.2019, 10:17   #1  
mikki_messer is offline
mikki_messer
Участник
 
91 / 20 (1) +++
Регистрация: 20.04.2010
Адрес: Ростов-на-Дону
.setTmpData не работает
Здравствуйте.

Столкнулся со странной ситуацией в Ax 2012 R3. Есть класс, наследник RunBase, с диалогом-формой. Класс выполняется на сервере. В конструкторе класса заполняется временная таблица InMemory с определёнными данными, передаётся в форму, пользователь может их откорректировать и по нажатию кнопки "ОК" передать в класс времянку с изменённными данными.

Делаю всё, как обычно, в классе делаю метод

X++:
public void setTmpTable1(TmpTable1 _tmpTable1)
{
    tmpTable1.setTmpData(_tmpTable1);
}
и не получаю данные в классе: в отладчике видно, что _tmpTable1 данные есть, а в tmpTable - нет.

Но если написать так:

X++:
public void setTmpTable1(TmpTable1 _tmpTable1)
{
    tmpTable1 = _tmpTable1;
}
все прекрасно работает, но меня терзают смутные сомнения в правильности такого подхода

Подскажите, пожалуйста, почему .setTmpData может не работать, а конструкция с присвоением - работает. А также, почему напрямую присваивать может быть плохо.

Спасибо!