Home - Recovery
Example of reading xml 1c. Generating the XML file

Data transfer is a very important process in any accounting system, the 1C 8.3 and 8.2 platform is no exception. Below we will look at instructions on the easiest way to transfer data from one system to another that has a similar configuration (for different configurations, you can use the programmer tool - or).

Before any action is necessary, the changes are irreversible!

The easiest and most convenient way to transfer data from 1C 8.3 to 1C 8.3 Accounting 3.0 is to use the processing Upload and load data in XML format (download - for 8.2 or for 1C 8.3 or on ITS). The treatment is universal and suitable for any configuration.

We will not go into details, but consider step-by-step instructions for migrating data using this processing using the example of a simple transfer of goods.

Uploading data to XML

First of all, let’s open processing in the source database (from where we will unload goods) and look at the interface:

Get 267 video lessons on 1C for free:

You must immediately fill in the “File name” field - a new data file will be created along this path, which we will upload to the receiver database. Just below, in the tabular section “Data for uploading”, you need to select the data that we want to upload from the database.

After selecting an object from the left table part, you can apply selection in the right table part:


In our example, I want to unload all products with the name “Rake”.

After all settings are completed, the data can be uploaded. To do this, click on the “Upload data” button:


Loading data from xml into 1s 8.3

The data has been unloaded from the source database; now it needs to be transferred to the destination database.

To do this, you need to start processing already in the database into which you need to load the data, and go to the “Download” tab, select the uploaded file on disk and click on the “Load data” button:


This example is only suitable for transferring data between identical configurations on the 1C platform. To understand the exchange mechanism for programmers, we wrote an article -.

Transferring information between databases is one of the tasks of their support and administration. For its effective implementation, processing is created in automated 1C complexes. They greatly facilitate routine work, speed up the processes of uploading and downloading information and at the same time implement control over its correctness. Uploading from 1c to xml allows you to create a file with the contents of any configured configuration object, and use it when you need to upload data to an identical configuration.

Tools for creating uploads

To export information contained in databases, the xml format is mainly used. For 1C, many processing methods have been developed (for example, UploadLoadDataxml82 epf), with the help of which it is possible to output and load data to a file. In this case, the user must receive a file of a certain structure, which allows the information stored in it to be loaded into the native database or transferred to another location. When creating an upload, the following rules must be observed:

  • Save the created files until full recovery and completion of procedures for verifying the correctness of the transferred information;
  • If you use processing as a backup tool, create separate subfolders for data copies and keep a log of them for quick retrieval.

Supplied in the 1C user support program universal processing"Unloading and loading XML data", which can be found on the ITS website or disks, is an excellent tool for exporting and importing information. The computer user can unload both the entire database and its individual objects, and in addition to the actual export, various operations are performed to verify information, helping to get rid of critical errors in data. Processing 1s, uploading to xml works in two modes:

  • Unloading. Creates a file containing user-defined pageable objects;
  • Loading. Reads a previously exported file and writes the information contained in it to the information base.

Processing allows you to check objects for invalid characters, and also includes a function for exporting information with restrictions.

Uploading can be used not only when exchanging information between 1C databases. With its help, you can ensure the integration of various complexes, for example, 1C and the Parus system. The versatility of the XML format allows you to create programs for transferring information for almost any information banks. Processing, uploading and downloading xml data is the most important tool for exchanging information.

The process of uploading data toxml

Let's look at how to upload from 1c to xml in normal mode. After downloading the processing UploadLoadDataxml.epf and opening it, you must perform the following steps:

  • Select objects for export;
  • Set up the necessary filters, for example, by period;
  • Determine the location of the file with information on the disk subsystem;
  • Start unloading objects.


It must be remembered that the header part of the upload file format differs from the file format used when uploading according to exchange plans.

xml

The xml is loaded into 1c into the receiving database with a configuration identical to the source database. Before loading xml 1c into 1c, you need to open processing in the receiving database. Then you need to specify the path to the previously uploaded file and download the data by clicking on the “Load data” button.

If necessary, checkboxes are activated to load data in exchange mode in a distributed infobase and ignore errors that occur when loading objects.


After this, you need to check the databases and make sure that all elements are loaded correctly so as not to lose them, for example, if an error occurred in the event handler after loading the object.


This processing allows you to exchange data between the same (identical) configurations on the 1C 8.2 platform - Bukh, ZUP, UT, UPP and others, the main thing is that the configurations are the same!

Processing screenshots

(foto)

Operating modes

Processing implements 2 operating modes: Uploads (creating an upload file specified by the user data) and Load (reading the upload file created by the mode of the same name and writing the data contained in it). The mode is set by selecting it in the Mode field.

Before starting a particular mode (clicking the Run button), you need to specify the name of the upload file, either by entering it manually in the "File name" field, or using the button to select this field and the standard file selection dialog.

In download mode, it is possible to edit the use of totals when writing registers, which may affect the download speed.

The "Disable totals" and "Enable totals" buttons are available when the "Enable the ability to edit the use of totals during data loading" flag is set and are used to manually control the mode of using totals when loading data.

Conditions for the applicability of processing

Processing can only be used in cases where the information base in which the data was uploaded and the one in which the data was loaded are homogeneous (the configurations are identical, the data may differ), or all the uploaded objects are almost completely identical in composition and types of details and tabular parts, properties of the “leading” metadata object, etc. It should be noted that, due to these limitations, processing is mainly intended for exchange between homogeneous IS.

The upload file format differs from the file format created when uploading according to an exchange plan in the header part. To upload data (directory elements, sets of register records, etc.), processing uses the same XML serialization mechanism as uploading according to exchange plans; in this part, the file formats are identical.

Determining the composition of the unloading

Processing allows for both full and partial uploading of infobase data to a file. The composition of the uploaded data is configured in the dialog by checking the boxes in the column of the tree that displays metadata objects for which data can be uploaded. An additional column of checkboxes, "If necessary", sets the need to unload objects of this type"by reference". That is, if the checkbox is checked only in the “If necessary” column, then the data for such an object will not be downloaded completely, but only to the extent that is necessary to maintain referential integrity in the infobase that will load the download file.

When opening a form, processing sets the sign of unloading by reference to all objects, which guarantees the referential integrity of the unloaded fragment of the information base.

When you click on the “Detect objects that are unloaded by link” button, processing analyzes which data links may be contained in objects that have the full unload attribute set, and automatically fills in the column of flags indicating the need to unload by link. If the object already has the full unload flag set, then the unload by reference flag is not set.

Possible applications

The use of this processing is possible, for example, to create a full or partial backup copy of data, exchange data between information bases, and also as an auxiliary tool for restoring problematic information databases.

In an organization, accounting can be kept not only in solutions on the 1C:Enterprise platform, but also in others software systems(Galaxy, Parus, SAP, etc.). This raises the challenge of integrating two applications.

For example, some application (let's call it "X") needs to read a list of configuration documents. We will not talk about the practical benefits of solving such a problem; I will only note that the most convenient and in a universal way in such a situation, a list of documents will be uploaded in XML format.

Exchange using this format is universal because most applications can work with it. Let's look at how you can upload a list of configuration documents to an XML file from 1C:Enterprise.

Upload to XML

And so, let's move on to the main thing. We need to traverse the list of document metadata and generate the list in the XML file. The following screenshot shows the algorithm for generating an XML file:

Function CreateXML() Export // Get the name of the temporary file Path = GetTemporaryFileName() ; // Initialize the "XML Record" class Entry = New EntryXML; // Open a temporary file for writing - 8 ") ; // Write the XML file declaration Record. WriteDeclarationXML() ; // Record. WriteElementStart(" DocumentsConfigurations") ; // First element // Attribute of the first element with the date the file was created Record. WriteAttribute(" generated ", Format(CurrentDate(), " DF = yyyy-MM- ddThh:mm:ss; DLF= DT")) ; // Write an element for each configuration document. We put the name of the document in the text. For Each Doc From Metadata. Documents Cycle Recording. WriteElementStart("Document"); Record. WriteText(Doc.Name) ; Record. WriteEndElement() ; EndCycle; // Finish writing the first element Record. WriteEndElement() ; Record. Close(); // Close the file // Get the file's binary data and put it in temporary storage BinaryData = new BinaryData(Path) ; Address = PlaceInTemporaryStorage(BinaryData, New UniqueIdentifier) ​​; Return Address; // Return the address of the file to the storage EndFunction

Each element created must be completed correctly. After executing “WriteStartElement()”, the “WriteEndElement()” method must be executed, otherwise the structure of the XML file will be incorrect.

The general template for creating XML files is the following sequence:

// 1. Initialize the "XML Record" class Entry = New EntryXML; // 2. Open a temporary file for recording Record. OpenFile(Path, "UTF-8"); // 3. Write the XML file declaration Record. WriteDeclarationXML() ; // // 4. ++ Write the contents of the XML file Record. WriteElementStart("XMLElement") ; Record. WriteEndElement() ; // -- Write the contents of the XML file // 5. Close the file Record. Close();

These five steps create almost any XML file.

In our example, the generated file is converted to binary data and returned to the location where the CreateXML function is called. This file can then be written to the file system.

You could see an example of the uploaded file in the screenshot above.

Third party application

As an example, I created an application in the .NET Framework to demonstrate reading an XML file in a third-party application.

The program reads the created file and displays the documents in the form of a list:

You can try it yourself, the application is available for download using the link at the end of the article.

Versatility

The XML format is used in most configurations for data exchange between application solutions on the 1C:Enterprise platform. Another commonly used communication method is through a COM connection. XML allows you to exchange with almost any application, which is why it deserves to be called universal.

Files for download:

XML file reader application.

Processing the generation of the XML file.

When an enterprise constantly uses some kind of software package in its work, then, naturally, the question of its ongoing support and administration always arises. There is no way to avoid the tasks of exchanging, storing and restoring data. Let's look at how to load or unload data from 1C in XML format, since this is an important procedure for this topic.

They are built in such a way that when downloading it is possible to obtain an XML file in which the data necessary for the client will be recorded. At the same time, simultaneously with the recording, the correctness of the transferred records is monitored for critical errors.

Thus, uploading to an XML file (importing records) from one information base and subsequent loading from XML to another represents an exchange of data in XML format between databases.

This procedure, especially with large amounts of information, saves a lot of manual work.

Import (the resulting file) can also be used as an archive for recovery in unexpected situations (if lost or damaged).

A lot of such processing tools have been developed, and they are available on the Internet. Responsibility for their use falls on the shoulders (and head) of the client.

But for official users of Odeneski, the developers have created a universal processor “Upload/Load XML Data”.

IMPORTANT. Export to XML in 1C and further loading into XML from 1C is acceptable for identical configurations - otherwise it will be damaged.

Universal handler

Key points for using the universal developer:

  • Save importing files until the transfer of records is completed and their correctness is checked;
  • When used as backup copies, a record of them should be kept to sort the search.

Its operation has two modes: creating a file when saving information and reading/writing it when importing.

In addition, the user can set additional restrictions both when exporting and loading data.

Extracting records

You can upload data both throughout the entire database and selectively - object by object.

After downloading, installing and opening the handler, the following occurs:

Their selection is made in the dialog box that opens after launch. To do this, check the boxes in the list that displays the metadata objects to be retrieved;

  1. The necessary filters are configured (for example, by date);
  2. Disk space is selected;
  3. The operation itself starts.

Uploading records to the receiver

The first step to accept data into the receiving database is to open the processor program in it.

After the path to the source file has been specified and the procedure settings flags have been activated (if necessary), you can start the process with the “Load data” button.


Now you know how to load or unload data from 1C in XML format to save data and exchange between databases.

Write in the comments about your experience in this matter.

2018-11-15T19:32:35+00:00

Universal processing "Uploading and loading XML data" performs full or partial unloading of infobase data into a file in XML format. Subsequently, this file can be loaded into the infobase using the same processing. The upload file format differs from the file format created when uploading according to an exchange plan in the header part.

Processing can only be used in cases where the information base in which the data was uploaded and the one in which the data was loaded are homogeneous (the configurations are identical, the data may differ), or all the uploaded objects are almost completely identical in composition and types of details and table parts, properties of the “leading” metadata object, and so on.

The use of this processing is possible, for example, to create a full or partial backup copy of data, exchange data between infobases, and also as an auxiliary tool when restoring faulty infobases.

Processing supports data uploading with the ability to specify selection by period. Also implemented is checking objects for the presence of invalid characters when exchanged via XML.

Sincerely, (teacher and developer).

In an organization, accounting can be maintained not only in solutions on the 1C:Enterprise platform, but also in other software systems (Galaktika, Parus, SAP, etc.). This raises the challenge of integrating two applications.

For example, some application (let's call it "X") needs to read a list of configuration documents. We will not talk about the practical benefits of solving such a problem; I will only note that the most convenient and universal way in such a situation would be to upload a list of documents in XML format.

Exchange using this format is universal because most applications can work with it. Let's look at how you can upload a list of configuration documents to an XML file from 1C:Enterprise.

Upload to XML

And so, let's move on to the main thing. We need to traverse the list of document metadata and generate the list in the XML file. The following screenshot shows the algorithm for generating an XML file:

Function CreateXML() Export // Get the name of the temporary file Path = GetTemporaryFileName() ; // Initialize the "XML Record" class Entry = New EntryXML; // Open a temporary file for writing- 8 " ) ; // Write the XML file declaration Record. WriteDeclarationXML() ; // Record. WriteElementStart(" DocumentsConfigurations" ) ; // First element // Attribute of the first element with the date the file was created Record. WriteAttribute(" generated ", Format(CurrentDate(), " DF = yyyy-MM- ddThh:mm:ss; DLF= DT" ) ) ; // Write an element for each configuration document. We put the name of the document in the text. For Each Doc From Metadata. Documents Cycle Recording. WriteElementStart("Document"); Record. WriteText(Doc.Name) ; Record. WriteEndElement() ; EndCycle ; // Finish writing the first element Record. WriteEndElement() ; Record. Close(); // Close the file // Get the file's binary data and put it in temporary storage BinaryData = new BinaryData(Path) ; Address = PlaceInTemporaryStorage(BinaryData, New UniqueIdentifier) ​​; Return Address; // Return the address of the file to the storage EndFunction

Each element created must be completed correctly. After executing “WriteStartElement()”, the “WriteEndElement()” method must be executed, otherwise the structure of the XML file will be incorrect.

The general template for creating XML files is the following sequence:

// 1. Initialize the "XML Record" class Entry = New EntryXML; // 2. Open a temporary file for recording Record. OpenFile(Path, " UTF - 8 " ) ; // 3. Write the XML file declaration Record. WriteDeclarationXML() ; // // 4. ++ Write the contents of the XML file Record. WriteElementStart("XMLElement"); Record. WriteEndElement() ; // -- Write the contents of the XML file // 5. Close the file Record. Close();

These five steps create almost any XML file.

In our example, the generated file is converted to binary data and returned to the location where the CreateXML function is called. This file can then be written to the file system.

You could see an example of the uploaded file in the screenshot above.

Third party application

As an example, I created an application in the .NET Framework to demonstrate reading an XML file in a third-party application.

The program reads the created file and displays the documents in the form of a list:

You can try it yourself, the application is available for download using the link at the end of the article.

Versatility

The XML format is used in most configurations for data exchange between application solutions on the 1C:Enterprise platform. Another commonly used communication method is through a COM connection. XML allows you to exchange with almost any application, which is why it deserves to be called universal.

Files for download:

XML file reader application.

Processing the generation of the XML file.

How to load data downloaded from trade or salary into 1C: Accounting 8.3 (revision 3.0)?

2016-12-01T12:52:06+00:00

Most often, data from trade or payroll is transferred to accounting.

The downloaded data is a file with the extension " .xml". How to load it into the program?

  1. Let's start with creating a backup copy accounting department, so that if the download spoils the database, we can return to initial state. It is written about creating backup copies.
  2. Now open the menu " All functions"(about this).
  3. In the window that opens, find the item " Treatments" and open it with a plus sign.
  4. We find and open among its items processing " Universal exchange data in XML format".
  5. ".
  6. We indicate file path from which we will load data.
  7. Press the button " Download data".

If everything went well - great! If there are errors, then the reason is probably that inappropriate (outdated) rules were used for unloading from trade or salary - they need to be updated and re-unloaded.

Sincerely, (teacher and developer).

- well-known web pages, which are also an analogue of XML with weak checks.

XML Reader/Writer Objects, FastInfoset, HTML extend text file reading capabilities with built-in processing of markup tags.

They are also used for DOMBuilder/DOMRecord objects (see below) as data sources.

XML 1C files contain text information, that is, they are text files. The 1C XML Reader and 1C Write XML objects are an “add-on” that makes it easier to work with XML tags in a 1C file.

The objects ReadingFastInfoset 1C and WritingFastInfoset 1C, ReadingHTML 1C and WritingHTML 1C are completely similar to ReadingXML 1C and WritingXML 1C and serve to work in the same way with other formats.

XML 1C file used in the examples

Directory>

Directory>

Text valueProps>
Directory>
Configuration>

Example 1: Reading XML file 1C into the value tree using XML Reading 1C

//open the XML 1C file for reading using ReadingXML 1C
File = New ReadXML();
File.OpenFile("D:\ConfigurationStructure.xml");

//prepare the value tree
//each XML branch can have a name, attributes and value
dzXML = NewValueTree();
dXML.Columns.Add("Name");
dzXML.Columns.Add("Value");
dzXML.Columns.Add("Attributes");

//since an XML string can have several attributes, we will write them in the values ​​table
//each attribute has a name and a value
tAttributes = New ValueTable();
tAttributes.Columns.Add("Name");
tAttributes.Columns.Add("Value");

//the nesting level will help us understand when we need to add a nested branch, and when we need to go back up a level
Nesting Level = 0;
//current line is a tree line, will change as nesting increases
CurrentRow = Undefined;
//reading the XML 1C file is not done line by line, but according to the structure; when the file ends, reading will return FALSE
While File.Read() Loop

//we are interested in three types of nodes - the beginning of the element, the text (the value of the element) and the end of the element (to return to the top level)
If File.NodeType = XMLNodeType.ElementStart Then

Nesting Level = Nesting Level + 1;

//if this is the first line, then add it to the very top of the tree and save only the name
If CurrentRow = Undefined Then
CurrentLine = dXML.Lines.Add();
CurrentLine.Name = File.Name;
Continue;
Otherwise
//nested lines
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = File.Name; //save the name

//does this XML element have attributes?
If File.NumberAttributes() > 0 Then
//if yes, copy the prepared empty table to save attributes
tAttributesNode = tAttributes.Copy();
//cycle through the number of attributes of this element
For Account = 0 by File.Number of Attributes()-1 Cycle
//for each attribute, remember the name and value
String = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Sch);
EndCycle;
//save the element attribute table in current line
CurrentRow.Attributes = tNodeAttributes;
endIf;
endIf;

ElseIf File.NodeType = XMLNodeType.EndElement Then
//at the beginning of the element we increase the nesting level, at the end of the element we decrease it
Nesting Level = Nesting Level - 1;
//return the current line one level up
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Then
//if the element has a value, just save it
CurrentRow.Value = File.Value;

endIf;

EndCycle;

File.Close();

Example 2. Recording a 1C XML file using the 1C Record XML object

//create a file Record XML 1C
File = NewXMLRecord();
File.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Configuration");

//use metadata to traverse all directories (for more details, see "Working with metadata")
For each Directory from Metadata.Directories Cycle

//WriteStartofElement - opens a new [subordinate] branch
File.WriteElementStart("Directory");
//WriteAttribute - writes an attribute to a previously opened branch
File.WriteAttribute("Name", Directory.Name);
File.WriteAttribute("Synonym", Directory.Synonym);

//using metadata we go through all the directory details
For each Props from the Directory.Props Cycle




EndCycle;

//use metadata to traverse all tabular parts of the directory
For each PM from the Directory. Tabular Parts of the Cycle
File.WriteElementStart("TabularPart");
File.WriteAttribute("Name", PM.Name);
File.WriteAttribute("Synonym", PM.Synonym);

For each Props from PM.Props Cycle
File.WriteElementStart("Props");
File.WriteAttribute("Name", Attribute.Name);
File.WriteAttribute("Synonym", Attributes.Synonym);
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
EndCycle;

//WriteEndElement - “closes” the branch previously opened using WriteBeginElement
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
File.Close();



 


Read:



Using styles in Excel How to create your own new style

Using styles in Excel How to create your own new style

If you consistently use the same options to format worksheet cells in your spreadsheets, it might be wise to create a formatting style...

What errors occur during installation?

What errors occur during installation?

Note: AutoLISP programs can only be run on the full version of AutoCAD, they do not work under AutoCAD LT. (excluding cases of loading...

Social status of a person in society

Social status of a person in society

Suggest what determines a person’s choice of his main status. Using the text and facts of social life, make two assumptions and...

Full interpretation of errors

Full interpretation of errors

Quite a few users have encountered the phenomenon of blue screen of death. What to do (Windows 7 is most often prone to this problem)...

feed-image RSS