Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПрочитатьXML
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
pablo
имеется следующий XML файл:
<?xml version="1.0" encoding="UTF-8"?>
<Памятка>
<destroy>
<CatalogRef.Номенклатура>fa3e99b1-2b52-11df-2f86-003048dad517</CatalogRef.Номенклатура>
<Количество>1</Количество>
<Причина>використано для кольорового друку документів, фотографій</Причина>
<DocumentRef.ПоступлениеТоваровУслуг>f04e3fe6-4e63-11e2-8e9e-003048dad517</DocumentRef.ПоступлениеТоваровУслуг>
</destroy>
</Памятка>
Использую следующий код:
    Пока ФайлXML.Прочитать() цикл
        Если ФайлXML.ТипУзла=ТипУзлаXML.НачалоЭлемента тогда
            ИмяКолонки=ФайлXML.Имя;
            Если ИмяКолонки="destroy" тогда
                НоваяСтрока=Списание.Добавить();
                НоваяСтрока.Номенклатура=ПрочитатьXML(ФайлXML,Тип("СправочникСсылка.Номенклатура"));
...

И на последней строчке 1С вываливается с сообщением:
Ошибка преобразования данных XML: [file:///var/samba_share/buh/Log/000000004.xml][7,76]

P.S. А ларчик просто открывался.
Нужно было еще раз вызвать ФайлXML.Прочитать() перед вызовом ПрочитатьXML
Petre
Я бы убрал тип и посмотрел в отладчике, что находит...

update: "Семен Семеныч!" (с)
logist
Пока XML.Прочитать() Цикл
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
    XML.Прочитать();
    Значение = XML.Значение;

как-то так
pablo
Я ответ правильный нашел минут через 5 после создания темы. Но вариант Логиста плох тем, что так считаем внутренний идентификатор ссылки в текстовом формате, после чего его еще нужно преобразовывать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.