Показать сообщение отдельно
Старый 01.11.2008, 15:09   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Не знаю, как в других версиях, но в 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());
    }
}
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 01.11.2008 в 15:28.