Имя: Пароль:
1C
1С v8
Помогите с выгрузкой в хмл
0 asder117
 
20.09.13
15:38
Есть такой код, но не пойму в чем проблема якобы не правильный формат, теги неправильно открываются и закрываются. Заранее спасибо
Процедура ОбъектыАрендыНажатие(Элемент)
    ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\Users\Administrator\Desktop\выгрузки 1с\arenduemiePloshadi.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("stalls");
//ЗаписьXML.ЗаписатьНачалоЭлемента("stall");
//ЗаписьXML.ЗаписатьТекст("Торговые места");
Выборка=Справочники.бит_Помещения.Выбрать();
Пока Выборка.Следующий() цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("stall");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьНачалоЭлемента("number");
ЗаписьXML.ЗаписатьТекст(выборка.Наименование);
ЗаписьXML.ЗаписатьКонецЭлемента();     
ЗаписьXML.ЗаписатьНачалоЭлемента("cost");
ЗаписьXML.ЗаписатьТекст(" ");
ЗаписьXML.ЗаписатьКонецЭлемента();     
ЗаписьXML.ЗаписатьНачалоЭлемента("type");
ЗаписьXML.ЗаписатьТекст(" ");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьНачалоЭлемента("description");
ЗаписьXML.ЗаписатьТекст(" ");
ЗаписьXML.ЗаписатьКонецЭлемента();
//ЗаписьXML.ЗаписатьНачалоЭлемента("stall");
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
//ЗаписьXML.ЗаписатьНачалоЭлемента("stalls");
//ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
КонецПроцедуры

Процедура ЗанятыеПлощадиНажатие(Элемент)
ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\Users\Administrator\Desktop\выгрузки 1с\zanatiePloshadi.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("stalls_info");
//ЗаписьXML.ЗаписатьТекст("Информация о забронированных местах");
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|    бит_АрендуемыеПлощади.Период,
|    бит_АрендуемыеПлощади.Регистратор,
|    бит_АрендуемыеПлощади.НомерСтроки,
|    бит_АрендуемыеПлощади.Активность,
|    бит_АрендуемыеПлощади.ДоговорКонтрагента,
|    бит_АрендуемыеПлощади.Помещение,
|    бит_АрендуемыеПлощади.Помещение.Наименование как ПомНом,  
|    бит_АрендуемыеПлощади.ВидПлощади,
|    бит_АрендуемыеПлощади.Площадь,
|    бит_АрендуемыеПлощади.Ставка,
|    бит_АрендуемыеПлощади.СтавкаСНДС,
|    бит_АрендуемыеПлощади.ДатаНачала,
|    бит_АрендуемыеПлощади.ДатаОкончания,
|    бит_АрендуемыеПлощади.Статус,
|    бит_АрендуемыеПлощади.РасчетПоСтавкеСНДС,
|    бит_АрендуемыеПлощади.ВидРезервирования,
|    бит_АрендуемыеПлощади.Приоритет,
|    бит_АрендуемыеПлощади.ПлановаяДатаРегистрацииДоговора
|ИЗ
|    РегистрСведений.бит_АрендуемыеПлощади КАК бит_АрендуемыеПлощади
|ГДЕ
|    бит_АрендуемыеПлощади.ДатаОкончания >=&Дата";
Запрос.УстановитьПараметр("Дата",    ТекущаяДата());     //Дата
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("stall_info");
//ЗаписьXML.ЗаписатьТекст("Информация о забронированном месте");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьНачалоЭлемента("number");
ЗаписьXML.ЗаписатьТекст(РезультатЗапроса.ПомНом);
ЗаписьXML.ЗаписатьКонецЭлемента();     
ЗаписьXML.ЗаписатьНачалоЭлемента("date");
ЗаписьXML.ЗаписатьТекст(Строка(Формат(РезультатЗапроса.ДатаОкончания,"ДФ=dd.MM.yy; ДЛФ=D")));
ЗаписьXML.ЗаписатьКонецЭлемента();     
ЗаписьXML.ЗаписатьНачалоЭлемента("stall_info");
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
//ЗаписьXML.ЗаписатьНачалоЭлемента("stalls_info");
//ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
    
    
КонецПроцедуры
1 Murzz
 
20.09.13
15:43
Учись пользоваться atl+shift+F , разбираться в таком нагромождении текста нет никакого желания.

Ну и для начала подсчитай количество "ЗаписатьНачалоЭлемента" и "ЗаписатьКонецЭлемента"
2 asder117
 
20.09.13
15:46
(1) Спасибо на добром слове. количество посчитал правильное
3 Ёпрст
 
20.09.13
15:53
(2) врешь ведь.. уже  в первом файле лишняя ЗаписатьКонецЭлемента есть в цикле.
4 Serginio1
 
20.09.13
15:56
Пользуйса пакетом XDTO