Имя: Пароль:
1C
1С v8
Изучаю XML, ошибка при записили в XML
0 gerthog
 
21.12.14
19:19
Вот такой вот код:
&НаСервере
Процедура СобратьXMLСерверРеспун()
    Структура = РазобратьXMLСерверРеквест();
    ЗаписьХМL = Новый ЗаписьXML;
    ЗаписьХМL.ОткрытьФайл("D:\gdisk\1c\ХеликсУМО\document.xml", "UTF-8");

    Для каждого Справочник из Структура Цикл
        //ЗаписатьНачалоЭлемента - открывает новую [подчиненную] ветку
        ЗаписьХМL.ЗаписатьНачалоЭлемента(Справочник.Ключ);
        //ЗаписатьАтрибут - записывает атрибут в открытую ранее ветку

        //по метаданным обходим все реквизиты справочника
        Для каждого Реквизит из Справочник.Значение Цикл
          ЗаписьХМL.ЗаписатьАтрибут(Реквизит.Ключ, Реквизит.Значение);
        КонецЦикла;
        ЗаписьХМL.ЗаписатьКонецЭлемента();
    КонецЦикла;
    ЗаписьХМL.Закрыть();
КонецПроцедуры

Приводит к такой ошибке:
Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)
         ЗаписьХМL.ЗаписатьНачалоЭлемента(Справочник.Ключ);
по причине:
Ошибочный порядок записи XML

Причем первый проход цикла он в файл таки пишет, а на следующем этапе вываливается с ошибкой, где я накосячил?
1 alle68
 
21.12.14
19:39
Заголовка нет.
2 mehfk
 
21.12.14
19:44
ЗаписьХМL.ОткрытьФайл("D:\gdisk\1c\ХеликсУМО\document.xml", "UTF-8");
    ЗаписьХМL.ЗаписатьНачалоЭлемента("Корень"); // <-- Добавить

    Для каждого Справочник из Структура Цикл
...
...
...
КонецЦикла;
ЗаписьХМL.ЗаписатьКонецЭлемента(); // <-- Добавить
    ЗаписьХМL.Закрыть();
3 gerthog
 
21.12.14
19:46
Спасибо! Не ожидал в воскресенье такую оперативность!)
2 + 2 = 3.9999999999999999999999999999999...