Процес вивантаження даних у xml. Формування XML-файлу. Просте вивантаження для сторонньої програми. Процес завантаження даних у xml Як завантажити хмл файл в 1с

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

Перенесення даних - дуже важливий процес у будь-якій обліковій системі, платформа 1С 8.3 та 8.2 не виняток. Нижче ми розглянемо інструкцію, як найпростіше перенести дані з однієї системи до іншої, що має аналогічну конфігурацію (для різних конфігурацій можна використовувати інструмент для програмістів або ).

Перед будь-якими діями необхідно зміни є незворотними!

Найпростіший і зручний спосіб перенесення даних з 1С 8.3 в 1С 8.3 Бухгалтерія 3.0 - використання обробки Вивантаження та завантаження даних у форматі XML (завантажити - для 8.2 або для 1С 8.3 або на ІТС). Обробка універсальна та підходить для будь-яких конфігурацій.

Не будемо вдаватися до подробиць, розглянемо покрокову інструкцію з міграції даних за допомогою даної обробки на прикладі найпростішого перенесення товарів.

Вивантаження даних у XML

Насамперед відкриємо обробку в базі джерела (звідки вивантажуватимемо товари) і подивимося на інтерфейс:

Отримайте 267 відеоуроків з 1С безкоштовно:

Відразу необхідно заповнити поле «Ім'я файлу» — цим шляхом буде створено новий файл даних, який ми завантажуватимемо в базу приймач. Трохи нижче, у табличній частині «Дані для вивантаження» необхідно вибрати дані, які ми хочемо вивантажити з бази даних.

Після виділення об'єкта з лівої табличної частини можна накласти відбір у правій табличній частині:

У нашому прикладі хочу вивантажити всі товари з найменуванням «Граблі».

Після заповнення всіх налаштувань дані можна вивантажувати. Для цього необхідно натиснути кнопку «Вивантажити дані»:

Завантаження даних із xml в 1с 8.3

Дані вивантажені з бази джерела, тепер їх потрібно перенести до бази-приймача.

Для цього необхідно запустити обробку вже в тій базі, в яку необхідно завантажити дані, і зайти на вкладку «Завантаження», вибрати файл на диску і натиснути на кнопку «Завантажити дані»:

Цей приклад підходить лише для перенесення даних між ідентичними конфігураціями на платформі 1С. Для розуміння механізму обмінів, для програмістів ми написали статтю — .

Режими роботи

Обробка ВивантаженняЗавантаженняДанихXML82 реалізує 2 режими роботи: Вивантаження (створення файлу вивантаження зазначених користувачем даних) та Завантаження (читання файлу вивантаження, створеного однойменним режимом, і запис наявних у ньому даних). Встановлення режиму здійснюється вибором у полі Режим.

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

У режимі завантаження є можливість редагування використання підсумків під час запису регістрів, що може вплинути на швидкість завантаження. Кнопки “Вимкнути підсумки” та “Включити підсумки” доступні при встановленому прапорі “Включити можливість редагування використання підсумків під час завантаження даних” та використовуються для ручного керування режимом використання підсумків під час завантаження даних. ** Умови застосування обробки**

Обробка може використовуватися тільки в тих випадках, коли інформаційна база, в якій здійснювалося вивантаження даних, і та, в якій дані завантажуються, є однорідними (конфігурації ідентичні, дані можуть різнитися), або всі об'єкти, що вивантажуються, практично повністю ідентичні за складом і типами реквізитів і табличних елементів, властивостям “провідного” об'єкта метаданих тощо. Слід зазначити, що у зв'язку із зазначеними обмеженнями обробка головним чином призначена для обміну між однорідними ІБ.

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

Визначення складу вивантаження

Обробка дозволяє здійснити як повне, і часткове вивантаження даних інформаційної бази у файл. Налаштування складу даних, що вивантажуються, проводиться в діалозі шляхом установки прапорців в колонці дерева, що відображає об'єкти метаданих, дані по яких можуть бути вивантажені. Додаткова колонка прапорців, "За потреби", встановлює необхідність вивантаження об'єктів даного типу "за посиланням". Тобто, якщо прапорець встановлений тільки в колонці “При необхідності”, то дані по такому об'єкту будуть вивантажуватися не повністю, а лише в тому обсязі, який необхідний для підтримки цілісності в інформаційній базі, яка завантажуватиме файл вивантаження.

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

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

Можливі застосування

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

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

Універсальна обробка "Вивантаження та завантаження даних XML" здійснює повне або часткове вивантаження даних інформаційної бази у файл у форматі XML. Згодом цей файл може бути завантажений в інформаційну базу за допомогою цієї обробки. Формат файлу розвантаження відрізняється від формату файлу, створюваного при розвантаженні за планом обміну, заголовною частиною.

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

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

Обробка підтримує розвантаження даних із можливістю завдання відбору за періодом. Також реалізовано перевірку об'єктів на наявність неприпустимих символів під час обміну через XML.

З повагою, (викладач та розробник).

— усім відомі веб-сторінки, які також являють собою аналог 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");
Файл.ЗаписатиПочатокЕлементу("Конфігурація");

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

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

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




КінецьЦикл;

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

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

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

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

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

Сподобалось? Лайкни нас на Facebook