Назначение
Попытка соединить в себе две обработки - Универсальный обмен данными XML и Универсальный подбор и обработку объектов - а именно, отобрать некоторые из загружаемых объектов (включая табличные части), переопределить реквизиты или выполнить определенный код перед или после записи.
Аудитория пользователей
Разработчики, специалисты поддержки, опытные пользователи. Последние являются основными потребителями функционала.
Проблематика
Обработка "выросла" из нескольких распространенных неудобств обмена данными в формате XML:
- Устаревшие правила обмена
- Ошибки в правилах обмена
- Большое количество "отраслевых" решений, предлагающих правила обмена с типовыми конфигурациями, написанными "на коленке" и имеющими очень скудные возможности заполнения объектов в конфигурациях-получателях
- Вечные "хотелки" пользователей, ради которых лезть в КД как-то не комильфо
Матчасть
Обработка предназначена для ЗАГРУЗКИ данных из файла XML в конфигурацию-получателя. Имеет ряд реквизитов, относящихся к обработке УниверсальныйОбменДаннымиВФорматеXML и табличную часть, описывающую правила для отбора и заполнения загружаемых объектов.
Наличие обработки УниверсальныйОбменДаннымиВФорматеXML в конфигурации обязательно.
Обработка создает УниверсальныйОбменДаннымиВФорматеXML, инициализирует загрузку данных, получает обратно массив загруженных объектов и проходится по нему Правилами заполнения.
Порядок работы
В табличной части пользователь может определить произвольное количество Правил. Каждое правило представляет собой:
- Объект - объект (вид объекта информационной базы, включая табличные части), к которому применимо правило
- Отбор - отбор по реквизитам объекта
- Заполнение - установка значений реквизитов объекта
- Тексты на встроенном языке "ПередЗаписью" и "ПослеЗаписи" - алгоритм, выполняющийся перед и после записи объекта. Доступ к обрабатываемому объекту возможен через переменную ТекущийОбъект.
Также имеется возможность включения/отключения и сортировки (порядка выполнения) правил.
Послесловие
Для работы используется ПостроительОтчета и функция общего модуля типовых конфигураций (см. 4 скриншот), которую можно легко добавить в модуль самой обработки. Работает на платформе 8.2 (не на УФ), протестировано на УПП, УТ 10, БП 2, ЗУП.
Не претендую на новаторство или кучу плюсов - надеюсь, что она окажется полезной вам и вашим пользователям. Так же приветствуется допиливание - УФ, увеличение производительности, замена ПостроителяОтчета на ПостроительЗапроса (или СКД).