Представляю вам Мастер 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 правил размещения коммерческих публикаций — ответы на важные вопросы:
- Обработки для 7.7 тестировались и использовались на платформе 7.70.027. Все обработки кроме ГенераторКода.epf имеют и ОФ и УФ, ГенераторКода.epf имеет только ОФ. УФ и ОФ работают на всех версиях платформ 8.2 и 8.3;
- Коммерческая доработка Мастера XML-обмена по требованиям заказчика не предполагается;
- Код всех обработок открыт. Лицензия предоставляет вам полное право на произвольные доработки всего и вся;
- Обновления Мастера бесплатные, предполагается просто заменять дистрибутив на актуальный с соответствующей записью в этой теме;
- Техподдержка платная))) — 200 рублей за вопрос, ответ гарантирован в течение недели) А вот вопросы в этой теме или в личку, пожелания и предложения по доработке — принимаются совершенно бесплатно. Отвечаю, помогаю, советую — по мере слабых сил и возможностей;
- Лицензия под которой распространяется мастер пока расчитана только на физлиц и входит в состав бесплатных ознакомительных материалов;
- Установка программы происходит простым разархивированием, регистрация не требуется;
П.С. 1
Буду рад любым замечаниям и предложениям по развитию/доработке юзабилити и функциональности.
Особенно буду рад если посоветуете компоненту работающую с JSON в стиле DOMDocument — быстро сверстаю Мастер JSON-обмена)))
П.С. 2
О ценообразовании: комплекс обработок стоит 1 трудодень хорошего 1Сника в провинции — в денежном эквиваленте — а сэкономить трудодней поможет значительно больше своей стоимости)
11.09.15 Написал с помощью Мастера Перенос физических лиц ЗУП → ЗУП (УПП) — можно посмотреть как все внутри устроено для вполне рабочего и объемного (но простого) примера.
Причины купить
- значительная экономия времени при разработке обменов;
- низкие требования к квалификации разработчика — код загрузки очень прост и понятен;
- минимальные требования к изучению средств разработки обмена — интерфейс интуитивно-понятен, а контекст обработчиков прозрачен — нет необходимости запоминать служебные переменные как в конвертации данных;
- открытость разработчика к совместной творческой доработке предлагаемого инструментария;
Достоинства
Преимущества разработки в целом:
- «человекочитаемый» хорошо документированный формат XML-файла с данными;
- структура файла данных не меняется из-за настроек «правил конвертации»;
- из предыдущих пунктов проистекает возможность обмена данными с другими (не 1С) системами в предлагаемом формате — структура XML тривиальна и хорошо описана;
- наличие инструмента просмотра содержимого и структуры файла данных;
- — исходными данными для настроек обмена являются и файлы со структурой метаданных конфигураций ИБ-источника и ИБ-приемника, и файлы с данными — на случай выгрузки виртуальных объектов;
- простые интуитивно-понятные визуальные настройки, которых хватает на 95% всех возможных ситуаций обмена;
- абсолютная прозрачность контекста исполнения кода обработчиков событий;
- результатом настроек является автоматически генерируемый код загрузки — понятный, простой в отладке и доработке «ручками»;
- никаких xsd и xdto — для чтения и записи используется DOMDocument — это требование проистекает из предыдущего;
- поддерживается настройка (простым перетаскиванием, в основном) соответствий между любыми объектами и значениями: справочник в перечисление и наоборот, простой тип в справочник или перечисление и наоборот, ну и между объектами одного вида само собой, перенос движений, записей регистров — легко и интуитивно-понятно;
- поддерживается настройка соответствия значений реквизитов простых типов (например кода в плане счетов — типовая ситуация при переносе остатков по счетам из баз 7.7);
- поддерживается загрузка реквизитов шапки из ТЧ/Движений/Периодических реквизитов и наоборот, реквизиты ТЧ могут одновременно грузиться в ТЧ и в шапку;
- реквизиты шапки могут одновременно грузиться в шапку и в несколько ТЧ/Движений/Периодических реквизитов;
- поддерживается слияние нескольких типов источника в один тип в приемнике и наоборот;
Гарантия возврата денег
ООО «Инфостарт» гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.
Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.
Для возврата оплаты просто свяжитесь с нами.