Описание и установка обработки «Выгрузка и загрузка данных XML»
Универсальная обработка «Выгрузка и загрузка данных XML» производит полную или частичную выгрузку данных информационной базы в файл в формате XML. Впоследствии этот файл может быть загружен в информационную базу с помощью этой же обработки. Формат файла выгрузки отличается от формата файла, создаваемого при выгрузке по плану обмена, заголовочной частью.
Обработка может использоваться только в тех случаях, когда информационная база, в которой осуществлялась выгрузка данных, и та, в которой данные загружаются, являются однородными (конфигурации идентичны, данные могут различаться), либо все выгружаемые объекты практически полностью идентичны по составу и типам реквизитов и табличных частей, свойствам «ведущего» объекта метаданных и т. д.
Использование этой обработки возможно, например, для создания полной или частичной резервной копии данных, осуществления обмена данными между информационными базами, а также как вспомогательный инструмент при восстановлении сбойных информационных баз.
Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.
Обработка «Выгрузка и загрузка данных XML» поставляется в составе конфигурации «Конвертация данных, редакция 2».
Внешняя обработка Выгрузка и загрузка данных XML.epf для запуска в «1С:Предприятии» версии 8.3 находится в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML
Подскажите как программно создать файл xml

Не устроил ответ?
Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.
Реклама
Новые вакансии
- Вакансия: Разработчик 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»;
файл_.Записать(временныйФайл_);
Я так текстовый файл передавал .