Короткий опис створення xml файлу по xsd схемою на прикладі створення вивантаження статистичної

  • Короткий опис створення xml файлу по xsd схемою на прикладі створення вивантаження статистичної

З'явилася завдання створення XML файлу на основі XSD схеми. Пошуки по форумам приводили до великої кількості обговорень, пов'язаних з нерозумінням процесу, і всього до пари статей пояснюють суть. Люди задавали питання, билися над вирішенням, але після того як завдання піддавалася їм, просто зникали, що не описавши механізм. Це підштовхнуло на створення простого опису процесу.
P.S. Не сваріться сильно, моєю метою не було створення якоїсь наукоподібної статті, суворо використовує правильну термінологію, а бажання просто допомогти зробити перший крок до розуміння дуже потужного механізму обміну через XML.
P.P.S. Відразу повинен обмовитися, що додається до статті файл вивантаження є тільки заготівлею, що створює тільки частину необхідної структури XML файлу, тому що моя робота з цієї вивантаженням мала швидше пізнавальний характер (копіювати попередній документ з експорту на сайті ФТС і завантажувати з Excel'овского файлу тільки табличну частину Товари представилося більш ефективним рішенням), а недолік часу не дозволяв дописати створення всієї структури, виходячи тільки з міркувань перфекціонізму .

Отже, зареєструвавшись на сайті ФТС, стало зрозуміло, що для створення документів Статистичної звітності з експорту потрібно вивантаження даних з документів Реалізація товарів і послуг Управління торгівлею і створення файлу для завантаження.

Там можливо два варіанти завантаження.

Перший: завантаження табличній частині з Товарами з файлу Excel (цей варіант і був обраний як робочий, тому що мав ті плюси, що не треба було возитися з обробкою "Шапки" документа, а можна було просто копіювати попередній, змінивши в "Шапці "те, що було потрібно).

Другий: створення XML файлу за схемою скачаний з сайту ФМС у вигляді "Альбому форматів електронних форм документів". Альбом являє собою досить велику кількість XSD схем. У них була знайдена схема "Статистичної форми обліку переміщення товару" і додаткові файли з описами типів для неї. Схеми додаються до статті в архіві з обробкою.

Короткий опис створення xml файлу по xsd схемою на прикладі створення вивантаження статистичної

На зображенні показаний основний файл зі схемою XSD "Статистична форма обліку переміщення товару". На зображенні виділені основні блоки XSD схеми, необхідні нам для її розуміння.

Зі схеми видно, що нам треба отримати XML файл, заповнений структурою, зазначеної в гілці "xs: element" типу StaticFormType.

Структура може бути досить складною (як і в нашому випадку). З описами типів, присутніми безпосередньо в гілці, винесеними в окрему гілку або навіть знаходяться в іншому файлі.

Дана структура має тип StaticFormType, який в свою чергу, складається з базового типу BaseDocType, набору об'єктів різних типів і текстових атрибутів.

Короткий опис створення xml файлу по xsd схемою на прикладі створення вивантаження статистичної

Базовий тип BaseDocStyle описується в іншому файлі (і просторі імен)

Короткий опис створення xml файлу по xsd схемою на прикладі створення вивантаження статистичної
.

Цей файл містить в собі ще масу типів, які не використовуються в нашому випадку.

Тепер перейдемо до роботи в 1С. У двох словах, то що нам треба зробити зводиться до наступного:

1. Створюється ФабрікаXDTO

2. У фабрікеXDTO створюються всі складні типи даних, які далі ми будемо заповнювати в створюваному файлі XML:

Типи даних, що входять в якийсь тип, можна отримати з колекції його властивостей:

3. Коли всі складні типу даних створені, створюємо на їх основі структуру XML файлу, що складається з об'єктів ФабрікіXDTO:

Одночасно заповнюємо елементарні (простих типів) реквізити.

4. Ну і нарешті вивантажуємо все з ФабрікіXDTO в файл:

P.S. В архіві міститься файл заготовки вивантаження в XML (створюються тільки деякі реквізити, що відображають всі випадки заповнення файлу) і схеми XSD.

Розархівувати всі файли в деяку директорію.

XML буде створюватися в ній же.