Не знаю, как в других версиях, но в ax3 kr2 форматы передаваемый в recordFromXMLNode() и получаемый из xRecord.xlm() - несколько различаются. Если вызывать recordFromXMLNode() без передачи табличного буфера в метод, то таблица, содержащаяся в xml не будет определена и будет вызвано прерывание.
По-этому, либо надо будет парсить xml для опраделения таблицы до передачи в метод, либо надо будет знать заранее, какая таблица там будет
X++:
static void xml2record(Args args)
{
InventTable InventTable;
Common common;
xmlDocument xmlDocument = new xmlDocument();
XMLNode xmlNode;
;
select InventTable;
if (xmlDocument.loadXML(InventTable.xml()))
{
xmlNode = xmlDocument.documentElement();
if (xmlNode.nodeName() == "Table:Record")
{
common = new DictTable(tableName2Id(xmlNode.attributes().getNamedItem("name").nodeValue())).makeRecord();
global::recordFromXMLNode(xmlDocument.documentElement(), common);
}
else
common = global::recordFromXMLNode(xmlDocument.documentElement());
}
}