Как известно, типовая обработка "Универсальный обмен данными в формате XML" для управляемых форм, входящая в состав КД 2.Х, а равно и поставляемая отдельно, не имеет таких же возможностей отбора, как её аналог для обычных форм. Многие авторы, в т.ч. на Инфостарт, решали этот вопрос, причём по-разному. Но по итогам сравнительного анализа стало ясно, что все они или давно сделаны и могут что-то не поддерживать (например, запрет синхронных вызовов на клиенте), или содержат ошибки, или просто неудобны. Я постарался сделать концептуально "как было в обычных формах", но с отбором СКД, и заодно решить ряд мелких, но раздражающих проблем. Среди них такие, как отсутствие целевого сохранения настроек, т.е. все настройки равноценны и никак не связаны с применяемой конвертацией - особенно это критично, когда их много и ничто, кроме имён этих настроек, не роднит их с правилами обмена; и конечно, отсутствие нормального сохранения настроек отбора и параметров выгрузки. Мой вариант удобен для случая, когда идёт разработка и тестирование конвертации, и надо много-много раз перезапускать её.
Возможности:
* Если файл правил указан, при открытии сразу читает-загружает правила;
* При перечитывании правил сохраняет все настройки выгрузки (флаги ПВД, отборы ПВД, параметры выгрузки, позицию в дереве);
* Сохраняет все настройки выгрузки между сеансами использования обработки (применяется хранилище настроек отчётов), ключом является ID конвертации, поэтому перепутать настройки к правилам невозможно;
* Показывает наименование используемой конвертации на форме (имя файла может быть недостаточно информативно);
* Работает "как в обычных формах", выделяя жирным шрифтом строки с используемыми отборами, позволяет хранить временно выключенные отборы;
* Умеет отборы на измерения и ресурсы для независимых, в т.ч. периодических, регистров сведений;
* Показывает флажки ПВД в режиме трёх состояний, если ПВД в ветке отмечены частично (мелочь, а приятно, и граблей меньше);
* Позволяет установить отбор групповым образом, на отмеченные ветки ПВД - например, если надо всем документам поставить отбор по организации, а такого параметра выгрузки в правиле не предусмотрено (показано на рис.2, ищет хоть что-то общее в выделенных и для найденных "общих" полей даёт поставить отбор);
* Позволяет сбросить (выключить, но не удалить) установленные отборы в выделенных ветках.
* И ещё поубирал всякие мелкие шероховатости.
Штатные общие настройки оставлены, но они менее приоритетны, чем мои.
Все сделанные мной доработки маркированы в коде.
Загрузочная часть никакой доработке не подвергалась.
Обработка взята из типовой КД 2.1.18.2 с официального сайта. Тестировалось на 8.3.18.1289
... наверняка возникает вопрос: таких уже полно, зачем было ещё одну делать? Отвечаю: нет нормально работающих. Нету. Скачал несколько штук, при желании покажу, у какой из них что плохо. Но - будем позитивнее - авось и моя кому-нибудь пригодится.
P.S. Этот аккордеон выкладываю забесплатно)