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

Загрузка/Выгрузка в XML

Автор Makifka, 20 окт 2010, 21:02

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

Makifka

Объясните пожалуйста, как вручную выгрузить справочник Контрагенты с договорами из одной базы и загрузить в другую через XML-документ. Конфигурация у баз одинаковая.

progmikon

"универсальный обмен данными xml"?

Makifka

да, только вручную, программно внешней обработкой, не обращаясь к универсальному обмену данными

progmikon

Простейший вариант выгрузки

ФXML = Новый ЗаписьXML;
ФXML.ОткрытьФайл("Z:\kontragenty.xml");
ФXML.ЗаписатьНачалоЭлемента("Главный");
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
ЗаписатьXML(ФXML, Выборка.ПолучитьОбъект());
КонецЦикла;
ФXML.ЗаписатьКонецЭлемента();
ФXML.Закрыть();

Makifka

И он целиком выгрузится со всеми реквизитами  в виде дерева или только наименования в столбик?

progmikon

Со всеми реквизитами. Там где в реквизитах тип значения ссылочный выгрузится внутренний идентификатор объекта

Makifka

Хорошо, а обратно как загрузить в другую базу? Со всеми реквизитами

Makifka

то есть изначально я должна создать чистый файл с расширенbем XML, чтобы потом выбрать?

Makifka

Документ сам создался))

progmikon

Вот готовый комплект:
Выгрузка:

Файл = Новый ЗаписьXML;
Файл.ОткрытьФайл("Z:\kontragenty.xml");
Файл.ЗаписатьНачалоЭлемента("Главный");
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Файл.ЗаписатьНачалоЭлемента("Элемент");
ЗаписатьXML(Файл, Выборка.ПолучитьОбъект());
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;
Файл.ЗаписатьКонецЭлемента();
Файл.Закрыть();

и загрузка

ДанныеXML = Новый ЧтениеXML;
ДанныеXML.ОткрытьФайл("Z:\kontragenty.xml");
Пока ДанныеXML.Прочитать() Цикл
Пока ДанныеXML.Прочитать() Цикл
Пока ДанныеXML.Прочитать() Цикл
Если ВозможностьЧтенияXML(ДанныеXML) Тогда
НовыйОбъект = ПрочитатьXML(ДанныеXML);
НовыйОбъект.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ДанныеXML.Закрыть();

Теги:

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

Рейтинг@Mail.ru

Поиск