Как создать файл xml в 1с
Перейти к содержимому

Как создать файл xml в 1с

  • автор:

Описание и установка обработки «Выгрузка и загрузка данных XML»

Универсальная обработка «Выгрузка и загрузка данных XML» производит полную или частичную выгрузку данных информационной базы в файл в формате XML. Впоследствии этот файл может быть загружен в информационную базу с помощью этой же обработки. Формат файла выгрузки отличается от формата файла, создаваемого при выгрузке по плану обмена, заголовочной частью.

Обработка может использоваться только в тех случаях, когда информационная база, в которой осуществлялась выгрузка данных, и та, в которой данные загружаются, являются однородными (конфигурации идентичны, данные могут различаться), либо все выгружаемые объекты практически полностью идентичны по составу и типам реквизитов и табличных частей, свойствам «ведущего» объекта метаданных и т. д.

Использование этой обработки возможно, например, для создания полной или частичной резервной копии данных, осуществления обмена данными между информационными базами, а также как вспомогательный инструмент при восстановлении сбойных информационных баз.

Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.

Обработка «Выгрузка и загрузка данных XML» поставляется в составе конфигурации «Конвертация данных, редакция 2».

Внешняя обработка Выгрузка и загрузка данных XML.epf для запуска в «1С:Предприятии» версии 8.3 находится в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML

Подскажите как программно создать файл xml

74600

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

Реклама

Новые вакансии

  • Вакансия: Разработчик 1С, Москва, удалёнка/гибрид, 200-300 net от yskinkurogova
    Вчера в 13:25
  • Вакансия аналитика 1с УТ от 200K, гибрид от Татьяна Астахова
    25 января 2024 г.
  • Вакансия Программист 1С (Москва, гибрид) 250-300т.р. от paulaja03@gmail.com
    23 января 2024 г.

Формирование файла XML. Простая выгрузка для стороннего приложения

В организации учет может вестить не только в решениях на платформе 1С:Предприятие, но и в других программным комплексах (Галактика, Парус, SAP и прочее). При этом появляются задачи интеграции двух приложений.

Напрмер, в некотором приложении (назовем его «X») требуется прочитать список документов конфигурации. О практической пользе решения подобной задачи говорить не будем, отмечу лишь, что наиболее удобным и универсальным способом в такой ситуации будет выгрузка списка документов в формате XML .

Изображение

Обмен с использованием этого формата является универсальным, поскольку с ним могут работать большинство приложений. Рассмотрим как можно из 1С:Предприятия выгрузить список документов конфигурации в XML-файл.

Выгрузка в XML

И так, перейдем к главному. Нам нужно обойти список метаданных документов и сформировать список в XML-файле. На следующем скриншоте представлен алгоритм формирования XML-файла:

Функция СоздатьXML() Экспорт // Получаем имя временного файла Путь = ПолучитьИмяВременногоФайла(); // Инициализируем класс "ЗаписьXML" Запись = Новый ЗаписьXML; // Открываем временный файл для записи Запись.ОткрытьФайл(Путь, "UTF-8"); // Записываем объявление XML-файла Запись.ЗаписатьОбъявлениеXML(); // Запись.ЗаписатьНачалоЭлемента("ДокументыКонфигурации"); // Первый элемент // Атрибут первого элемента с датой формирования файла Запись.ЗаписатьАтрибут("generated", Формат(ТекущаяДата(), "ДФ=гггг-ММ-ddThh:mm:ss; ДЛФ=DT")); // Записываем элемент для каждого документа конфигурации. В текст помещаем имя документа. Для Каждого Док Из Метаданные.Документы Цикл Запись.ЗаписатьНачалоЭлемента("Документ"); Запись.ЗаписатьТекст(Док.Имя); Запись.ЗаписатьКонецЭлемента(); КонецЦикла; // Завершаем запись первого элемента Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); // Закрываем файл // Получаем двоичные данные файла и помещаем их во временное хранилище ДвоичныеДанные = Новый ДвоичныеДанные(Путь); Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор); Возврат Адрес; // Возвращаем адрес файла в хранилище КонецФункции 

Каждый созданный элемент должен быть правильно завершен. После выполнения «ЗаписатьНачалоЭлемента()» обязательно должен быть выполнен метод «ЗаписатьКонецЭлемента», иначе структура XML-файла будет некорректной.

Общий шаблон создания XML-файлов предсавляет собой следующую последовательность:

// 1. Инициализируем класс "ЗаписьXML" Запись = Новый ЗаписьXML; // 2. Открываем временный файл для записи Запись.ОткрытьФайл(Путь, "UTF-8"); // 3. Записываем объявление XML-файла Запись.ЗаписатьОбъявлениеXML(); // // 4. ++ Записываем содержимое XML-файла Запись.ЗаписатьНачалоЭлемента("ЭлементXML"); Запись.ЗаписатьКонецЭлемента(); // -- Записываем содержимое XML-файла // 5. Закрываем файл Запись.Закрыть(); 

С помощью этих пяти шагов создается практически любой XML-файл.

В нашем примере созданный файл переводится в двоичные данные и возвращается в место вызова функции «СоздатьXML». Далее этот файл может быть записан в файловую систему.

Пример выгруженного файла Вы могли видеть на скриншоте выше.

Стороннее приложение

Для примере создал приложение на .NET Framework, чтобы продемонстрировать чтенеие XML-файла в стороннем приложении.

Програма читает созданный файл и выводит документы в виде списка:

Изображение

Можете попробовать сами, приложение доступно для загрузки по ссылке в конце статьи.

Универсальность

Формат XML используется в большинстве конфигурации обмена данными между прикладными решениями на платформе 1С:Предприятие. Другим часто используемым способом обмена является подключение через COM-соединение. XML-позволяет выполнять обмен практически с любыми приложениями, чем и заслужил называться универсальным.

Файлы для загрузки:

Приложение чтения XML-файла.

Обработка формирования XML-файла.

Как создать файл xml в 1с

ЗаполнитьXML(ЗаписьXML);
ЗаписьXML.Закрыть();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьXML(ЗаписьXML)

Пишет ошибку, нельзя передавать ЗаписьXML, как правильно поступить в таком случае?

ЗаписьXML создавай на сервере
А вот это вот
ЗаписьXML.ОткрытьФайл(«d:\пример.xml»);
проканает на сервере?
(0) получай данные для XML на сервере, пихай в записьXML на клиенте

(3) Очень много циклов будет туда-сюда передавать, если б дерево значений можно было передать. а так((((

(2) если доступ с сервера есть к этому пути, то да .

Что-то типа того:

На клиенте:
файлТекстовый_ = Новый ДвоичныеДанные(путь_);
АдресХранилища = ПоместитьВоВременноеХранилище(файлТекстовый_, Новый УникальныйИдентификатор);

На сервере:
файл_ = ПолучитьИзВременногоХранилища(СокрЛП(АдресХранилища));временныйФайл_ = КаталогВременныхФайлов() + «\» + СтрЗаменить(СокрЛП(АдресХранилища),»/», «-«) + «.log»;
файл_.Записать(временныйФайл_);

Я так текстовый файл передавал .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *