Загрузка данных XML с возможностью перезаполнения загружаемых объектов

Обмен - Обмен через XML

Внешняя обработка, позволяет определить правила отбора и заполнения загружаемых из XML файла объектов. Очень полезна в море правил обмена между конфигурациями.

Назначение

Попытка соединить в себе две обработки - Универсальный обмен данными XML и Универсальный подбор и обработку объектов - а именно, отобрать некоторые из загружаемых объектов (включая табличные части), переопределить реквизиты или выполнить определенный код перед или после записи.

Аудитория пользователей

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

Проблематика

Обработка "выросла" из нескольких распространенных неудобств обмена данными в формате XML:

  • Устаревшие правила обмена
  • Ошибки в правилах обмена
  • Большое количество "отраслевых" решений, предлагающих правила обмена с типовыми конфигурациями, написанными "на коленке" и имеющими очень скудные возможности заполнения объектов в конфигурациях-получателях
  • Вечные "хотелки" пользователей, ради которых лезть в КД как-то не комильфо

Матчасть

Обработка предназначена для ЗАГРУЗКИ данных из файла XML в конфигурацию-получателя. Имеет ряд реквизитов, относящихся к обработке УниверсальныйОбменДаннымиВФорматеXML и табличную часть, описывающую правила для отбора и заполнения загружаемых объектов. 

Наличие обработки УниверсальныйОбменДаннымиВФорматеXML в конфигурации обязательно.

Обработка создает УниверсальныйОбменДаннымиВФорматеXML, инициализирует загрузку данных, получает обратно массив загруженных объектов и проходится по нему Правилами заполнения.

Порядок работы

В табличной части пользователь может определить произвольное количество Правил. Каждое правило представляет собой:

  • Объект - объект (вид объекта информационной базы, включая табличные части), к которому применимо правило
  • Отбор - отбор по реквизитам объекта
  • Заполнение - установка значений реквизитов объекта
  • Тексты на встроенном языке "ПередЗаписью" и "ПослеЗаписи" - алгоритм, выполняющийся перед и после записи объекта. Доступ к обрабатываемому объекту возможен через переменную ТекущийОбъект.

Также имеется возможность включения/отключения и сортировки (порядка выполнения) правил.

Послесловие

Для работы используется ПостроительОтчета и функция общего модуля типовых конфигураций (см. 4 скриншот), которую можно легко добавить в модуль самой обработки. Работает на платформе 8.2 (не на УФ), протестировано на УПП, УТ 10, БП 2, ЗУП.

Не претендую на новаторство или кучу плюсов - надеюсь, что она окажется полезной вам и вашим пользователям. Так же приветствуется допиливание - УФ, увеличение производительности, замена ПостроителяОтчета на ПостроительЗапроса (или СКД).

Скачать файлы

Наименование Файл Версия Размер
ЗагрузкаДанныхXML
.epf 21,46Kb
17.06.12
178
.epf 21,46Kb 178 Скачать

См. также

Комментарии
1. Дмитрий Павлик (DimaP) 56 17.06.12 20:31 Сейчас в теме
Авансон плюс!
А так КД постоянный помощник.
2. Сергей Ожерельев (Поручик) 3624 17.06.12 21:36 Сейчас в теме
(0) >>>>>> Наличие обработки УниверсальныйОбменДаннымивФорматеXML в конфигурации обязательно.

Её можно можно вставить в макет обработки и при открытии извлекать во временный файл.
3. aspirator 23 (aspirator23) 303 20.06.12 08:49 Сейчас в теме
А к этой не приделаешь?
http://infostart.ru/public/16654/
Или наоборот - эту к своей приделаешь?
Пользуюсь первой обработкой постоянно, спасибо автору.
Но и твоя очень интересна.
Если бы удалось скрестить - было бы здорово.
4. Roman Biblbox (mr zafod) 22 20.06.12 10:02 Сейчас в теме
(3) aspirator23,
На самом деле не совсем понял, что Вы имеете ввиду.
5. aspirator 23 (aspirator23) 303 20.06.12 10:53 Сейчас в теме
(4) твоя обработка позволяет изменять загружаемые данные.
Описанная обработка позволяет видеть что загружается.
Если их срастить, было бы здорово.
7. Roman Biblbox (mr zafod) 22 20.06.12 11:38 Сейчас в теме
(5) Я посмотрю, хотя не понимаю, зачем видеть, что загружается - только для отладки?
8. aspirator 23 (aspirator23) 303 20.06.12 13:46 Сейчас в теме
(7) А ты посмотри эту обработку - она очень удобная.
Если часто и много работаешь с КД, то выручает она очень часто от ляпов.
Да и просто сделать анализ, можно сделать практически только с ней.
9. Василий Антонов (khaoos) 239 21.06.12 05:01 Сейчас в теме
Хорошая разработка. Претендует на много плюсов :). От меня точно плюс.
10. isn Игнатьев (isn) 13 03.07.12 12:27 Сейчас в теме
Здравствуйте!
Не сочтите за занудство, но в описании темы - как пользоваться этой обработкой не совсем понятно. На мой взгляд, название темы "Загрузка данных XML с возможностью перезаполнения загружаемых объектов" и "порядок работы" указанный у вас совсем не связаны друг с другом. Опишите подробно, в картинках КАК пользоваться вашей обработкой.
11. Roman Biblbox (mr zafod) 22 03.07.12 14:15 Сейчас в теме
(10) Ну ведь вроде все просто. Добавляете в табличную часть правила для ЗАГРУЖАЕМЫХ ОБЪЕКТОВ. Они работают так.

Для каждой строки из табличной части:
--Выбираются все ЗАГРУЖАЕМЫЕ объекты по типу, указанному в реквизите "Объект"
-----Из них выбираются те, которые удовлетворяют условиям, указанным на закладке "Отбор"
--------Для каждого из оставшихся после отбора объектов выполняются:
------------Заполнение указанных реквизитов каждого объекта значениями, согласно указаниям на закладке "Заполнение"
------------Выполнение кода на встроенном языке для каждого объекта перед и после записи - закладки "перед записью" и "После записи" соответственно.

Я не претендую на предельную лаконичность моего изложения, поэтому предлагаю Вам скачать обработку и попробовать с ней поработать. Вы все сами поймете через 20 минут работы.
12. isn Игнатьев (isn) 13 22.01.13 09:23 Сейчас в теме
Скачаю вашу обработку обязательно, пока мне для скачивания не хватает $m.
13. Алекс Алекс (letchik2000) 25.02.15 10:53 Сейчас в теме
Можно ли дополнить эту разработку автоматическим созданием правил?
Оставьте свое сообщение