1с створити файл XML. Формування файлу XML

Перенесення інформації між базами даних є одним із завдань їх підтримки та адміністрування. Для ефективного виконання в автоматизованих комплексах 1С створюються обробки. Вони значно полегшують рутинну роботу, прискорюють процеси вивантаження-завантаження інформації та одночасно реалізують контроль її коректності. Вивантаження з 1с в xml дозволяє створювати файл із вмістом будь-якого об'єкта настроєної конфігурації, і використовувати його, коли необхідне вивантаження даних в ідентичну конфігурацію.

Інструменти для створення вивантаження

Для експорту інформації, що міститься в базах даних, переважно використовується формат xml. Для 1С розроблено безліч обробок (наприклад, Вивантаження Заданих xml82 epf), за допомогою яких можна виводити у файл і завантажувати дані. При цьому користувач повинен отримувати файл певної структури, який дозволяє завантажувати інформацію, що зберігається в ньому, в рідну базу даних або переносити її в інше місце. При створенні вивантаження слід дотримуватися таких правил:

  • Зберегти створені файли до моменту повного відновленнята закінчення процедур перевірки коректності перенесеної інформації;
  • У разі використання обробки як інструменту резервного копіюваннястворювати для копій даних окремі підпапки та вести журнал їхнього обліку для швидкого пошуку.

Програма підтримки користувачів 1С, яку можна знайти на сайті або дисках ІТС, є чудовим засобом для експорту та імпорту інформації. Користувач комп'ютера може вивантажити як всю базу, так і її окремі об'єкти, при цьому, крім власне експорту, проводяться різні операції з перевірки інформації, що допомагають позбавитися від критичних помилоку даних.Обробка 1с вивантаження в xml працює у двох режимах:

  • Вивантаження. Створює файл, що містить об'єкти, що вивантажуються, що визначаються користувачем;
  • Завантаження Здійснює читання експортованого раніше файлу і записує відомості, що знаходяться в ньому, в інформаційну базу.

Обробка дозволяє провести контроль об'єктів на неприпустимі символи, а також включає функцію експорту інформації з обмеженнями.

Вивантаження може використовуватися як під час обміну інформацією між базами 1С. З її допомогою можна забезпечити інтеграцію різних комплексів, наприклад, 1С та системи Парус. Універсальність формату XML дозволяє створювати програми для перенесення інформації практично будь-яких інформаційних банків. Обробка розвантаження та завантаження даних xml – найважливіший інструмент обміну інформацією.

Процес вивантаження даних уxml

Розглянемо, як вивантажити з 1с в xml звичайному режимі. Після завантаження обробки ВивантаженняЗавантаженняДанихxml.epf та її відкриття необхідно виконати такі кроки:

  • Відібрати об'єкти для експорту;
  • Налаштувати необхідні фільтри, наприклад, за періодом;
  • Визначити розташування файлу з інформацією на дисковій підсистемі;
  • Запустити розвантаження об'єктів.

Необхідно пам'ятати, що заголовна частина формату файлу розвантаження відрізняється від формату файлу, що використовується при розвантаженні за планами обміну.

xml

Завантаження xmlв 1с виробляється в базу-приймач із конфігурацією, ідентичною базі-джерелу. Перш ніж завантажити в 1с xml 1с необхідно відкрити обробку в базі-приймачі. Потім потрібно вказати шлях до раніше вивантаженого файлу і здійснити завантаження даних натисканням на кнопку «Завантажити дані».

При необхідності активуються прапорці для завантаження даних у режимі обміну в розподіленій інформаційній базі та ігнорування помилок, що виникають при завантаженні об'єктів.

Після цього необхідно перевірити бази і переконатися, що всі елементи завантажені коректно, щоб не отримати їх втрати, наприклад, якщо помилка в обробнику події після завантаження об'єкта.

В організації облік може вести не тільки у рішеннях на платформі 1С:Підприємство, а й в інших програмних комплексах (Галактика, Вітрило, SAP та інше). У цьому виникають завдання інтеграції двох додатків.

Наприклад, у деякій програмі (назвемо його "X") потрібно прочитати список документів конфігурації. Про практичну користь вирішення подібного завдання говорити не будемо, зазначу лише, що найбільш зручним і універсальним способому такій ситуації буде вивантаження списку документів у формат XML.

Обмін із використанням цього формату є універсальним, оскільки з ним можуть працювати більшість програм. Розглянемо як можна з 1С:Підприємства вивантажити список документів конфігурації у XML-файл.

Вивантаження в XML

І так перейдемо до головного. Нам потрібно обійти список метаданих документів та сформувати список у XML-файлі. На наступному скріншоті представлений алгоритм формування файлу XML:

Функція СтворитиXML() Експорт // Отримуємо ім'я тимчасового файлуШлях = ОтриматиІм'яТимчасовогоФайлу() ; // Ініціалізуємо клас "ЗаписXML"Запис = Новий ЗаписXML; // Відкриваємо тимчасовий файл для запису- 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С:Підприємство 8.

Є можливість:

  • послідовно читати та записувати xml-документи:
    • перетворювати з рядка, отриманого з тексту елемента або значення атрибуту XML, значення відповідно до зазначеного типу;
    • отримувати рядкове подання значення для розміщення тексту елемента або значення атрибута XML;
    • отримати тип даних XML, що відповідає переданому як параметр типу;
    • проводити перевірку можливості читання з XML значення зазначеного типу;
    • проводити перевірку відповідності схемі XML під час читання XML
    • робити запис значення у форматі XML;
    • повертати тип, що відповідає типу даних XML.
  • використовувати модель об'єктного доступу до даних XML-документів (Документ DOM), що відповідає наступним стандартам:
    • DOM Level 2;
    • XPath (DOM Level 3);
    • DOM Load and Save (DOM Level 3).
  • використовувати об'єктну модель схеми XML (схема XML);
  • використати канонічний XML стандарт 1.1 (Canonical XML 1.1).

Використовуючи зовнішнє з'єднання та механізми роботи з XML можна організовувати інтеграцію з прикладними системамиза прийнятими у цих системах форматами. Для цього застосовуються механізми XSL-перетворення. Наприклад, для такої інтеграції можна використовувати BizTalk сервер компанії Microsoft:

Fast Infoset

Платформа надає засоби для роботи з документами XML у бінарному форматі Fast Infoset. Технологія Fast Infoset використовує альтернативний синтаксис відображення даних XML. Це забезпечує менший обсяг файлів і більше високу швидкістьобробки, ніж швидкість обробки даних, записаних у звичайному форматі XML. Файл, записаний у форматі Fast Infoset, має розширення .fi або .finf.

— усім відомі веб-сторінки, які також являють собою аналог XML із нестрогими перевірками.

Об'єкти читання/запису XML, FastInfoset, HTML розширюють можливості читання текстового файлу вбудованою обробкою тегів розмітки.

Також вони використовуються для об'єктів Побудовувач DOM/Запис DOM (див. далі) як джерела даних.

Файли XML 1С містять текстову інформацію, тобто є текстовими файлами. Об'єкти Читання XML 1С і Запис XML 1С є надбудовою, що дозволяє спростити роботу з тегами XML файлу 1С.

Об'єкти ЧитанняFastInfoset 1С та ЗаписFastInfoset 1С, ЧитанняHTML 1С та ЗаписHTML 1С повністю аналогічні ЧитанняXML1С та ЗаписXML1С і служать для роботи таким же способом з іншими форматами.

Файл XML 1С, який використовувався у прикладах

Довідник>

Довідник>

Текстове значенняРеквізит>
Довідник>
Конфігурація>

Приклад 1. Зчитування файлу XML 1С на дерево значень за допомогою ЧитанняXML 1С

//відкриваємо файл XML 1С читання за допомогою ЧитанняXML 1С
Файл = Новий Читання XML();
Файл.ВідкритиФайл("D:\СтруктураКонфігурації.xml");

//підготуємо дерево значень
//у кожної гілки XML може бути найменування, атрибути та значення
дзXML = Новий ДеревоЗначень();
дзXML.Колонки.Додати("Найменування");
дзXML.Колонки.Додати("Значення");
дзXML.Колонки.Додати("Атрибути");

//оскільки атрибутів у рядка XML може бути кілька - записуватимемо їх у таблицю значень
//Кожен атрибут має ім'я та значення
тАтрибутів = Новий ТаблицяЗначень();
тАтрибутів.Колонки.Додати("Ім'я");
тАтрибутів.Колонки.Додати("Значення");

//Рівень вкладеності допоможе нам розуміти коли потрібно додати вкладену гілку, а коли потрібно повернутися на рівень вгору
РівеньВкладення = 0;
//поточний рядок - рядок дерева, змінюватиметься зі збільшенням вкладеності
ПоточнаРядок = Невизначено;
//Читання файлу XML 1С проводиться не рядково, а по структурі, при закінченні файлу читання поверне брехня
Поки Файл.Прочитать() Цикл

// нас цікавлять три види вузлів - початок елемента, текст (значення елемента) і кінець елемента (щоб повернутися на рівень вгору)
Якщо Файл.ТипУзла = ТипУзлаXML.ПочатокЕлементу

РівеньВкладеності = РівеньВкладеності + 1;

//якщо це перший рядок, то додамо її в верх дерева і збережемо тільки найменування
Якщо ПоточнийРядок = Невизначено Тоді
ПоточнаРядок = дзXML.Рядки.Додати();
ПоточнаРядок.Найменування = Файл.Ім'я;
Продовжити;
Інакше
//Вкладені рядки
ПоточнаРядок = ПоточнаРядок.Рядок.Додати();
ПоточнаРядок.Найменування = Файл.Ім'я; //збережемо найменування

//Чи є у цього елемент XMLатрибути?
Якщо Файл.КількістьАтрибутів() > 0 Тоді
//якщо так - скопіюємо підготовлену порожню таблицю для збереження атрибутів
тАтрибутиВузла = тАтрибутів.Скопіювати();
//цикл за кількістю атрибутів цього елемента
Для Сч = 0 за Файл.КількістьАтрибутів()-1 Цикл
//для кожного атрибуту запам'ятаємо ім'я та значення
Рядок = тАтрибутиВузла.Додати();
Рядок.Ім'я = Файл.ИмяАтрибута(Сч);
Рядок.Значення = Файл.ЗначенняАтрибута(Сч);
КінецьЦикл;
//збережемо таблицю атрибутів елемента в поточний рядок
ПоточнаРядок.Атрибути = тАтрибутиВузла;
КінецьЯкщо;
КінецьЯкщо;

ІнакшеЯкщо Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тоді
//на початку елемента збільшуємо рівень вкладеності, наприкінці елемента зменшуємо
РівеньВкладеності = РівеньВкладеності - 1;
//Повертаємо поточний рядок на рівень вгору
ПоточнаРядок = ПоточнаРядок.Батько;

ІнакшеЯкщо Файл.ТипУзла = ТипУзлаXML.Текст Тоді
//якщо елемент має значення - просто збережемо його
ПоточнаРядок.Значення = Файл.Значення;

КінецьЯкщо;

КінецьЦикл;

Файл.Закрити();

Приклад 2. Запис файлу 1С XML за допомогою об'єкту ЗаписXML 1С

//Створюємо файл ЗаписXML 1С
Файл = Новий записXML();
Файл.ВідкритиФайл("D:\СтруктураКонфігурації.xml", "UTF-8");
Файл.ЗаписатьПочатокЕлементу("Конфігурація");

//за метаданими обходимо всі довідники (докладніше див. "Робота з метаданими")
Довідник з Метадані.Довідники Цикл

//ЗаписатиПочатокЕлементу - відкриває нову [підлеглу] гілку
Файл.ЗаписатиПочатокЕлементу("Довідник");
//ЗаписатиАтрибут - записує атрибут у відкриту раніше гілку
Файл.ЗаписатиАтрибут("Ім'я", Довідник.Ім'я);
Файл.ЗаписатиАтрибут("Синонім", Довідник.Синонім);

//за метаданими обходимо всі реквізити довідника
Для кожного Реквізит із Довідник.Реквізити Цикл




КінецьЦикл;

//за метаданими обходимо всі табличні частини довідника
Для кожного ТЧ з Довідник.
Файл.ЗаписатиПочатокЕлементу("ТабличнаЧастина");
Файл.ЗаписатиАтрибут("Ім'я", ТЧ.Ім'я);
Файл.ЗаписатиАтрибут("Синонім", ТЧ.Сінонім);

Для кожного Реквізит із ТЧ.Реквізити Цикл
Файл.ЗаписатьПочатокЕлементу("Реквізит");
Файл.ЗаписатиАтрибут("Ім'я", Реквізит.Ім'я);
Файл.ЗаписатиАтрибут("Синонім", Реквізит.Сінонім);
Файл.ЗаписатиКінецьЕлементу();
КінецьЦикл;

Файл.ЗаписатиКінецьЕлементу();
КінецьЦикл;

//ЗаписатиКінецьЕлементу - "закриває" відкриту раніше за допомогою ЗаписатиПочатокЕлементу гілку
Файл.ЗаписатиКінецьЕлементу();
КінецьЦикл;

Файл.ЗаписатиКінецьЕлементу();
Файл.Закрити();

Коли підприємство постійно користується у роботі якимось програмним комплексом, то, природно, завжди виникає питання його постійної підтримки та адміністрування. Не обійтися при цьому із завданнями обміну, зберігання та відновлення даних. Розглянемо, як завантажити або вивантажити дані з 1С у форматі XML, оскільки це є важливою процедурою цієї теми.

Будуються вони так, щоб при розвантаженні можна було одержати файл формату XML, у якому будуть записані необхідні клієнту дані. При цьому одночасно із записом відбувається і контроль коректності записів, що переносяться, на предмет критичних помилок.

Таким чином, вивантаження в XML-файл (імпорт записів) з одного інформаційної базиі наступне завантаження з XML в іншу - являють собою обмін даними у форматі XML між базами.

Така процедура, особливо при великих масивах інформації, заощаджує велику кількість ручної роботи.

Імпорт (отриманий файл) може бути використаний також як архів для відновлення у непередбачених ситуаціях (при втраті чи пошкодженні).

Таких інструментів обробок розроблено дуже багато, і вони доступні в інтернеті. Відповідальність за використання лягає на плечі (і голову) клієнта.

Але для офіційних користувачів одинаскій розробниками створено універсальний обробник «Вивантаження/завантаження даних XML».

ВАЖЛИВО. Експорт в XML в 1С та подальше завантаженняв XML з 1С допустима для ідентичних конфігурацій - інакше відбудеться її пошкодження.

Універсальний обробник

Основні моменти для використання універсального розробника:

  • Імпорт файлів зберігати до закінчення перенесення записів та перевірки їх коректності;
  • При використанні резервних копій слід вести їх облік для сортування пошуку.

У його роботі передбачено два режими: створення файлу за збереження інформації та його читання/запис - коли відбувається імпорт.

Крім того, користувач може встановлювати як під час експорту, так і завантаження даних додаткові обмеження.

Виймаємо записи

Вивантажувати дані можна як у всій базі, і вибірково - пообъектно.

Після скачування, встановлення та відкриття оброблювача виконується наступне:


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

  1. Налаштовуються необхідні фільтри (наприклад, за датою);
  2. Вибирається місце на дисковому просторі;
  3. Запускається сама операція.

Заливаємо записи до приймача

Першим кроком для прийняття даних до бази-приймача потрібно відкрити в ній програму-обробник.

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

Тепер вам відомо, як завантажити чи вивантажити дані з 1С у форматі XML для збереження даних та обміну між базами.