Можно ли изучить сложные правила за 15 минут?
Скажите, задумывались ли Вы над тем, как устроены правила обмена? Наверняка задумывались!
И скорее всего даже знаете, что они включают в себя правила выгрузки данных (ПВД), правила конвертации объектов (ПКО), правила конвертации свойств (ПКС и ПКГС) и правила конвертации значений (ПКЗ).
А еще в них есть правила очистки данных, алгоритмы, запросы, параметры конвертации, дополнительные обработки и большое количество обработчиков событий.
В самом простом случае правила можно представить так: правило выгрузки данных вызывает правило конвертации и передает ему выгружаемый объект. Правило конвертации по правилам конвертации свойств передает его свойства (реквизиты) другим правилам конвертации объектов или правилам конвертации значений. В результате этих вызовов формируется файл xml.
И это самый простой вариант!
А теперь представьте себе более сложные правила. Такие например, как правила обмена «Управление торговлей, ред. 1.1 → Бухгалтерия предприятия, ред. 3.0». Структура конфигураций значительно различается. Большое количество параметров, общих алгоритмов и запросов. Многочисленные варианты настройки...
И понять, что же представляют собой эти правила, становится уже не так просто...
Дело в том, что правила могут быть вызваны по — разному. Например, в ПВД можно указать по какому именно ПКО будет выгружаться переданный объект (указав его в реквизите «Правило конвертации»). А можно в обработчике «Перед выгрузкой» или «При выгрузке» в зависимости от каких — либо условий определить значение переменной ИмяПКО, которому он должен быть передан или вызвать функцию ВыгрузитьПоПравилу(). А этих условий может быть не один и даже не два...
Или возьмем общие алгоритмы и запросы. К ним можно обратиться из обработчиков событий, написав программный код Выполнить(Алгоритмы.) и Запросы. соответственно. А отследить такие вызовы штатно практически невозможно.
И вот представьте себе, как Вы изучаете простыни кода, пытаясь найти эти вызовы и понять — как выполняется преобразование объекта. Представили? А теперь — забудьте!
Потому что уже сейчас Вы можете получить инструмент, который наглядно отобразит все связи и вызовы, по которым происходит преобразование данных. И вдобавок — абсолютно бесплатно!
Представлю Вашему вниманию маленькую, но очень полезную обработку «Навигатор правил обмена», которая позволяет выявлять следующие взаимосвязи:
1. Для ПВД, ПКС указано ПКО.
2. Для ПКС не указано ПКО, выполняется подбор подходящего правила по типу источника и приемника.
3. Выполняется вызов функции ВыгрузитьПоПравилу().
4. Переменной ИмяПКО присваивается значение в одном из обработчиков событий.
Эта обработка очень проста в использовании — нужно указать правила обмена и нажать кнопку «Сформировать». После того, как будет выполнен анализ вызовов (может выполняться довольно долго) она сформирует дерево правил.
Дерево правил
Дерево правил — основной инструмент обработки. Оно предназначено для отображения структуры вызовов и позволяет перейти к конкретному элементу правил (ПВД, ПКО, ПКС, ПКГС, ПКЗ, параметрам, алгоритмам и запросам) или открыть общую форму «Настройка правил обмена данными» с отбором по текущему правилу и элементу правил.
Более того, обработка покажет и способ, по которому вызывается конкретное правило!
Вам «в наследство» достались сложные правила обмена, и понять логику предыдущего программиста сложно? Тогда эта обработка предназначена именно для Вас!
Вы открываете свои правила, в которые не заглядывали год и пытаетесь вспомнить что имелось в виду, когда писался алгоритм? «Навигатор правил обмена» моментально поможет Вам вспомнить все!
И еще одна маленькая, но в некоторых случаях очень полезная возможность. Если в текущей строке дерева содержится ПКО, то контекстное меню будет содержать команду "Установить отбор по текущему значению". С помощью этой кнопки можно быстро отфильтровать все вхождения в дерево этого ПКО (с учетом подчиненных и родительских строк).
Скачайте обработку и изучите правила с которыми Вы работаете сейчас!
Открывайте и редактируйте правила прямо из обработки, когда Вы точно знаете — откуда они были вызваны! Сэкономьте время и нервы!
P.S. Я буду очень рад любым замечаниям и предложениям, которые смогут улучшить этот инструмент, повысить его производительность и удобство.
Версия 2.2 от 30.03.2019
- Изменения в отображении ПКС в дереве вызовов:
- Добавлена сортировка по порядку родителя и порядку ПКС,
- Правила, по которым выполняется поиск, выделяются жирным шрифтом.
- Исправлены выявленные ошибки.
Версия 2.0 от 14.01.2019
- Переработан анализ поиска ссылок на объекты правил с использованием регулярных выражений.
- Снижено потребление оперативной памяти.
- Исправлены выявленные ошибки.