Une brève description de la création d'un fichier XML par schéma XSD sur l'exemple de création de déclarations statistiques de déchargement pour la FCS. Objet de jeu de données typé. Lecture et enregistrement de documents XML Créez un fichier XSD en 1C 8.2

Annotation: Schémas de données XML (XSD). Création d'un schéma XSD dans l'environnement Visual Studio .NET. Créer un objet de jeu de données tapé. Recevoir des informations sur la structure de l'objet DataSet. Chargement des documents XML et des schémas XSD aux objets de jeu de données Tapés et normaux. Readexml et ReadxMlSchema Méthodes. Enregistrez le contenu et la structure d'un objet de jeu de données saisi et conventionnel. Méthodes WRITEXML et WRITEXMLSCHEMA

Objet de jeu de données typé. Lecture et enregistrement de documents XML

Schémas de données XML (XSD)

Circuits de données 1. Traduction précise du document de schéma XML -< schéma de document XML\u003e Cependant, nous continuerons d'utiliser le terme "régime de données XML". XSD (document de schéma XML, XSD) est une solution alternative de construire des documents XML. Par rapport à la DTD, les schémas ont des moyens plus puissants pour déterminer des structures de données complexes, fournir une manière plus compréhensible de décrire la grammaire de la langue, sont capables de mettre facilement à jour et de se développer. Le schéma XSD peut contenir les informations suivantes:

  • représentation des liaisons entre les éléments de données, similaires aux liens des clés externes entre les tables de la base de données relationnelle;
  • représentation d'identifiants uniques similaires à la clé primaire;
  • spécification de type Données de chaque élément individuel et attribut dans le document XML.

Pour créer un schéma de données dans Visual Studio .NET dans le menu principal, accédez au fichier \\ Nouveau \\ Fichier et sélectionnez dans la liste des modèles (voir Fig. 11.3) Schéma XML. Une fenêtre apparaît avec l'inscription "Pour démarrer, faites glisser des objets de l'explorateur de serveur ou de la fenêtre de la boîte à outils vers l'espace de travail (zone de conception) ou sur le bouton droit de la souris sur" (Fig. 11.1):


Figure. 11.1.

Le fait est que nous sommes en mode de conception. Nous passons au mode de code, pour lequel cliquez sur le bouton (XML):

La première ligne est une indication familière que le schéma est un document XML avec l'élément racine XS: schéma. Le préfixe XS: précède tous les éléments du schéma, pointant vers son espace de noms. Dans la deuxième ligne, il existe une description longue, détaillée et souvent complètement inutile du schéma (comparez avec le même code pour les pages HTML). Pour un travail correct, il suffit de limiter la soumission suivante:

Cependant, le rendu intégré du studio suggère ce "capuchon". Il ne doit donc pas être supprimé. Création d'un schéma décrivant le document XML spécifié dans l'environnement Visual Studio .NET est une tâche assez simple. Créez le document suivant xmleasy.xml:

1

Passer à l'onglet (Données) et voir un seul enregistrement (Fig. 11.2).


Figure. 11.2.

Vous pouvez créer un diagramme décrivant ce document de plusieurs manières: dans le menu principal, sélectionnez "Schema XML \\ Créer" (Fig. 11.3, A), en mode XML dans le menu contextuel, sélectionnez le même élément (Fig. 11.3, B ), En mode Données dans le menu contextuel, sélectionnez cet élément (Fig. 11.3, B) et enfin, dans le mode Data, cliquez sur le bouton de la barre d'outils XML (Fig. 11.3, D).


Figure. 11.3.

Dans tous les cas, un schéma de documents apparaît sous la forme d'une table (figure 11.4). Laissons le mode de schéma et passons au mode (XML).


Figure. 11.4.

Le milieu a généré le code XML décrivant la structure de document:

Cela inclut une description requise pour une autre manipulation par le schéma utilisant des objets ADO .NET. Dans le document source XMleasy.xml, un lien vers le schéma de données est apparu:

Le document XMLEASY.XSD a été créé automatiquement dans le même répertoire lui-même, où XMleAsey.xml est situé.

Pour apprendre à comprendre les schémas XSD, il devrait d'abord fonctionner avec une description des données de sa forme pure, sans éléments supplémentaires. Le tableau 11.1 fournit plusieurs documents XML simples et leurs schémas formés sans contraignation d'objets ADO .NET.

Tableau 11.1. Exemples de schémas XSD
Contenu de document XML Contenu de schéma XSD

1

La description
Dans le document XMleasy.xml, l'élément de tournée est un élément racine contenant un élément d'Idateur enfant. Le schéma global de l'élément racine a la forme suivante:

: Élément de contenu ...

Les filiales sont décrites comme suit:

Contenu de document XML Contenu de schéma XSD

1 Chypre 25 000,00. Le prix de deux bons d'achat adultes comprend le prix d'un enfant (jusqu'à 7 ans) 2 Grèce 32 000.00. En août et septembre, des remises spéciales fonctionnent 3 Thaïlande 30 000,00. Non compris le billet d'avion 4 Italie 26 000.00. Le petit-déjeuner à l'hôtel est inclus dans le coût d'un billet 5 France 27 000,00. Des excursions supplémentaires ne sont pas incluses dans le coût d'un billet

La description
La table d'élément racine contient un élément de la tournée, ce qui est à son tour du groupe d'éléments enfants. L'élément de choix détermine le choix d'autres éléments et la valeur «Unlounded» (illimitée) Attribut Maxoccuper indique la capacité d'illimité de la présence de groupes de voyages.

: :

Contenu de document XML Contenu de schéma XSD

1 Chypre 25 000,00. 1 Le prix de deux bons d'achat adultes comprend le prix d'un enfant (jusqu'à 7 ans)


Figure. 11.5
La description
Pour IDTour Item, le type de données INT a été installé pour l'élément fermé - type Boolean, pour le reste - Par défaut Type String. Vous pouvez modifier le type de données directement dans le mode de diagramme de données XML, mais plus pratique - en mode Schema (dans ce cas, le mode s'appellera DataSet) Sélectionnez le type de données dans la liste déroulante (Fig. 11.5):

Au cours du cours, vous trouverez tous les fichiers de cette table dans le dossier XSD (CODE \\ GLAVA5 \\ XSD).

Réglage du type de données dans le document XML (le dernier exemple est le tableau. 11.1) est l'un des moyens de limiter le contenu. Des attributs supplémentaires sont appliqués pour limiter la valeur du type spécifié. Dans le fragment suivant du circuit, la valeur du prix de l'élément doit être comprise entre 50 et 100:

Pour limiter le document XML, certaines valeurs fixes utilisent la conception suivante:

Ici, l'élément de nom ne peut prendre qu'une seule valeur fixe des cinq noms des pays.

Le développement du système XSD est tout à fait un travail de peinture. Visual Media Visual Studio .net facilite considérablement cette tâche. Pour maîtriser les concepts de base, il est souhaitable d'étudier plusieurs documents XML créés automatiquement. Les tableaux 11.2-11.4 décrivent les éléments principaux et les attributs qui peuvent être trouvés simultanément.

Tableau 11.2. Schémas XSD
Élément La description
tout. Les éléments imbriqués peuvent être déterminés dans un ordre aléatoire
annotation. Éléments d'élément parental-commentaire et
quelconque. Tout article imbriqué
anyattribuer. Tous les attributs
informations sur l'application. Commentaire de l'élément. Spécifie le titre de schéma
attribut. Attribut
attributgroup. Groupe d'attributs
choix Choisir d'autres éléments. Analogue de l'opérateur "|" en DTD.
complexeContent Restrictions ou expansion du modèle Type complexe de contenu
complextype. Elément de type complexe
documentation Élément-commentaire. Fournit des informations sur le schéma
Élément. Élément
extension Élément expansion
domaine Annonce du champ. Utilisé à l'intérieur de l'élément Pour déterminer les champs
grouper. Groupe d'éléments
importer Importation de déclarations de type d'un autre schéma
inclure. Activer un autre schéma dans l'espace de noms existant
clé Définition d'un élément ou d'un attribut de clé pointant vers un autre élément
keyrf. Définition d'un élément ou d'un attribut à quels points clés
lister Un élément pouvant contenir une liste de valeurs
redéfinir Remplacer déjà des articles déjà déclarés
restriction Restriction de l'élément
schéma. Élément racine du circuit
sélecteur Sélecteur pour sélectionner des éléments XML
séquence Séquence d'autres éléments. Analogue de l'opérateur "," en DTD
simpleContent Modèle, dont le contenu ne représente que des données symboliques
simpleType. Élément de type simple
syndicat Un élément ou un attribut qui peut avoir une valeur multiple
unique Élément ou attribut qui doit avoir une valeur unique
Tableau 11.3. Attributs - Limitations des systèmes XSD
Attribut La description
énumération liste des valeurs
longueur. Longueur
longueur maximale. Longueur maximale
longueur minimale Longueur minimale
maximum exclusif. Valeur maximum
maxinclusive. Valeur maximale inclusive
minexclusive. Valeur minimum
minoclusion. La valeur minimale inclusive
fractionDigits. Nombre de points-virgules en nombre fractionnaire
totaldigits. Nombre de chiffres
schéma. Échantillon (modèle) du contenu des éléments
défaut. L'élément par défaut ou la valeur d'attribut
elementformDEfault. Définition des propriétés de l'élément local comme définie globalement
fixé Valeur fixe de l'élément ou de l'attribut
forme Les articles annoncés localement sont définis dans des copies spécifiques des documents.
type d'élément. Type d'éléments de la liste
membres. Type de membres utilisés dans Union (Union)
maxocarques. Nombre maximum d'entrées d'élément
minocommunis. Quantité minimale d'entrée d'élément
mixte. Définition d'un élément ayant un type mixte
nom. Nom de l'élément ou de l'attribut
espace de noms. Noms d'espace
nONAMESPACE. Réglage de l'emplacement du schéma de document,
Schéma ne pas avoir des espaces de noms résultants
nilable Déterminer que l'élément peut avoir une valeur vide null (nil)
réf. Définir des liens vers un élément défini dans le monde
schéma Détermination de l'emplacement du schéma
groupe de substitution Détermination du remplacement des éléments par d'autres éléments
cibleNamespace. Espace de noms de schéma résultant
taper Type d'élément
utiliser Est l'élément obligatoire ou non
valeur La valeur de l'élément de diagramme
xSI: nil. Définissez le contenu réel de l'élément vide (NULL) XML Document
xSI: Schemalocation Emplacement réel de l'élément dans le document XML
xSI: Tapez. Type d'élément réel dans le document XML

Une erreur indiquant que le fichier ne correspond pas au schéma XSD est commun aux cas où le système ne peut pas lire les données du rapport. En général, ces erreurs chez l'homme se produisent souvent et il est assez facile de les faire face.

Tout d'abord, vous devez déterminer ce que le schéma XSD signifie comprendre ce que votre fichier ne correspond pas.

Donc, xsd est langage de programmation, Avec cela, il décrit la structure de votre rapport. La structure comprend, par exemple, le contenu, le type, la vue, ainsi que la syntaxe de données, les partitions contenant des informations.

Il s'avère que le schéma XSD est description de la structure de votre rapporteffectué sur l'une des langues de programmation. Si des informations incorrectes sont apportées au rapport, il sera simplement impur pour le schéma, c'est pourquoi le système émet une erreur que le fichier ne correspond pas au schéma XSD.

Cela suggère que les informations que vous avez entrées ne peuvent pas être lues dans la langue de programmation. Par conséquent, le programme reconnaît son incorrect.

Il convient de noter que ce problème peut survenir comme à cause de Données incorrectement entrées (Par exemple, vous vous êtes trompé lorsque l'auberge de l'organisation a été introduite) et en raison du mauvais format d'introduction de données (par exemple, vous avez indiqué des lacunes ou des traits d'union inutiles).

Cependant, ce n'est pas la seule raison qui provoque l'incohérence du fichier de schéma XSD. Cette erreur peut également survenir en raison du fait que la version obsolète du programme est installée sur votre appareil dans lequel vous établissez un rapport, ainsi que si le programme n'a pas été mis à jour dans l'autorité fiscale.

Afin de résoudre l'erreur dans le schéma XSD, vous aurez besoin de vérifiez l'exactitude de toutes les données, Ce que vous avez entré, ainsi que préciser si la mise à jour du programme dans lequel vous travaillez n'est pas. Cependant, avant de vérifier le fichier, examinez soigneusement le texte de l'erreur qui vous donne.

Le fait est que dans certaines situations après le texte que le fichier ne correspond pas au schéma, il y a un point de côlon, puis indique la raison de ce problème. Si la raison de l'erreur elle-même n'est pas spécifiée, mettez à jour le programme à la dernière version.

Après avoir terminé la mise à jour, essayez d'envoyer à nouveau votre rapport. Si après la mise à jour du fichier, donne une erreur, elle est nécessaire. Cherche un problème de problème. Si vous travaillez dans le programme 1C, vous pouvez utiliser le fichier à l'aide d'un bouton spécial appelé "Vérifier sur Internet".

Si les deux éléments précédents ne vous a pas aidé à identifier le problème, vérifiez si vous êtes tous les champs obligatoires, que vous ayez entré toutes les données, car beaucoup d'entre eux doivent remplir des chiffres, auquel cas il est très facile de Autoriser les fautes de frappe.

De plus, vous devez vérifier tous les champs en l'absence de lacunes inutiles, d'un trait d'union et d'autres caractères. Si vous avez vérifié l'intégralité du fichier et que vous ne pouvez pas trouver une erreur ou si j'ai réussi à trouver une erreur, mais vous ne pouvez pas le réparer, vous ne pouvez certainement pas résoudre contacter le support technique Programmes avec lesquels vous effectuez un rapport ou à ses développeurs.

Afin de résoudre ce problème à l'aide des développeurs de programmes, vous devrez envoyer des documents, tels que le fichier lui-même dans lequel le rapport est le protocole de notification que l'ordinateur vous envoie.

De plus, les développeurs peuvent vous demander des informations sur votre organisation, ainsi que d'autres informations qu'ils sembleront nécessaires, vous devez leur fournir, sinon cela ne sera pas en mesure de résoudre le problème.

Donc, si vous essayez d'envoyer un rapport à l'autorité fiscale, mais le fichier donne une erreur qu'il ne correspond pas au schéma XSD, cela signifie que votre rapport. ne peut pas être envoyé Puisque le programme ne peut pas lire les données que vous avez entrées.

Mais la panique n'en vaut pas la peine, car dans la plupart des cas, ce problème Résolu assez simple et vite. En outre, si le rapport que vous avez envoyé à temps, mais il n'a pas été accepté en raison du mauvais format, puis de la taxe. n'a pas le droit de finir Vous n'avez pas à temps un rapport. Tout d'abord, faites attention au texte de l'erreur elle-même, peut-être déjà indique déjà la raison de son événement.

En fait, les raisons ne peuvent être que deux. Ou vous avez installé sur l'appareil version ancienne du programmeAvec l'aide de laquelle vous établissez un rapport, dans ce cas, résout le problème facilement, il vous suffit de télécharger la dernière mise à jour, il se trouve généralement sur le site Web que vous utilisez. La deuxième raison peut être que vous interprétez mal de certaines données ou que vous n'avez terminé aucun champ.

Dans ce cas, vous devez vérifier votre fichier, tout en vous rappelant que le programme peut envisager une erreur même. espace impair. Si vous ne trouvez pas la cause de l'erreur, vous pouvez contacter un support technique pour le programme, vous aiderez sûrement à résoudre votre problème.

Le format XML est très populaire lors de l'échange de divers documents texte entre systèmes d'information. La possibilité de créer une structure unique de documents lui permet d'être utilisée dans de nombreux domaines: bibliothèques électroniques, Web, importation / exportation, ainsi que de nombreux autres. Sans possibilité de travail pratique avec ce format, le système 1C ne serait pas capable d'obtenir une telle popularité. Étant donné que 1C utilise activement les technologies Web, chaque développeur devrait pouvoir lire des informations XML et enregistrer des informations.

Vue du fichier XML et le lire

L'un des principaux avantages de la langue de balisage XML est une structure et une syntaxe assez pratiques et intuitives. Lors de sa création, les auteurs fixent l'objectif de créer une langue de balisage qui conviendrait à la lecture et à l'homme et à l'ordinateur. À ce jour, XML a été largement développé dans d'autres formats, mais reste populaire et largement utilisé. La structure du fichier XML est construite selon le schéma suivant:

Pour envisager un exemple de données d'importation dans 1C sera suffisamment le fichier ci-dessus. Pour que la procédure écrite ait lu le fichier XML, il suffit de transmettre le chemin du fichier lui-même. Cela peut être fait via l'interface permettant aux utilisateurs de spécifier le fichier indépendamment ou durement dans le texte de traitement.

L'une des méthodes populaires de travail avec XML jusqu'à 100 Mo en 1C est considérée comme utilisée pour utiliser le modèle d'objet de document (DOM). Sa signification consiste à traiter alternativement tous les nœuds du document présenté dans XML. Dans la langue intégrée 1C, cet algorithme ressemble à ceci:

  1. Annonce de mécanismes avec lesquels le fichier XML est lu; Cycle pour contourner les nœuds;
  2. Lire des données et des attributs dans le nœud;
  3. Sortie d'informations. S'il y a un besoin, à ce stade, il peut être enregistré dans des variables ou immédiatement aux tables souhaitées;
  4. Achèvement du mécanisme.
& Nasserver Procédure Lire le serveur (Palefile) // Annonce des mécanismes de Mécanisme \u003d Nouveau ReadingXML; Mécanisme. OpenFile (Pulpe); Constructeur \u003d nouvelle constructeur; Document \u003d constructeur. UP (mécanisme); // cycle pour contourner les nœuds pour chaque élément du document. L'élément rapporte. Cycle. Cycle // lecture de données si l'élément. Éléments \u003d "Produit" puis Produit \u003d élément; Pour chaque valeur du produit. Cycle. Cycle. Si les valeurs de la valeur \u003d "Nom", le nom \u003d valeurs; Couleur \u003d nom. Attributs. Élément à haute démontage ("couleur"); Valeurs inattendantes. Éléments \u003d "prix" alors coût \u003d valeurs; Devise \u003d coût. Attributs. Élément de focalisation ("monnaie"); Terminé; Endyclycle; // affichage du rapport de messages ("Nom:" + nom. Basé sur le logiciel + "; Couleur:" + couleur. Traitement + "; Prix:" + Coût de la monnaie: "+ monnaie); Terminé; Endyclycle; // fermeture du mécanisme de non-perforation. Place (); Extrudromes

En conséquence, nous affichons des messages avec des données importées. Vous pouvez également placer toutes les données de la structure souhaitée et sur sa base pour programmer la création d'un document ou d'enregistrements dans le répertoire. La vitesse de fonctionnement 1C avec XML est suffisamment grande, de manière plus et plus souvent ce format est utilisé lors de l'échange de données avec d'autres sources.

Pour décharger des informations, nous utilisons également une interaction avec les fichiers de format XML. Considérez un exemple d'enregistrement à l'aide des données ObjectXML de l'objet d'enregistrement 1C et déchargez les données sur la nomenclature. Les principaux avantages sont la simplicité de la vitesse de traitement de code et de traitement des données. L'algorithme d'enregistrement de fichier XML peut être représenté comme plusieurs étapes consécutives:

  1. Connectez-vous au fichier XML;
  2. Créez des éléments de tête et écrivez des données dans elles. Si vous souhaitez décharger dans le fichier XML, une quantité importante d'informations, alors à ce stade, vous aurez des cycles. Soyez prudent et n'oubliez pas que la demande de données doit être effectuée avant le cycle et non;
  3. Fermez le fichier.
// ouvre le fichier nomenclatura.xml et écrivez l'élément de tête à l'enregistreur \u003d Nouveau postsml \u200b\u200b(); OpenFile Picklefile ("D: Nomenclatura.xml", "UTF-8"); Opafphrablaiplatoire ("marchandises"); // Sélectionnez les données pour enregistrer le répertoire de sélection. Substitution. Valid (); // le cycle dans lequel l'enregistrement est enregistré pendant que l'échantillon est reçu. Suivant () Cycle // Enregistrement de nouvelles vannes d'enregistrement de données. Recrutement de recrutement ("Produit"); Enregistrer pickuptribut ("nom", sélectif playmaHter. Nom); Enregistrer pickuptribut ("démarrage", chaîne (échantillon.nachant)); Postpail. Recrutement (); Endyclycle; // Fermez l'élément de tête et le fichier d'enregistrement. EnregistrementCelerElement (); Post-plan. Fermer ();

Mécanisme XDTO en 1C

Les développeurs de la société 1C à échanger des informations via XML ont créé leur propre mécanisme - XDTO (objets de transfert de données XML). À partir de la version 8.1, la plate-forme apparaît la possibilité d'échanger des données avec d'autres systèmes, qui ne sont pas introduites dans la formation du fichier XML. La plupart des problèmes techniques prennent plus de 1 ° 1C et il suffit de spécifier les données nécessaires pour former un XML. Vrai, pour cela, le développeur doit faire quelques manipulations à l'avance.

Pour télécharger le fichier XML à l'aide de XDTO, nous devons informer la structure de fichier 1C. Il est transmis via un ensemble de schémas pouvant être créés dans l'éditeur de texte ou utiliser un programme spécialisé. En conséquence, le fichier décrivant la structure générale et les types de données utilisés dans le fichier XML doivent être avancés. Avant de lire ou d'enregistrer un nouveau XML, le développeur doit le télécharger jusqu'à la section "PackagesXDOto Packets".

Dans ce cas, créez vos mains un package simple de sorte que 1C comprend la structure de notre fichier par exemple. Pour que le formement de fichier soit terminé avec succès, nous devons réfléchir au schéma que nous avons un élément de tête et une pièce jointe avec des attributs. Le schéma créé doit être exporté vers le fichier de format XSD et le transfert avec XML afin que l'autre côté n'a pas besoin de traiter la structure et de créer à nouveau un package XDTO.


Enregistrer le nouveau XML sur le disque dur aide l'algorithme de serveur similaire à celui précédent. La différence ne consiste que sur la nécessité d'ajouter des données à 1 produit à l'usine XDo - le mécanisme spécial de la plate-forme 8.3 1c. S'il est nécessaire de faire plus de niveaux de nidification - vous devrez décrire chaque élément de tête.

// Ouvrez le fichier XML Dossier \u003d Nouveau RecordXML; OpenFile Picklefile ("D: Nomenclatura.xml", "UTF-8"); // indique 1C, quel type de données doit être créé - l'élément de tête de Nascular \u003d FactoryXDo. Créer (FactoryXDo. Type ("http://wiseadvicexml.org", "Marchandises")); // Sélectionnez les données de déchargement de l'excursion \u003d livres de référence. Namerenclature. Equip (); // ajoutez des éléments séparés à l'élément de tête jusqu'à ce que l'exempleProoper. Suivant () Cycle Item \u003d FactoryXDo. Créer (FactoryXDo. Type ("http://wiseadvicexml.org", "Produit")); Produit. Nom \u003d monocopropre. Nom; Produit. Prix exclusif \u003d chaîne (échantillon. Prix propriétaire); Nutomovars. Ajouter (produit); Endyclycle; // enregistrer les données et fermer l'usine FactoryXDTo. Recruitxml (post-plan, soufflet); Post-plan. Fermer ();

Les mécanismes considérés sont assez universels et la plupart des tâches peuvent le résoudre. Cependant, dans l'interaction de 1C et XML, il y a plusieurs nuances. Les études sont beaucoup plus efficaces dans des conditions réelles et non sur les tâches de test dans lesquelles le traitement du fichier XML résout des tâches assez étroites.

La tâche de créer un fichier XML basé sur le schéma XSD est apparu. Les recherches sur les forums ont abouti à un grand nombre de discussions relatives au malentendu du processus, et seulement quelques articles en expliquant l'essence. Les gens ont posé des questions, battent sur la décision, mais après la tâche qui leur a succombé, ils ont simplement disparu sans décrire le mécanisme. Il a poussé pour créer une description simple du processus.
P.s. Ne jurez pas fortement, mon objectif n'était pas de créer un article de certains score, à l'aide de la terminologie correcte, et le désir d'aider simplement à faire la première étape pour comprendre un mécanisme d'échange très puissant via XML.
P.p.s. Doit immédiatement faire une réservation que le fichier de déchargement connecté à l'article n'est qu'une pièce qui ne crée qu'une partie de la structure de fichiers XML souhaitée, car Mon travail avec ce déchargement avait plutôt un caractère cognitif (copiez le document d'exportation précédent sur le site Web de FCS et télécharger à partir d'Excel. "Fichier ARRIES Seule une partie tabulaire des marchandises a introduit une solution plus efficace) et le manque de temps n'a pas Permet d'ajouter la création de la structure entière, de continuer uniquement aux raisons du perfectionnisme.

Ainsi, en vous inscrivant sur le site Web de la FCS, il est devenu évident que la création de documents de compte rendu statistique sur les exportations nécessite le déchargement des données provenant de documents. Mise en œuvre de services de gestion des biens et services et créer un fichier à télécharger.

Il y a deux options de démarrage.

Premièrement: Chargement de la partie tabulaire avec les marchandises du fichier Excel (cette option a été choisie comme travailleur, car il y avait ces avantages qu'il n'était pas nécessaire de gêner le traitement des «capuchons» du document, et vous pourriez simplement copier le précédent en changeant le chapeau "Qu'est-ce qui était requis).

Deuxièmement: créer un fichier XML conformément au schéma téléchargé à partir du site FCT sous la forme de "Formats d'album de formes électroniques de documents". L'album est un grand nombre de schémas XSD. Ils ont trouvé un schéma de la "forme statistique de mouvement de produit" et de fichiers supplémentaires avec des descriptions de type. Les schémas sont attachés à l'article dans les archives de traitement.

Pour afficher les schémas XSD, un Notepad 2007 gratuit Microsoft XML a été utilisé.

L'image montre le fichier principal avec le schéma XSD "forme statistique de la comptabilité des marchandises en mouvement". L'image a mis en surbrillance les principaux blocs XSD du circuit à nous pour sa compréhension.

Du schéma, il est clair que nous devons obtenir un fichier XML rempli de la structure spécifiée dans la branche "XS: élément" du type StaticFormType.

La structure peut être assez compliquée (comme dans notre cas). Avec des descriptions de types présents directement dans la branche provoquée dans une branche distincte ou même dans un autre fichier.

Cette structure a un type de statiqueFormType, qui est à son tour consiste en un type de base de TypeType, un ensemble d'objets de types différents et d'attributs de texte.

Le type de base basé sur le type est décrit dans un autre fichier (et espace de noms)
.

Ce fichier contient plus de types de types qui ne sont pas utilisés dans notre cas.

Nous nous tournons maintenant vers le travail en 1c. En bref, ce que nous devons faire revient à ce qui suit:

1. Créé une usinexdo

Nasofabricxdo \u003d CreateFabricxDo (MassiveInfile SummixSD);

2. L'usineXDTO crée tous les types de données complexes, qui remplirons ensuite le fichier XML créé:

Staticformtype \u003d wash ("urn: Customs.ru: Information: Dicydocuments: Staticform: 5.4.0", "StaticformType");

Les types de données inclus dans certains types peuvent être obtenus à partir de la collecte de ses propriétés:

CuorganizationType \u003d staticformype. Succès. Versez ("destinataire"). Type; NameType \u003d CuorganizationType. Réussite. Versez ("Nom d'organisation"). Type; Commez-vous \u003d CuorganizationType. Réussite. Versez ("ShortName"). Type; LanguageCodeType \u003d CuorganizationType. Logiciel. Verser ("Organishlanguage"). Type;

3. Lorsque tous les types de données complexes sont créés, nous créons un fichier XML basé sur eux des objets de FactoryXDTo:

Staticformtype_bjectito \u003d washformype (staticformype); // Collection avec Documents NEWDOCUMENTS \u003d MYFABRICXDTO. CREATE (DocumentType); Newdocuments.prdocumentname \u003d myfofabrikaxdto. Créer (prdocumpleNameType, "Contour du produit"); Newdocuments.prdocumentnumber \u003d laver (prdocumumumbertype, "numéro 123"); Newdocuments.prdocumentdate \u003d myfabrikaxdto. Créer (prdocumentdateType, "2014-10-05"); Staticformype_bjectsxdto.documents. Auditer (Newdocuments);

Dans le même temps, remplissez les détails élémentaires (types simples).

4. Eh bien, enfin, décharger tout de l'usinexdo au fichier:

Filexml \u003d nouveau RecordXML (); Fichier filexml.text (nom); FileXML. Enregistrement XML (); Washxdto. Recruitxml (FileXML, StaticFormType_ObjectsXDO); FileXML. Fermer ();

P.s. L'archive contient le fichier vierge de déchargement dans XML (seuls certains détails sont créés, reflétant tout le cas de remplissage du fichier) et du schéma XSD.

Décompressez tous les fichiers dans certains répertoires.

XML sera créé dedans.