Мастер XML-обмена

Функциональный аналог конвертации данных в кармане — комплекс обработок предназначенный для быстрой и удобной разработки обмена данными между информационными базами 1С.

        Представляю вам Мастер XML-обмена — комплекс обработок для быстрой и удобной разработки обмена данными между информационными базами 1С.

 

Не вдаваясь в сравнения с конвертацией данных, перейду к требованиям заложенным и реализованным в разработке:

  • «человекочитаемый» хорошо документированный формат XML-файла с данными;
  • структура файла данных не меняется из-за настроек «правил конвертации»;
  • обязательное наличие инструмента просмотра содержимого и структуры файла данных;
  • исходными данными для настроек обмена являются и файлы со структурой метаданных конфигураций ИБ-источника и ИБ-приемника, и файлы с данными — на случай выгрузки виртуальных объектов;
  • простые интуитивно-понятные визуальные настройки, которых хватает на 95% всех возможных ситуаций обмена;
  • абсолютная прозрачность контекста исполнения кода обработчиков событий;
  • результатом настроек является автоматически генерируемый код загрузки — понятный, простой в отладке и доработке «ручками»;
  • никаких xsd и xdto — для чтения и записи используется DOMDocument — это требование проистекает из предыдущего;
 

Разработка обмена в общем случае сводится к следующим этапам:

  • выгрузка структуры метаданных конфигураций ИБ источника и приемника в XML обработкой АнализаторКонфигурации;
  • настройка и/или доработка обработки ШаблонВыгрузки, которая выгружает данные в XML;
  • анализ состава и структуры данных в обработке ПросмотрщикФайлаДанных (необязательно); 
  • настройка соответствия объектов, их свойств и значений визуальными средствами в обработке ГенераторКода;
  • генерация кода загрузки обработкой ГенераторКода;
  • вставка автоматически сгенерированного кода в обработку ШаблонЗагрузки;

 Суть подхода в том, что я не пытаюсь оторвать разработчика от конфигуратора и отладчика, но при этом всю рутину разработки обмена перекладываю на визуальные настройки, оставляя возможность доработать полученный код максимально удобно и быстро — в конфигураторе, с прозрачным, понятным и простым контекстом, автодополнением кода и полноценной отладкой))

 

И озвучу очевидные системные требования в связи с использованием DOMDocument :

 — выгрузка метаданных, выгрузка данных и загрузка данных выполняются на стороне сервера, значит сервер приложения 1С должен работать в Windows-системе.

— ПросмотрщикФайлаДанных и ГенераторКода работают с XML на стороне клиента — значит для их использования клиентская часть 1С Предприятия должна запускаться в Windows-системе.

 

 

Небольшой экскурс в инструментарий.

 

Обработка АнализаторКонфигурации —  выгружает в XML-файл структуру метаданных конфигурации:

ОФ

УФ

7.7

 

 

Обработка ШаблонВыгрузки — выгружает данные в XML-файл. 

Шаблон выгрузки умеет выгружать данные, выбранные введенным в форме запросом — со всеми возможными сложными условиями выборки, которые нам позволяет реализовать язык запросов. Предполагается что, если обработка выгрузки предоставляется пользователям, то из нее удаляется эта возможность, а текст запроса жестко вшивается в код.

Понятно, что в случае обмена между очень отличными по структуре базами (ну, например, ИТРП 7.7 — ЕРП 2.0) выгрузка из базы реальной структуры данных может быть не применима — строки документа спецификации визуальными средствами в подчиненные маршрутной карте элементы справочника операции, к сожалению, не превратить. Поэтому в модуле обработки ШаблонВыгрузки есть уже готовые процедуры для выгрузки виртуальных данных — ЗаписатьВиртуальныйРеквизит, ЗаписатьВиртуальныеТабличныеЧасти, ЗаписатьВиртуальныйОбъект.

В общем случае, я думаю, структура виртуальных данных должна быть максимально приближена к структуре данных в ИБ-приемнике — по крайней мере я делаю так.

Это достигается простыми, но, временами, объемными доработками ШаблонаВыгрузки, и под простотой доработок я понимаю именно простоту алгоритмов.

Зато код загрузки полученнный на выходе ГенератораКода доработок не потребует.

 

 ОФ

 

УФ

 

7.7 — лог выгрузки пишется в окно сообщений

 

При этом файл с данными весит на 30-40% меньше, чем те же данные в формате конвертации данных.

 

 

Обработка ПросмотрщикФайлаДанных — средство просмотра состава и структуры выгруженных данных:

 ОФ

 

УФ

 

 

Обработка ГенераторКода


 XML-файлы загружаются в обработку ГенераторКода.

В генераторе кода визуальными средствами настраивается соответствие объектов источника объектам приемника.

Что может ГенераторКода:

  • — поддерживается настройка (простым перетаскиванием, в основном) соответствий между любыми объектами и значениями: справочник в перечисление и наоборот, простой тип в справочник или перечисление и наоборот,  ну и между объектами одного вида само собой, перенос движений, записей регистров — легко и интуитивно-понятно.
  • — поддерживается настройка соответствия значений реквизитов простых типов (например кода в плане счетов — типовая ситуация при переносе остатков по счетам из баз 7.7).
  • — поддерживается загрузка реквизитов шапки из ТЧ/Движений/Периодических реквизитов и наоборот, реквизиты ТЧ могут одновременно грузиться в ТЧ и в шапку
  • — реквизиты шапки могут одновременно грузиться в шапку и в несколько ТЧ/Движений/Периодических реквизитов.  
  • — поддерживается слияние нескольких типов источника в один тип в приемнике и наоборот.


И все это(настройка соответствий) — визуальными средствами — без строчки кода. Чего генератор не умеет — так это грузить одну ТЧ в несколько и наоборот — сливать несколько ТЧ в одну… но всегда можно при выгрузке добавить виртуальную ТЧ объекту.


Но… у генератора кода есть только набор обычных форм. Если разработка будет востребована — задумаюсь над управляемыми…


Вот ниже ряд принтскринов генератора кода для интересных и простых случаев:

Начальная страница генератора кода

 

Настройка соответствий непосредственно выгружаемых объектов

 

Настройка соответствий объектов выгружаемых по ссылкам (здесь доступно и просто добавление нового соответствия).

Суть процесса заключается в настройке соответствия реквизитов объектов и их типов. И на основании соответствия типов генератор кода создает новые соответствия объектов — строки верхнего уровня в этом дереве — которые вы снова настраиваете покуда все строки в дереве не «позеленеют»

Пример настройки соответствия справочников. Справочники структурно одинаковы — просто хотел показать настройку типов в случае составного типа в источнике и приемнике

 

Пример настройки соответствия перечисления в источнике справочнику в приемнике

 

Пример настройки соответствия простого типа в источнике значению перечисления в приемнике (ВНИМАНИЕ: в пределах разработки тип Булево имеет представление 1 и 0, а не Истина и Ложь или Да и Нет — так логичнее с учетом работы и с 7.7 — там то флаги на форме — Число, да и лаконичнее…)

 

Пример настройки соответствия документов — демонстрация возможности переноса движений — они же ведь есть в форме настройки!)

Пример настройки соответствия значений реквизита простого типа

 

А вот скрин с автоматически сгенерированным кодом: 

 

И вот этот код вставляется в модуль обработки ШаблонЗагрузки (или в модуль формы — для 7.7).

 

 

Обработка Шаблон загрузки:

ОФ

 

 

УФ

 

7.7 — в этом случае лог загрузке выводится в окне сообщений

 

 Время загрузки на нагрузочных тестах на те же 30-40% меньше чем при загрузке по правилам конвертации — делаю вывод, что циклический перебор узлов DOMDocument работает примерно с той же скоростью, что и всякие XDTO, а меньшее время определяется меньшими размерами файла с данными.

 

Я подготовил несколько видеокейсов — вот вводный:

  

 Остальные в этом плей-листе

 

 Теперь пару слов о содержимом архива по ссылке внизу.

В бесплатных материалах вы найдете следующее:

 

это файлы обработок из состава Мастера XML-обмена (кроме генератора кода), файл описывающий структуры файлов XML, с которыми работает мастер, файл с лицензией, папку с примером из первого видеокейса — там файл с данными, cf-ка базы-приемника и обработка ШаблонЗагрузки в которую вставлен код загрузки.

 

И согласно п.13 правил размещения коммерческих публикаций — ответы на важные вопросы:

  1. Обработки для 7.7 тестировались и использовались на платформе 7.70.027. Все обработки кроме ГенераторКода.epf имеют и ОФ и УФ, ГенераторКода.epf имеет только ОФ. УФ и ОФ работают на всех версиях платформ 8.2 и 8.3;
  2. Коммерческая доработка Мастера XML-обмена по требованиям заказчика не предполагается;
  3. Код всех обработок открыт. Лицензия предоставляет вам полное право на произвольные доработки всего и вся;
  4. Обновления Мастера бесплатные, предполагается просто заменять дистрибутив на актуальный с соответствующей записью в этой теме;
  5. Техподдержка платная))) — 200 рублей за вопрос, ответ гарантирован в течение недели) А вот вопросы в этой теме или в личку, пожелания и предложения по доработке — принимаются совершенно бесплатно. Отвечаю, помогаю, советую — по мере слабых сил и возможностей;
  6. Лицензия под которой распространяется мастер пока расчитана только на физлиц и входит в состав бесплатных ознакомительных материалов;
  7. Установка программы происходит простым разархивированием, регистрация не требуется;

 

 П.С. 1 

Буду рад любым замечаниям и предложениям по развитию/доработке юзабилити и функциональности.

Особенно буду рад если посоветуете компоненту работающую с JSON в стиле DOMDocument — быстро сверстаю Мастер JSON-обмена)))

 

 П.С. 2

О ценообразовании: комплекс обработок стоит 1 трудодень хорошего 1Сника в провинции — в денежном эквиваленте — а сэкономить трудодней поможет значительно больше своей стоимости)

 

 11.09.15   Написал с помощью Мастера Перенос физических лиц ЗУП → ЗУП (УПП)  —  можно посмотреть как все внутри устроено для вполне рабочего и объемного (но простого) примера.

 

 

Причины купить

  • значительная экономия времени при разработке обменов;
  • низкие требования к квалификации разработчика — код загрузки очень прост и понятен;
  • минимальные требования к изучению средств разработки обмена — интерфейс интуитивно-понятен, а контекст обработчиков прозрачен — нет необходимости запоминать служебные переменные как в конвертации данных;
  • открытость разработчика к совместной творческой доработке предлагаемого инструментария;

Достоинства

Преимущества разработки в целом: 

  • «человекочитаемый» хорошо документированный формат XML-файла с данными;
  • структура файла данных не меняется из-за настроек «правил конвертации»;
  • из предыдущих пунктов проистекает возможность обмена данными с другими (не 1С) системами в предлагаемом формате — структура XML тривиальна и хорошо описана;
  • наличие инструмента просмотра содержимого и структуры файла данных;
  • — исходными данными для настроек обмена являются и файлы со структурой метаданных конфигураций ИБ-источника и ИБ-приемника, и файлы с данными — на случай выгрузки виртуальных объектов;
  • простые интуитивно-понятные визуальные настройки, которых хватает на 95% всех возможных ситуаций обмена;
  • абсолютная прозрачность контекста исполнения кода обработчиков событий;
  • результатом настроек является автоматически генерируемый код загрузки — понятный, простой в отладке и доработке «ручками»;
  • никаких xsd и xdto — для чтения и записи используется DOMDocument — это требование проистекает из предыдущего;
Гибкость визуальных настроек загрузки:

  • поддерживается настройка (простым перетаскиванием, в основном) соответствий между любыми объектами и значениями: справочник в перечисление и наоборот, простой тип в справочник или перечисление и наоборот,  ну и между объектами одного вида само собой, перенос движений, записей регистров — легко и интуитивно-понятно;
  • поддерживается настройка соответствия значений реквизитов простых типов (например кода в плане счетов — типовая ситуация при переносе остатков по счетам из баз 7.7);
  • поддерживается загрузка реквизитов шапки из ТЧ/Движений/Периодических реквизитов и наоборот, реквизиты ТЧ могут одновременно грузиться в ТЧ и в шапку;
  • реквизиты шапки могут одновременно грузиться в шапку и в несколько ТЧ/Движений/Периодических реквизитов;  
  • поддерживается слияние нескольких типов источника в один тип в приемнике и наоборот;

Гарантия возврата денег

ООО «Инфостарт» гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *