Добрый день!
При реализации сервиса в Dynamics AX 2012, внутри которого идет работа со стандартными классами, я нашел некоторую особенность. Код на Х++ и CIL работает по-разному:
X++:
container emptyFields;
;
if (! _rec.DocumentNumber)
{
emptyFields += "@SYS8434";
}
if (! _rec.DocumentDate)
{
emptyFields += "@SYS2587";
}
if (! _rec.PayerAccount)
{
emptyFields += "@GLS100568";
}
if (! _rec.PayeeAccount)
{
emptyFields += "@GLS100577";
}
if (!_rec.AmountCur)
{
emptyFields += "@SYS860";
}
if(emptyFields)
{
// даже если emptyFields пустое, в CIL вызывает исключение
throw error(strFmt("@GLS115341", con2Str(emptyFields, #comma)));
}
Собственно вопрос - при вашей реализации сервисов, вы пишите код на CIL, или всё же используете Х++ для реализации бизнес-логики?