Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Янв 2017, 23:10
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Выгрузка в XML  (Прочитано 656 раз)

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

Оффлайн casper21

  • *
  • Сообщений: 19
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-04
  • Сайт: 
  • Профессия: Программист 1С
Как сделать чтобы вывело иерархически?
С группами?

Процедура ВыполнитьЗаписьДанных() Экспорт

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "----Выгрузка в узел----";
Сообщение.Сообщить();

    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("d:\temp\tovar.xml");
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("Корневой");

    // Записать атрибут элемента Корневой
    ЗаписьXML.ЗаписатьАтрибут("Справочник", "Товари");
    ЗаписьXML.ЗаписатьКомментарий("Элементы справочника:");

    Выборка = Справочники.Товари.ВыбратьИерархически();
    Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
        ЗаписьXML.ЗаписатьНачалоЭлемента("ЭлементСправочника");

            ЗаписьXML.ЗаписатьНачалоЭлемента("Код");
            ЗаписьXML.ЗаписатьТекст(Выборка.Код);
            ЗаписьXML.ЗаписатьКонецЭлемента();

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

            ЗаписьXML.ЗаписатьНачалоЭлемента("Виробник");
            ЗаписьXML.ЗаписатьТекст(Выборка.Виробник);
            ЗаписьXML.ЗаписатьКонецЭлемента();           

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

    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "----Конец выгрузки----";
Сообщение.Сообщить();
КонецПроцедуры

Этот код выводит просто список данных.
Это где-то надо поменять здесь?
 Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;


Оффлайн TrigubovichL

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2015-11-06
  • Сайт: 
  • Профессия: Программист 1С
Re: Выгрузка в XML
« Ответ #1: 11 Ноя 2015, 18:02 »
Да, Вы правы - "где-то здесь".
Например ках-то так:
...
    Выборка = Справочники.Товари.ВыбратьИерархически();
    ТекГруппа = Неопределено;
    Пока Выборка.Следующий() Цикл
        Если Выборка.ЭтоГруппа Тогда
            //тут маленькая примочка:
            Если ТекГруппа <> Неопределено Тогда
                //то есть начало уже писали - допишем конец:
                ЗаписьXML.ЗаписатьКонецЭлемента(); // конец тек.группы
            КонецЕсли;
            ЗаписьXML.ЗаписатьНачалоЭлемента("ГруппаСправочника"); // начало тек.группы
            ТекГруппа = Выборка.Ссылка; // и запомним ее, чтобы "закрыть" тэг

            ЗаписьXML.ЗаписатьНачалоЭлемента("Код");
            ЗаписьXML.ЗаписатьТекст(Выборка.Код);
            ЗаписьXML.ЗаписатьКонецЭлемента();

            ЗаписьXML.ЗаписатьНачалоЭлемента("Наименование");
            ЗаписьXML.ЗаписатьТекст(Выборка.Наименование);
            ЗаписьXML.ЗаписатьКонецЭлемента();
            // и т.д. - все что нужно для группы
           
            Продолжить;
        КонецЕсли;

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

            ЗаписьXML.ЗаписатьНачалоЭлемента("Код");
            ЗаписьXML.ЗаписатьТекст(Выборка.Код);
            ЗаписьXML.ЗаписатьКонецЭлемента();

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

            ЗаписьXML.ЗаписатьНачалоЭлемента("Виробник");
            ЗаписьXML.ЗаписатьТекст(Выборка.Виробник);
            ЗаписьXML.ЗаписатьКонецЭлемента();           

        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;   
 
   // и еще вот тут не забыть:
   Если ТекГруппа <> Неопределено Тогда
       //то есть начало уже писали - допишем конец:
       ЗаписьXML.ЗаписатьКонецЭлемента(); // конец тек.группы
   КонецЕсли;
 


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
165 Сообщений
alex0402
74 Сообщений
alexandr_ll
38 Сообщений
MuI_I_Ika MuI_I_Ika
36 Сообщений
LexaK
32 Сообщений
crow1983
31 Сообщений
sertak sertak
26 Сообщений
BuhRust
18 Сообщений
Vzonder
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

  • Точка Гостей: 340
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal