Вход | Регистрация
 

выгрузка данных в xml

выгрузка данных в xml
Я
   falselight
 
31.05.19 - 08:13
Решил сделать и разобрать пример выгрузки в xml.
Если есть таблица на форме.
Как правильно её выгрузить в xml. Какие обязательные конструкции?
 
 
   Василий Алибабаевич
 
1 - 31.05.19 - 08:18
(0) Вот это обязательно:
ЗаписьXML = Новый ЗаписьXML;

ЗЫ. И не нужно благодарности. )))
   ildary
 
2 - 31.05.19 - 08:38
(1) ну это уже полдела, осталось только записать.
   d4rkmesa
 
3 - 31.05.19 - 08:41
Знакомый админ изучает 1С, надо его приколоть, как можно зайти в профессию и оставаться в ней. =)
   Сияющий в темноте
 
4 - 31.05.19 - 08:47
5А что мы получаем на выходе?
например,в таблице элемент справочника,мы в файл будем писать ссылку на него или все поля элемента?
   falselight
 
5 - 31.05.19 - 08:58
Вот пример

    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("d:\Temp\Test.XML", "UTF-8"); 
    ЗаписьXML.ЗаписатьОбъявлениеXML();                  
    ЗаписьXML.ЗаписатьНачалоЭлемента("Организации"); 
    Выборка = Справочники.Организации.Выбрать();
    Пока Выборка.Следующий() Цикл  
        ЗаписьXML.ЗаписатьНачалоЭлемента("Организация"); 
        ЗаписьXML.ЗаписатьАтрибут("Код",Строка(Выборка.Код));
        ЗаписьXML.ЗаписатьАтрибут("Наименование",Строка(Выборка.Наименование));
        ЗаписьXML.ЗаписатьКонецЭлемента(); 
    КонецЦикла;
    ЗаписьXML.ЗаписатьКонецЭлемента(); 


Между Пока - Цикл
      КонецЦикла

Можно заключать любые атрибуты?

Что все же будет обязательное? И необходимое????

Вроде как там используются углубленные структуры? Хотелось бы подробностей.
   sqr4
 
6 - 31.05.19 - 09:21
(5) Это все)
   ДенисЧ
 
7 - 31.05.19 - 09:45
(5) "Хотелось бы подробностей"

Хочешь я научу тебя великому искусству доставания чистого листа бумаги формата А4 и написанию на нём букв на русском языке?
   falselight
 
8 - 31.05.19 - 09:49
(7) Для чего это?
   falselight
 
9 - 31.05.19 - 09:49
(?+) Я про xml !
   ДенисЧ
 
10 - 31.05.19 - 09:49
(8) Тебе оно пригодится в жизни, однозначно...
   falselight
 
11 - 31.05.19 - 09:51
(10) Ну давай, послушаю тебя. Выскажись.
   falselight
 
12 - 31.05.19 - 13:00
Вот эта выгрузка уходит далеко в право.
Как правильно нужно?

//

&НаСервере
Процедура ВыгрузитьНаСервереВXML()
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ПутьКФайлуВыгрузки, "UTF-8"); 
    ЗаписьXML.ЗаписатьОбъявлениеXML();                  
    ТЗсФормы       = ТЗДляВыгрузки.Выгрузить();
    Для каждого СтрТЗ Из ТЗсФормы Цикл
        //

        Для каждого СтрТзКолонка Из ТЗсФормы.Колонки Цикл
            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
            ЗаписьXML.ЗаписатьАтрибут(СтрТзКолонка.Имя, СТРОКА(СтрТЗ[СтрТзКолонка.Имя]));
            ЗаписьXML.ЗаписатьКонецЭлемента(); 
        КонецЦикла;    
    КонецЦикла;    
    //

    ЗаписьXML.ЗаписатьКонецЭлемента(); 
КонецПроцедуры
//
   catena
 
13 - 31.05.19 - 13:08
(12)Ты считаешь, что ЗаписьXML тупой и ему надо по два раза повторять?
   falselight
 
14 - 31.05.19 - 13:10
(13) Опечатка.

Попробовал вот так, но пишет ошибку, - Ошибочный порядок записи XML
//

&НаСервере
Процедура ВыгрузитьНаСервереВXML()
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ПутьКФайлуВыгрузки, "UTF-8"); 
    ЗаписьXML.ЗаписатьОбъявлениеXML();                  
    ТЗсФормы = ТЗДляВыгрузки.Выгрузить();
    Для каждого СтрТЗ Из ТЗсФормы Цикл
        //

        ЗаписьXML.ЗаписатьНачалоЭлемента("НомерСтроки"); 
        ЗаписьXML.ЗаписатьАтрибут("НомерСтроки", СТРОКА(СтрТЗ.НомерСтроки));
        Для каждого СтрТзКолонка Из ТЗсФормы.Колонки Цикл
            Если СтрТзКолонка.Имя = "НомерСтроки" Тогда
                ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
                ЗаписьXML.ЗаписатьАтрибут(СтрТзКолонка.Имя, СТРОКА(СтрТЗ[СтрТзКолонка.Имя]));
                ЗаписьXML.ЗаписатьКонецЭлемента(); 
            КонецЕсли;
        КонецЦикла;    
        ЗаписьXML.ЗаписатьКонецЭлемента(); 
    КонецЦикла;    
    //

    ЗаписьXML.ЗаписатьКонецЭлемента(); 
КонецПроцедуры
//
   catena
 
15 - 31.05.19 - 13:11
Теперь два начала и три конца.
   Здравый_смысл
 
16 - 31.05.19 - 13:17
(13) Ржу чот :)

(14) Убери это: ЗаписьXML.ЗаписатьКонецЭлемента(); в конце процедуры.
   falselight
 
17 - 31.05.19 - 13:17
Идет вот эта ошибка не пойму в чем дело.

{ВнешняяОбработка.ОбработкаВыгрузки.Форма.Форма.Форма(331)}: Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)
            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
по причине:
Ошибочный порядок записи XML


//

&НаСервере
Процедура ВыгрузитьНаСервереВXML()
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ПутьКФайлуВыгрузки, "UTF-8"); 
    ЗаписьXML.ЗаписатьОбъявлениеXML();                  
    ТЗсФормы = ТЗДляВыгрузки.Выгрузить();
    Для каждого СтрТЗ Из ТЗсФормы Цикл
        //

        //ЗаписьXML.ЗаписатьНачалоЭлемента("НомерСтроки"); 

        //ЗаписьXML.ЗаписатьАтрибут("НомерСтроки", СТРОКА(СтрТЗ.НомерСтроки));

        Для каждого СтрТзКолонка Из ТЗсФормы.Колонки Цикл
            Если СтрТзКолонка.Имя = "НомерСтроки" Тогда
                Продолжить;
            КонецЕсли;
            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
            ЗаписьXML.ЗаписатьАтрибут(СтрТзКолонка.Имя, СТРОКА(СтрТЗ[СтрТзКолонка.Имя]));
            ЗаписьXML.ЗаписатьКонецЭлемента(); 
        КонецЦикла;    
        //ЗаписьXML.ЗаписатьКонецЭлемента(); 

    КонецЦикла;    
    //

    ЗаписьXML.ЗаписатьКонецЭлемента(); 
КонецПроцедуры
//
   falselight
 
18 - 31.05.19 - 13:28
//

&НаСервере
Процедура ВыгрузитьНаСервереВXML()
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ПутьКФайлуВыгрузки, "UTF-8"); 
    ЗаписьXML.ЗаписатьОбъявлениеXML();                  
    ТЗсФормы = ТЗДляВыгрузки.Выгрузить();
    Для каждого СтрТЗ Из ТЗсФормы Цикл
        //

        //ЗаписьXML.ЗаписатьНачалоЭлемента("НомерСтроки"); 

        //ЗаписьXML.ЗаписатьАтрибут("НомерСтроки", СТРОКА(СтрТЗ.НомерСтроки));

        Для каждого СтрТзКолонка Из ТЗсФормы.Колонки Цикл
            Если СтрТзКолонка.Имя = "НомерСтроки" Тогда
                Продолжить;
            КонецЕсли;
            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
            ЗаписьXML.ЗаписатьАтрибут(СтрТзКолонка.Имя, СТРОКА(СтрТЗ[СтрТзКолонка.Имя]));
            ЗаписьXML.ЗаписатьКонецЭлемента(); 
        КонецЦикла;    
        //ЗаписьXML.ЗаписатьКонецЭлемента(); 

    КонецЦикла;    
    //

КонецПроцедуры
//
   falselight
 
19 - 01.06.19 - 08:20
Почему на этой строке ошибка?

            ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя);
   hhhh
 
20 - 01.06.19 - 09:52
(19)             ЗаписьXML.ЗаписатьНачалоЭлемента(СтрТзКолонка.Имя); 
            ЗаписьXML.ЗаписатьТекст(СТРОКА(СтрТЗ[СтрТзКолонка.Имя]));
            ЗаписьXML.ЗаписатьКонецЭлемента(); 

не благодари
   dmpl
 
21 - 01.06.19 - 13:15
(5) Открой для себя СериализаторXDTO :)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.