gifts2017

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

Опубликовал Roman Biblbox (mr zafod) в раздел Обмен - Обмен через XML

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

Назначение

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

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

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

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

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

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

Матчасть

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

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

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

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

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

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

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

Послесловие

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

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