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

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

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

Оффлайн casper21

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 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 авторов за месяц

oleg-x
135 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
79 Сообщений
alex0402
79 Сообщений
BuhRust
26 Сообщений
AIFrame
24 Сообщений
Golickoff Golickoff
22 Сообщений
ilyay ilyay
21 Сообщений
Варвар
20 Сообщений
Kironten
19 Сообщений
Римма
18 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal