26.12.2019

1с конвертація даних 2.0. Рішень завжди кілька


Міграція даних між різними конфігураціями – завдання не з очевидних. Шляхів рішення як завжди кілька, але не всі вони є оптимальними. Спробуємо розібратися у нюансах перенесення даних та вибрати універсальну стратегію вирішення подібних питань.

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

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

З міграціями між не типовими рішеннями ситуація дещо складніша. Широкий вибір технологій дозволяє розробникам самостійно вибирати оптимальний з їхньої точки зору спосіб вирішення задачі.

Розглянемо деякі з них:

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

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

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

Конвертація даних – типове рішення, самостійна конфігурація. Будь-який користувач, який має підписку "ІТС: Проф" може безкоштовно завантажити цей пакет з сайту підтримки користувачів або диска ІТС. Установка виконується стандартним способом - як і інші типові рішення від 1С.

Тепер трохи про плюси рішення. Почнемо з найголовнішого – універсальність. Рішення не заточено на певні конфігурації/версії платформи. Так само добре працює як з типовими конфігураціями, так і самописними. Розробники отримують у розпорядження універсальну технологію та стандартизований підхід до створення нових міграцій. Універсальність рішення дозволяє готувати міграції навіть для відмінних від «1С:Підприємство» платформ.

Другий жирний плюс – візуальні засоби. Прості міграції створюються без програмування. Так-так, без жодного рядка коду! Тільки заради цього варто один раз витратити час на вивчення технології, а потім використати безцінні навички багаторазово.

Третім плюсів я відзначив би відсутність обмежень на дистрибуцію даних. Розробник сам вибирає спосіб доставки даних конфігурацію приймач. З коробки є два варіанти: вивантаження в xml файл і пряме з'єднання з інформаційною базою (COM/OLE).

Вивчаємо архітектуру

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

Конфігурація "КД" - свого роду візуальний конструктор, за допомогою якого розробник створює правила обміну. Виконувати розвантаження даних вона не вміє. За це відповідають додаткові зовнішні сервісні обробки, що входять до дистрибутиву КД. Їх кілька (XX в імені файлу – номер версії платформи):

  • MDXXExp.epf- Обробка дозволяє вивантажувати опис структури інформаційної бази в xml файл. Опис структури завантажується в КД для подальшого аналізу та створення правил обміну.
  • V8ExchanXX.epf- здійснює розвантаження/завантаження даних з інформаційної бази відповідно до правил обміну. У більшості типових конфігурацій обробка є з коробки (див. пункт меню “Сервіс”). Обробка універсальна і не прив'язується до певних конфігурацій/правил.

Добре, тепер на підставі всього сказаного вище, визначимо етапи розробки нової конвертації:

  1. Визначення задачі. Необхідно чітко розуміти, які дані потрібно переносити (з яких об'єктів конфігурації) і найголовніше куди переносити.
  2. Підготовка опису структур конфігурацій (Джерела/Приймача) для подальшого завантаження КД. Завдання вирішується сервісною обробкою MDXXExp.epf.
  3. Завантаження підготовлених описів структур в ІХ.
  4. Створення правил обміну з допомогою візуальних кошти КД.
  5. Виконує вивантаження/завантаження за створеними правилами конвертації даних шляхом використання обробки V8ExchanXX.epf.
  6. Налагодження правил обміну (за потреби).

Найпростіша конвертація

Для демонстрації нам знадобиться дві розгорнуті конфігурації. Я вирішив зупинитися на варіанті: "Управління торгівлею" 10-ї редакції та невеликим самописним рішенням. Завдання полягатиме у перенесенні даних із типової конфігурації «УТ». Для стислості назвемо самописне рішення "Приймач", а управління торгівлею "Джерелом". Розв'язувати задачу почнемо з перенесення елементів довідника «Номенклатура».

Насамперед поглянемо на схему конвертації даних та перечитаємо список дій, які необхідно зробити. Потім запускаємо конфігурацію "Джерело" і відкриваємо в ній сервісну обробку MD82Exp.epf.

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

Рух правильніше формувати під час проведення документів у приймачі. Усі рухи будуть зроблені документом самостійно після перенесення. Другий аргумент на захист параметрів за замовчуванням - скорочення розміру файлу з розвантаженням.

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

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

Відкриваємо КД та в головному меню вибираємо "Довідники" -> "Конфігурації". Довідник зберігає опис структур всіх конфігурацій, які допоможуть бути використані для створення конвертацій. Ми один раз завантажуємо опис конфігурації, а потім можемо використовувати її багаторазово для створення конвертацій.

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

Тепер все готове до створення правил обміну. У головному меню КД вибираємо "Довідники" -> "Конвертації". Додаємо новий елемент. У вікні створення нової конвертації потрібно вказати: конфігурацію джерело (вибираємо УТ) та конфігурацію приймач (вибираємо «Приймач»). Далі відкриваємо вкладку "Додатково" та заповнюємо наступні поля:

  • ім'я файлу правил обміну - під таким ім'ям зберігатимуться створені правила обміну. Ім'я файлу можна міняти у будь-який час, але вигідніше задати його зараз. У майбутньому це заощадить час. Правила для демонстраційного прикладу я назвав: rules-ut-to-priemnik.xml.
  • найменування – назва конвертації. Назва може бути абсолютно будь-якою, я обмежився “Демо. УТ у Приймач”.

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

Відразу розставимо крапки над "і". Нічого серйозного майстер згенерувати не зможе. Однак з рахунків цю можливість скидати не варто. Якщо необхідно налагодити обмін між ідентичними конфігураціями, послуги майстра будуть дуже доречними. Для нашого прикладу краще ручний режим.

Розглянемо докладніше вікно "Налаштування правил обміну". Інтерфейс може здатися трохи заплутаним - велика кількістьвкладок, напханих елементами управління. Насправді все не так складно, до цього божевілля починаєш звикати через кілька годин роботи з додатком.

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

У другій половині вкладки “Правила конвертації об'єктів” розташована додаткова панель із двома вкладками: “Конвертація властивостей” та “ Конвертація значень”. Перша буде відбирати властивості (реквізити) обраного об'єкта, а друга необхідна роботи з визначеними значеннями (наприклад, визначені елементи довідників чи елементи перерахування).

Відмінно тепер створимо правила конвертації для довідників. Виконати цей крок можна двома варіантами: скористатися майстром синхронізації об'єктів (кнопка “”) або додати відповідності для кожного об'єкта вручну.

Для економії місця скористаємося першим варіантом. У вікні майстра знімаємо прапорці із групи “ Документи” (нас цікавлять лише довідники) та розкриваємо групу “ Довідники”. Уважно перегортаємо список і дивимося назви довідників, які можна порівняти.

У моєму випадку таких довідників три: Номенклатура, Організація та Склади. Є ще довідник Клієнти, що виконує те саме смислове навантаження, що і “ Контрагенти” з конфігурації “ УТ”. Щоправда, майстер не зміг їх порівняти через відмінні імена.

Виправити це недороблення ми можемо самостійно. Знаходимо у вікні « Відповідності об'єктів» довідник « Клієнти», а в колонці «Джерело» обираємо довідник «Контрагенти». Потім встановлюємо прапорець у колонці Тип і натискаємо кнопку “Ok”.

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

Основа правил обміну готова. Об'єкти для синхронізації вибрали ми, а правила для конвертації властивостей та правила вивантаження були створені автоматично. Збережемо правила обміну у файл, потім відкриємо ІБ "Джерело" (у моєму випадку це УТ) і в ній запустимо сервісну обробку V8Exchan82.epf.

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

Після завершення процесу вивантаження даних у файл переходимо до ІБ “ Приймач”. У ній також відкриваємо обробку V8Exchan82.epf, тільки цього разу переходимо на закладку “Завантаження даних”. Вибираємо файл із даними та натискаємо кнопку “Завантажити”. Усі дані успішно перенесені.

Завдання із реального світу

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

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

Завдання №1. Заповнюємо відсутні реквізити

Припустимо, нам потрібно перенести з УТ довідник. Контрагенти”. У приймачі для цього є схожий довідник "Клієнти". Він повністю підходить для зберігання даних, але в ньому є реквізит. Організація”, що дозволяє розділяти контрагентів щодо належності до організації. За замовчуванням усі контрагенти повинні належати до поточної організації (її можна отримати з однойменної константи).

Розв'язків завдання кілька. Ми розглянемо варіант заповнення реквізиту “ Організація” прямо в базі “ Приймач”, тобто. у момент завантаження даних. Поточна організація зберігається у константі, отже, немає жодних перешкод отримання цього значення. Відкриємо правило конвертації об'єкта (далі ПКО) “ Клієнти” (подвійний клік по об'єкту) та у майстрі налаштування правил перейдемо до розділу “Обробники подій”. У списку обробників знайдемо “ Після завантаження”.

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

Якщо НЕ Об'єкт.ЦеГрупа Тоді Об'єкт.Організація = Константи.ПоточнаОрганізація.Отримати(); КінецьЯкщо;

Перед заповненням реквізиту Організаціяобов'язково необхідно перевірити значення реквізиту. Це група». Для довідника « Клієнти» встановлена ​​ознака ієрархічності, тому перевірка на групу необхідна. Подібним чином виконується заповнення будь-яких реквізитів. Обов'язково прочитайте довідку за іншими параметрами обробника ПісляЗавантаження». Наприклад, серед них є параметр « Відмова». Якщо йому надати значення «Істина», то об'єкт у базу записаний не буде. Таким чином, з'являється можливість обмежувати об'єкти для запису під час завантаження.

Завдання №2. Реквізити у регістр відомостей

У довіднику “ Контрагенти” конфігурації УТ, є реквізити “ Покупець” та “ Постачальник”. Обидва реквізити мають тип “ Бульово” та служать для визначення типу контрагента. В ІБ “ Приймач”, у довідника “ Клієнти” аналогічних реквізитів немає, але є регістр відомостей “ ВидиКлієнтів”. Він виконує аналогічну функцію та може зберігати для одного клієнта кілька ознак. Наше завдання полягає у перенесенні значень реквізитів в окремі записи регістру відомостей.

Одними візуальними засобами тут, на жаль, теж не впоратися. Почнемо з малого, створимо нове ПКО для регістру відомостей ВидиКлієнтів”. Як джерело нічого не вказуйте. Від автоматичного створення правил розвантаження відмовтеся.

Наступним кроком сформуємо правила розвантаження. Переходимо на відповідну вкладку та натискаємо кнопку “ Додати”. У вікні додавання правил вивантаження заповнюємо:

  • Спосіб вибірки. Змінюємо на “Довільний алгоритм”;
  • Правило конвертації. Вибираємо регістр відомостей "ВідиКлієнтів";
  • Код (ім'я) правила. Записуємо як "Вивантаження видів клієнтів";

Тепер необхідно написати код для відбору даних для розвантаження. Тут нам допоможе параметр “ Вибірка даних”. У ньому ми можемо помістити колекцію з підготовленим набором даних. Параметр “ Вибірка даних” може приймати різні значення – результат запиту, вибірка, колекції значень тощо. Ми його ініціалізуємо у вигляді таблиці значень із двома колонками: клієнт та тип клієнта.

Нижче наведено код обробника подій “ Перед обробкою”. У ньому виконується ініціалізація параметра “ Вибірка даних” з наступним заповненням даними з довідника “ Контрагенти”. Тут варто звернути увагу на заповнення колонки. ТипКлієнта”. В "УТ" у нас ознаки мають тип "Булеве", а в одержувачі перерахування.

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

ВибіркаДаних = Новий ТаблицяЗначень(); ВибіркаДаних.Колонки.Додати("Клієнт"); ВибіркаДаних.Колонки.Додати("ТипКлієнта"); ВибіркаДанихІз Довідника = Довідники.Контрагенти.Вибрати(); Поки Вибір ДанихЗ довідника.Наступний() Цикл Якщо ВибірДанихДовідника.ЦеГрупа Тоді Продовжити; КінецьЯкщо; Якщо Вибір ДанихЗ Довідника.Покупець Тоді НовийРядок = Вибір Даних.Додати(); НоваРядок.Клієнт = ВибіркаДанихЗДовідника.Посилання; НоваРядок. ТипКлієнта = "Покупець"; КінецьЯкщо; Якщо ВибірДанихЗДовідника.Постачальник Тоді НовийРядок = ВибіркаДаних.Додати(); НоваРядок.Клієнт = ВибіркаДанихЗДовідника.Посилання; НоваРядок. ТипКлієнта = "Постачальник"; КінецьЯкщо; КінецьЦикл;

Збережемо правило вивантаження даних та повернемося на вкладку “ Правила конвертації об'єктів”. Додамо для регістру відомостей “ ВидиКлієнтів” правила конвертації властивостей: клієнт та тип клієнта. Джерело залишимо порожнім, а в обробнику подій "Перед розвантаженням" пишемо:

/ / Для якості "Клієнт" Значення = Джерело.Клієнт; //Для властивості "ТипКлієнта" Якщо Джерело.Клієнт = "Покупець" Тоді Вираз = "Перерахування.ТипиКлієнтів.Покупець" ІнакшеЯкщо Джерело.Клієнт = "Постачальник" Тоді Вираз = "Перерахування.ТипиКлієнтів.Постачальник"; КінецьЯкщо;

У лістингу виконується заповнення реквізитів з урахуванням проведеної вибірки даних. Клієнта ми передаємо просто як посилання, а тип клієнта записуємо в параметр « Вираз». Дані цього параметра будуть інтерпретовані у приймачі, і під час виконання реквізит буде заповненим коректним значенням з перерахування.

Все, правила обміну готові Розглянутий приклад вийшов досить універсальним. Подібний підхід часто застосовується при перенесенні даних із змін, створених на платформі 7.7. Яскравий приклад – перенесення періодичних реквізитів.

Завдання №3. Трюки з табличними частинами

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

Робимо правило розвантаження даних, вказуємо довільний алгоритм і в обробнику "Перед розвантаженням" пишемо запит для отримання даних з табличної частини.

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

ВибіркаДаних = Новий ТаблицяЗначень(); //Тут буде ще одна таблична частина ВибіркаДаних.Колонки.Додати(“Товари”); //Тут теж буде таблична частина ВибіркаДаних.Колонки.Додати(“Послуги”); ВибіркаДанниз.Колонки.Додати(“Посилання”);

Завдання №4. Перенесення даних на операцію

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

У конфігурації “ БП"є універсальний документ" Операція” і він ідеально підходить для формування більшої кількості проводок. Ось тільки одне не завдання – документ зроблений хитро, і так просто дані до нього не перенести.

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

Завдання №5. Синхронізація даних з кількох реквізитів

Ми вже розглянули кілька прикладів, але досі не поговорили про синхронізацію об'єктів під час перенесення. Ось уявімо, що нам потрібно перенести контрагентів і частина з них напевно є в основі приймача. Як перенести дані та не допустити появи дублів? З цього приводу КД пропонує кілька способів синхронізації об'єктів, що переносяться.

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

Синхронізувати за унікальним ідентифікатором – спосіб надійний, але доречний він далеко не завжди. При об'єднанні довідників Контрагенти” (з кількох різних систем) він мало чим допоможе.

У таких випадках правильніше синхронізувати об'єкти за кількома критеріями. Контрагентів правильніше шукати за ІПН, КПП, Найменуванням або розбивати пошук на кілька етапів.

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

Поля ми маємо право вибирати самі. Відзначивши ІПН, КПП, найменування ми відразу вкажемо кілька критеріїв пошуку. Зручно? Цілком, але знову ж таки цього буває мало. А що, якщо ми захочемо змінювати критерії пошуку? Наприклад, спочатку шукаємо зв'язки ІПН+КПП, а якщо нічого не знаходимо, то починаємо катувати щастя з найменуванням.

Подібний алгоритм реалізувати цілком під силу. В обробнику події “ Поля пошуку” ми можемо вказати до 10 критеріїв пошуку та для кожного з них визначити свій склад полів пошуку:

Якщо Номер ВаріантаПошуку = 1 тоді РядокІменВластивостейПошуку = “ІНН, КПП”; ІнакшеЯкщо НомерВаріантаПошуку = 2 Тоді РядокІменВластивостейПошуку = “Найменування”; КінецьЯкщо;

Рішень завжди кілька

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

На мій погляд, компанія 1С незаслужено оминає тему застосування конвертації даних. За весь час існування технології, за нею вийшла лише одна книга: "1С:Підприємство 8. Конвертація даних: обмін між прикладними рішеннями". Книга досить стара (2008 р.), але ознайомитися з нею все ж таки бажано.

Знання платформ все ж таки необхідне

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

1. Вступ.

2. Що знадобиться: конфігурація 1С: Конвертація даних 2.* та обробки з пакета. Для прикладу завдань візьмемо зміни 1С: Управління торгівлею 11 і 1С: БП 3. *.

Отже, розробки правил вивантаження даних в 1С потрібно конфігурація 1С: Конвертація об'єктів 2, і навіть обробки, які входять у пакет.

Наприклад, у нас вже розгорнуто базу конвертації та запущено.

Розробку правил обміну будемо писати між конфігурацією 1С: Управління торгівлею 11 та 1С: Бухгалтерія підприємства 3 (правила обміну УТ/БУХ).

3. Нам знадобляться Обробки для розвантаження структури метаданих та обміну.

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

Власне, в розпакованому каталозі конфігурацій для конфігурацій на керованих формахнас цікавить обробка MD83Exp.epf. Якщо вивантаження потрібно зробити зі змін на звичайних формах, тоді використовується обробка MD82Exp.epf. Це якщо, наприклад, потрібно отримати структуру таких конфігурацій, як 1С: УТ 10, 1С: Управління виробничим підприємством 1.3, 1С: Комплексна автоматизація 1.1, 1С: Зуп 2.5 і таке інше.

Далі вже для вивантаження-завантаження даних у 1С за допомогою наших правил знадобиться обробка «Універсальний обмін даними у форматі XML» V8Exchan83.epf для конфігурацій на керованих формах таких як 1С: Управління торгівлею 11*, 1С БП 3, 1С: ERP 2. * І подібних. І відповідно V8Exchan83.epf - для конфігурацій на стандартних формах.

4. Вивантаження структури метаданих конфігурації 1С: Управління торгівлею 11.3 та 1С: Бухгалтерія підприємства 3.0.*

Почнемо з вивантаження структури метаданих із конфігурації 1С: Бухгалтерія підприємства 3.
Відкриємо обробку MD83Exp.epf

У формі обробки є додаткові налаштування, де ми можемо включити або вимкнути параметр вивантажувати регістри та рухи в 1С. Також є вибір, де проходитиме вивантаження: на сервері 1С або «на клієнті.» Вказуємо назву файла, куди вивантажиться структура даних. Аналогічним чином робимо розвантаження структури метаданих конфігурацій Управління торгівлею 11.

Тепер необхідно завантажити конфігурацію до бази конвертацій. До цього пункту можна прийти і зі списку конфігурацій і зі списку конвертацій. Зробимо просто завантаження з робочого столу:

У діалоговому вікні завантажуємо структуру БП:

І аналогічно – структуру Управління торгівлею.

Після закінчення завантаження з'явиться діалогове вікно, де можна вказати зручне для вас найменування.

6. Створення правил конвертації в 1С конкретному прикладізавдання.

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

Так як у цій статті планував показати створення «з нуля» та «без сміття», нагадую, що нічого автоматично не створюємо. Жодних прототипів.

У цьому діалоговому вікні нічого не виконуватимемо, просто натиснемо - «Закрити».

Створимо правила для вивантаження не один документ в один, а один вид в інший, наприклад, документ Реалізації Товарів Послуг з УТ 11 з необхідними довідниками до документа Надходження Товарів Послуг до БП 3.

Отже, створюємо нове ПКО (правило конвертації об'єктів у 1С)

Вибираємо джерело Реалізація Товарів Послуг та приймач Надходження Товарів Послуг та натискаємо ОК.
При цьому з'явиться діалогове вікно, де знову відмовляємось від автоматичного створення ПКС (Правил конвертації властивостей). Далі виберемо лише необхідні.

А ось на пропозицію створити ПВД ​​(правил розвантаження даних) відповідаємо «Так».

Створюються ПВД, які і відображатимуться в обробці універсального обміну XML для вибору:

Створяться правила конвертації даних з порожніми правилами конвертації властивостей.

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

Знімаємо пошук по ПІБ:

Тепер розпочнемо зіставлення необхідних властивостей (реквізитів) об'єкта. Для цього тиснемо "СинхронізаціяВластивостей" (мітка "1" на скрині). Забираємо рекурсивне створення правил («2»). Знімаємо всі зазначені реквізити (3). І виберемо самостійно, що нам потрібне.

Наприклад вибираємо необхідне:

Звертаю увагу на те, що ми зробимо ПКС контрагента в організацію, а організацію в контрагента, і ще порівняємо деякі реквізити, які не збігаються на ім'я, наприклад, «Валюта» та «Валюта документа».

Де бачимо, що ще немає правил конвертації.

Почнемо за реквізитами проходити та описувати. Спочатку налаштовуємо пошук документа так, як писав раніше, робимо розвантаження та пошук документа на початок дати, і зробимо заміну нумерації. Перші три символи підмінюватимемо на свій префікс «УТБ». Оскільки в БП і УТ нумерація по 11 символів, робимо складовий номер: наш префікс і 8 символів від джерела. Приклад на скрині нижче.

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

Для цього ПКС встановивши, як не проведено, 0 або 1 використовуємо як бульова.

На прикладі валюти створюємо для ПКС правило конвертації об'єкта. При цьому вважаємо, що в обох базах валюти є і вони повинні синхронізуватися за кодом. Тому в ПКО валют не створюватимемо всіх ПКС, а лише додамо Код для пошуку. Тобто. від пропозиції створити ПКС для об'єкта – відмовляємось.

У ПКО документа ПКС підставилося створене Правило конвертації. А саме правило за промовчанням пропонується за унікальним ідентифікатором. Виправляємо, робимо пошук за кодом та встановлюємо властивість, щоб не створювати новий об'єкт.

У результаті отримуємо варіант:

Далі за аналогією створюємо для інших реквізитів ПКО та ПКС. Причому пошук організації з контрагенту і навпаки встановлюємо за ІПН. Приблизно це виглядає з мінімальними реквізитами (можна додавати за необхідності).

Для ПКО Договори контрагентів робимо пошук по ПКС Контрагент, найменування та власник.

Подивимося, як вказати в ПКС потрібне значення у вигляді перерахування. Наприклад, реквізит "Відоперації". Тут можна використовувати різні умови та підставляти значення. Наприклад, нам потрібно, щоб «вид операції» завжди вивантажувався «Товари», у цьому випадку достатньо в «чоло» написати потрібне значення рядком.

Нижче показано, як встановити без складнощів і в більшості випадків ПКС для КратністьВзаєморозрахунків, КурсВзаєморозрахунків, Рахунки обліку.

Для ПКО Номенклатура залишимо пошук за внутрішнім унікальним ідентифікатором. Але зверну увагу на те, як можна перевизначити свою групу. Наприклад, ми погоджуємося, що вивантажуватиметься нова номенклатура з конфігурації 1С: Управління торгівлею 11, але потрібно, щоб номенклатура збиралася в певній групі «НашаГрупа».

Для реалізації цього завдання створюємо ще одне ПКО. Назвемо його «НоменклатураБатько», яке вкажемо в ПКС батька у правилі конвертації.

Встановлюємо два пошуки: за найменуванням, де найменування жорстко вказуємо нашій групі, та обов'язкова властивість ознаки «ЦеГрупа» в істині.

Оскільки ми прийняли рішення, що у нас вся номенклатура падає в нашу групу, то немає потреби при вивантаженні вивантажувати групи з УТ 11. Для цього в ПКО Номенклатура в обробнику подій «ПередВивантаження» поставимо фільтр, що не потрібно вивантажувати групи «Відмова = Джерело. Це група;".

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


Збережемо розроблені правила у файл.


7. Підбиваємо підсумки: Вивантаження та завантаження даних за допомогою розроблених правил обміну даними.

Відкриваємо в 1С:Управління торгівлею 11 обробку «Універсальний обмін даними у форматі XML» V8Exchan83.epf.

Вивантаження пройшло, тепер цією ж обробкою робимо завантаження до 1С: Бухгалтерія підприємства 3.


Завантаження пройшло. Перевіряємо, як завантажилося. Отже, документ завантажений, як ми й домагалися – у нас Організація завантажена у контрагента, а контрагент на організацію. Рахунки обліку всі завантажені та встановлені. Номер документа у нас вийшов із нашим префіксом і на початок дня. Усі реквізити, які прописали, заповнені.

Перевіряємо завантаження номенклатури. Бачимо, що все вийшло так, як ми планували.


У нас створилися та заповнилися реквізити так, як ми це замислювали. У конвертації є безліч тонкощів та якихось простих, але потрібних речей, які допомагають точно написати конвертацію. А це дозволяє мінімізувати помилки, не зіпсувати існуючі дані та позбутися зайвого сміття. Це один із самих простих прикладів. Можна також робити конвертації одного об'єкта в багато хто або навпаки багато - в один.

Наразі є конвертація даних 3, вона вирішує інші завдання. Тому конвертація 2 так само потрібна. Всім удачі у вивченні та освоєнні.

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

Спеціалізована конфігурація "1С: Конвертація даних 2.0"

Випуск восьмої версії платформи "1С: Підприємство" став значним кроком у розвитку систем автоматизації. При проектуванні платформи «1С: Підприємство 8» враховано величезний досвід використання рішень на платформі «1С: Підприємство 7.7»: було серйозно перероблено вбудовану мову платформи та типові конфігурації, змінено структуру зберігання та доступу до даних, створено нові галузеві рішення, що реалізують переваги нової . Застосування колишніх конструкцій мови у новій платформі стало недоцільним.

Для полегшення вирішення цього завдання (перенесення даних з версії 7.7 до версії 8) фірмою «1С» випущено спеціалізовану конфігурацію «Конвертація даних 2.0». Вона створена для допомоги фахівцям у вирішенні різноманітних завдань перенесення даних. Фірмою «1С» випущені готові правила перенесення даних з однотипних конфігурацій, наприклад з «1С: Бухгалтерії 7.7» в «1С: Бухгалтерію 8», але користувачам нетипових або змінених типових конфігурацій при переході на платформу «1С: Підприємство 8» прийде даних самостійно.

При всьому різноманітті приватних методів вирішення завдань перенесення даних коло вирішуваних питань практично залишається незмінним:

Синхронізація довідкової інформації(Створення нових, оновлення існуючих елементів довідників, видалення, збереження або зміна ієрархії, розгалуження даних, перенесення історії зміни значень періодичних реквізитів);

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

Створення достатніх початкових умов для облікових регістрів для ведення господарської діяльності(Перенесення залишків товарів та ін.).

Структури зберігання даних у «1С:Підприємстві» різних версій та/або конфігурацій різняться, тому перенесення даних - це не просте копіювання файлів або таблиць, а їхнє перетворення. Щоб перетворення було однозначним та коректним, для перенесення даних необхідно створити та налаштувати правила. Створення та налаштування правил перенесення даних між різними інформаційними базами можливі, якщо відома структура зберігання даних у базі-джерелі та базі-одержувачі. Опис структури метаданих конфігурацій має бути уніфіковано. Конфігурація «Конвертація даних 2.0» служить для створення та налаштування правил перенесення даних на основі описів структури метаданих конфігурації джерела та одержувача.

Процес перенесення даних між інформаційними базами складається з наступних етапів:

  • 1. Створення файлів опису метаданих.
  • 2. Створення Конфігурацій у «Конвертації даних».
  • 3. Створення самої конвертації.
  • 4. Послідовне створення правил конвертації даних.
  • 5. Послідовне створення правил розвантаження даних.
  • 6. Власне процедура вивантаження та завантаження даних з однієї конфігурації до іншої.

Т.к. використання даної спеціалізованої конфігурації є одним з найбільш ефективних на Наразіспособів вирішення завдань такого роду, а також джерела дуже корисного в освітніх цілях особистого досвіду, то розробки механізму обміну даними між ІС «Сервер: Розрахунок Квартплати» і «1С: Бухгалтерія підприємства» для ТОВ «ТОВ» було обрано метод, заснований на використанні конфігурації «Конвертація даних 2.0».

Конвертація даних 2.0 і 2.1 - технологічна конфігурація фірми 1С, реалізована на версії платформи від 8.1 до 8.3.

Головне завдання інструменту – написання правил обміну між прикладними рішеннями 1С 8 та 7. Актуальна версія конвертації даних сьогодні – 3.0.

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

Конфігурацію дуже зручно використовувати при .

Конвертація даних буде корисною для будь-якого програміста: наявність навичок створення правил обміну — це серйозний плюс до професійних навичок.

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

Дуже корисно буде розібратися в «типових» правилах обміну 1С 8.3, часто можна знайти цікаві приклади реалізації завдань.

Для розуміння основ вам знадобляться матеріали, розглянемо їх нижче.

Відео інструкція з конвертації

Налаштування обміну даними в 1С за допомогою конфігурації «1С Конвертації даних» на прикладі дивіться у відео:

Матеріали, підручники для вивчення 1С Конвертація даних 2.0

Матеріалів і документації в мережі не дуже багато, я спробував зібрати найважливіші та цікаві матеріали:

0. Насамперед раджу безкоштовний відеокурс Іллі Леонтьєва, він доступний по засланні.

1. Я порадив би насамперед користуватися вбудованою довідкою в конфігурацію. Вона дійсно непогано написана та грамотно реалізована технічно:

2. Друге за важливістю джерело інформації - сайт http://www.mykod.info/ (сайт закрився), спеціалізований саме на конвертації даних. Там Ви зможете завантажити велику кількість конвертаційних матеріалів.

3. Окремо хотілося б виділити методичку підручника – (автор – Ольга Кузнєцова).


2023
newmagazineroom.ru - Бухгалтерська звітність. УНВС. Зарплата та кадри. Валютні операції. Сплата податків. ПДВ. Страхові внески