Сообщение от
Владимир Максимов
Вообще-то, Axapta сугубо "филетово" каким образом берется значение для Enum, поскольку физически - это число от 0 до 255. Контроль типов Enum может быть выполнен только и исключительно на этапе компиляции. На этапе исполнения Axapta не контролирует ни тип Enum, ни его значение. Вероятно, это какая-то особенность Connector
Ну, а сообщение об ошибках для Com-объектов стандартно берется из метода Error(). Как правило, он есть у любого Com-объекта, хотя и не всегда описывается в документации. Про AxaptaRecord не уверен, но, теоретически, должно быть что-то вроде такого
X++:
ComError comError;
str errorMsg;
;
try
{
if (axRecord.ValidateWrite())
{
axRecord.Write();
RecId = (Int64)axRecord.get_Field("RecId");
}
}
catch (Exception ExceptionData)
{
comError = axRecord.error();
errorMsg = StrFmt("Error %1 (%2)", comError.number(), comError.description());
info(errorMsg);
throw ExceptionData;
}