Dynamics Ax 2012 R3
Наткнулся на ошибку в CustVendReversePosting. Так как сообщать в MS не умею + лень то поделюсь информацией тут, вдруг кто столкнется тоже:
в классе есть чудо переменные
X++:
RTax25DebtDebitReverse debitReverse;
RTax25DebtDebitReverse creditReverse;
инициализируются переменные в методе updateNow
X++:
// <GEERU><GEECZ>
if (countryRegion_RUCZ)
{
debitReverse = RTax25DebtAmortisation::constructReverse(RTax25DebtType::Debit);
creditReverse = RTax25DebtAmortisation::constructReverse(RTax25DebtType::Credit);
}
// </GEECZ></GEERU>
и если копнуть конструктор то получим
X++:
public static RTax25DebtAmortisation constructReverse(RTax25DebtType _debtType)
{
switch(_debtType)
{
case RTax25DebtType::Debit :
return new RTax25DebtDebitReverse();
case RTax25DebtType::Credit :
return new RTax25DebtCreditReverse();
default :
throw error(Error::wrongUseOfFunction(funcName()));
}
return null;
}
Компиляции проходят по понятным причинам замечательно, и самое интересное что в не CIL режиме работает даже. А вот CIL режим заставляет систему содрогнутцо и выдать ошибку присвоения (creditReverse присвоили RTax25DebtCreditReverse а она RTax25DebtDebitReverse).
Вопрос нафига
козе баян использовать переменные с явным объявлением наследника когда можно было бы объявить RTax25DebtAmortisation и жить спокойно оставлю на обсуждение общественности.