новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Формирование файла 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-файла.

 
0
Читайте также
Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы !
Как из MS Excel правильно печатать документы?
Полнотекстовой поиск и нечеткий поиск
"Возможность полнотекстового и нечеткого поиска"
Разработки
Выгрузка в XML саправочника "Контрагенты" для БГУ
Справочник "Контрагенты" выгрузка в xml
Конвертация xml файла в dbf
Как быстро осуществить конвертацию xml в dbf
Загрузка ПРАЙСОВ из XLS в УТ11
Как загрузить прайсы в УТ 11
Еще от автора
≡ к списку статей