Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 15:29

Выгрузка в XML

Автор cobra77777, 15 сен 2013, 20:35

0 Пользователей и 1 гость просматривают эту тему.

cobra77777


Здравствуйте!


Прошу сильно не пинать я начинающий.
Код собственно представлен. Почему собственно не создается файл itog.xml ?


&НаСервере


Процедура Команда1(Кнопка)
   
ЗаписьXML = Новый ЗаписьXML;


ЗаписьXML.ОткрытьФайл("C:\itog.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Выгрузка");




Выборка = Документы.Прием.Выбрать();


Пока Выборка.Следующий()Цикл
   
   ЗаписьXML.ЗаписатьНачалоЭлемента("Выгрузка");
   
   ЗаписьXML.ЗаписатьАтрибут("Номер", Строка(Выборка.Номер));
   
ЗаписьXML.ЗаписатьКонецЭлемента();


ЗаписьXML.ЗаписатьКонецЭлемента();


ЗаписьXML.Закрыть();


КонецЦикла;


   
КонецПроцедуры




LordWizard


Эксель = Новый COMObject("Excel.Application");
        Книга = Эксель.WorkBooks.Open(ИмяФайла);
        Лист = Книга.WorkSheets(НомерЛиста);
        area  = Лист.UsedRange;
        НайденнаЯчейка = area.Find(ИскомоеЗначение);       
        Лист.Cells(НайденнаЯчейка.Row,НайденнаЯчейка.Column).Value = Значение;
        Книга.SaveAs(ИмяФайла);
        Эксель.Application.Quit();

вот пример кода тебе
где у тебя использовать приложение Exel вообще?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

cobra77777

а при чем тут excel ?

LordWizard

пардон. попутал.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Dethmontt

&НаКлиенте
Добавлено: 15 сен 2013, 21:21


Кнопка должны исполняться на КЛИЕНТЕ
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

LordWizard


//процедура выгружает элементы справочника "Физические лица" в файл формата XML

Процедура Лица_Выгрузить()

     //справочник

     С=СоздатьОбъект("Справочник.Лица");

     //анализатор

     Анализатор=СоздатьОбъект("AddIn.XMLParser");

     Корень=Анализатор.СоздатьДокумент();

     //данные

     Данные=Корень.СоздатьПодчиненныйЭлемент("Данные");

     Данные.УстановитьАтрибут("Дата",ТекущаяДата());

     Данные.УстановитьАтрибут("Время",ТекущееВремя());

     Данные.УстановитьАтрибут("Автор",гПользователь.Наименование);

     //наполнение

     Группа=Данные;

     С.ВыбратьЭлементы();

     Пока С.ПолучитьЭлемент()=1 Цикл

          Если С.ЭтоГруппа()=1 Тогда

               Группа=Данные.СоздатьПодчиненныйЭлемент(С.Наименование);

          Иначе

               Э=Группа.СоздатьПодчиненныйЭлемент("Лицо");

               Э.Значение=С.Код;

               Э.УстановитьАтрибут("Наименование",С.Наименование);

          КонецЕсли;

     КонецЦикла;

     //запись

     Корень.Записать("C:\People.xml");

     Предупреждение("ОК");

КонецПроцедуры


Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

cobra77777

Хотел еще такие моменты уточнить:
1) что с моим кодом не так?
2) почему когда я пишу директиву &На клиенте у меня выходит ошибка:переменная не определена Документ?
3) и еще хотел попросить, если не сложно привести пример Загрузки XML.


Спасибо заранее.

Dethmontt

1. Потому что кнопка есть только на клиенте и выполняться ее обработчик должен на клиенте!
2. Потому что менеджеры не доступны на клиенте для обращения к менеджерам нужно вызывать сервер!
3. Пример вашего же кода:

&НаКлиенте
Процедура Команда1(Кнопка)

   КомандаНаСервере();
   
КонецПроцедуры

&НаСервере
Процедура КомандаНаСервере()

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("C:\itog.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Выгрузка");

Выборка = Документы.Прием.Выбрать();

Пока Выборка.Следующий()Цикл
   
   ЗаписьXML.ЗаписатьНачалоЭлемента("Выгрузка");
   
   ЗаписьXML.ЗаписатьАтрибут("Номер", Строка(Выборка.Номер));
   
   ЗаписьXML.ЗаписатьКонецЭлемента(); 

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); //вынес из цикла что бы закрыть корень

ЗаписьXML.Закрыть(); //Закрываем когда выборка прошла весь цикл

КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cobra77777


Dethmontt БОЛЬШОЕ СПАСИБО !



Добавлено: 17 сен 2013, 13:13


Выгрузка файла прошла успешна в итоге я получил такой формат:
Как теперь произвести загрузку из файла itog.xml? Спасибо

<?xml version="1.0" encoding="UTF-8"?>
<Выгрузка>
   <Выгрузка Номер="000000001" Дата="05.02.2013 12:51:14" СотрудникГруппы="Иванов И.Т." СотрудникОтдела="Никулин Н.В." Деталь="Подшпиник" Склад="Основной" Описание="аввыафыа"/>
   <Выгрузка Номер="000000002" Дата="10.02.2013 10:52:14" СотрудникГруппы="Сидоров А.А." СотрудникОтдела="Ахметов А.П." Деталь="Подшпиник" Склад="Основной" Описание="ппара"/>
......................................
</Выгрузка>

Dethmontt

При помощи объекта ЧтениеXML
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск