Имя: Пароль:
1C
1С v8
Добавление записей в существующий файл XML в 1с 8
0 dainastar
 
21.01.15
11:47
Помогите разобраться. Впервые сталкиваюсь с файлами XML. Необходимо добавлять записи в уже созданный файл, а не перезаписывать их. Сейчас есть код:
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8");
Запись.ЗаписатьОбъявлениеXML();     
Запись.ЗаписатьНачалоЭлемента("ВыгрузкаНаработки");

Запись.ЗаписатьНачалоЭлемента("ОтчетПроизводстваЗаСмену");
Запись.ЗаписатьАтрибут("Номер", Номер));
Запись.ЗаписатьАтрибут("Дата", Дата);
    
Для Каждого Документ Из СписокДокументов Цикл
    Запись.ЗаписатьНачалоЭлемента("РабочийЦентр");               
    Запись.ЗаписатьТекст(Выборка.РабочийЦентрКод);                
        
    Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();    
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
1 Господин ПЖ
 
21.01.15
11:49
что и куда добавлять - телепатов нет
2 dainastar
 
21.01.15
11:53
При выгрузке получается файл:
<?xml version="1.0" encoding="UTF-8"?>
<ВыгрузкаНаработки>
    <ОтчетПроизводстваЗаСмену nomer="00000000137" data="19.01.2015">
        <РабочийЦентр>000000014</РабочийЦентр>
        <РабочийЦентр>000000047</РабочийЦентр>
        <РабочийЦентр>000000029</РабочийЦентр>
    </ОтчетПроизводстваЗаСмену>
</ВыгрузкаНаработки>

и при каждой выгрузке документа создается новый файл. А мне нужно, чтобы данные по документу добавлялись в уже существующий файл, т.е.
<?xml version="1.0" encoding="UTF-8"?>
<ВыгрузкаНаработки>
    <ОтчетПроизводстваЗаСмену nomer="00000000137" data="19.01.2015">
        <РабочийЦентр>000000014</РабочийЦентр>
        <РабочийЦентр>000000047</РабочийЦентр>
        <РабочийЦентр>000000029</РабочийЦентр>
    </ОтчетПроизводстваЗаСмену>

<ОтчетПроизводстваЗаСмену nomer="00000000140" data="19.01.2015">
        <РабочийЦентр>000000014</РабочийЦентр>
        <РабочийЦентр>000000047</РабочийЦентр>
        <РабочийЦентр>000000029</РабочийЦентр>
    </ОтчетПроизводстваЗаСмену>
</ВыгрузкаНаработки>
3 dainastar
 
21.01.15
11:53
(2) что-то типа того, надеюсь правильно объяснила
4 Господин ПЖ
 
21.01.15
11:55
курить DOM
5 dainastar
 
21.01.15
14:45
Переделала (только не знаю насколько правильно) на DOM. Но ситуация не изменилась, каждый раз создается новый файл.
XML = Новый ДокументDOM("MyselfNameSpace", "ВыгрузкаНаработки");
элДокумент = XML.СоздатьЭлемент("ОтчетПроизводстваЗаСмену");
элДокумент.УстановитьАтрибут("Номер", Номер);
элДокумент.УстановитьАтрибут("Дата",Дата);
Для Каждого Документ Из СписокДокументов Цикл
        элРабЦентр = XML.СоздатьЭлемент("РабочийЦентр");
    элРабЦентр.УстановитьАтрибут("Наименование",Наименование);
    элРабЦентр.УстановитьАтрибут("Код",Код);
    
        элРеквизиты = XML.СоздатьЭлемент("Параметры");
    элРеквизиты.УстановитьАтрибут("ВремяОстанова",ВремяОстанова);
    элРеквизиты.УстановитьАтрибут("ВремяПуска",ремяПуска);
            
    элРабЦентр.ДобавитьДочерний(элРеквизиты);
    элДокумент.ДобавитьДочерний(элРабЦентр);
КонецЦикла;
XML.ЭлементДокумента.ДобавитьДочерний(элДокумент);
Файл = Новый ЗаписьXML();
Файл.ОткрытьФайл(ПутьКФайлу,"UTF-8");
ФайлDOM = Новый ЗаписьDOM();
ФайлDOM.Записать(XML,Файл);
Файл.Закрыть();
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.