Алгоритм выбора схемы обработки
Помимо механизма автоматического выбора схемы, по которой будет обрабатываться сообщение, в Платформе реализована возможность выбора схемы при помощи скрипта на языке С#. Это дает возможность гибко и подробно выстроить логику выбора на основании информации, которую несет в себе сообщение.
Для написания и редактирования скрипта схемы обработки перейдите в раздел Обработка данных → Схемы обработки.

В таблице дважды нажмите на строку Скрипт выбора схемы обработки. В рабочей области отобразится инструмент для создания и редактирования скрипта.
При выборе схемы в первую очередь запускается скрипт выбора (если он присутствует). Если схема обработки не была определена, после завершения выполнения скрипта запускается автоматический выбор схемы. Список схем формируется из процессов и алгоритмов с признаком Запускать автоматически, для которых тип переменной процесса соответствует типу сообщения, реализует тип сообщения, или является сообщением.
В скрипте доступна системная переменная Message InitMessage для доступа к контексту обрабатываемого сообщения.
Для определения схемы в скрипте определения схем доступны следующие методы:
IsRouter: для Metadata.Functions. Метод bool IsRouter() элемента списка Metadata.Functions возвращает значение true, если схема является маршрутом.
DefineFunctions.Add(Metadata.Functions function): добавляет в список схем для обработки текущего сообщения новую схему.
SetFunction(Metadata.Functions function): замещает список схем для обработки текущего сообщения одной новой схемой.
Чтобы получить список определенных автоматически схем:
OwnList<Metadata.Functions>: для InitMessage.
OwnList<Metadata.Functions> CalculateFunctions(Message message): для Message.
OwnList<Metadata.Functions> CalculateFunctions(Metadata.DataTypes type): для типа. Метод доступен для вызова из кода алгоритмов и функций.
Выбор схемы обработки для сообщения можно отследить в Цепочке событий, которая доступна на вкладке События системы, процесса или сервера. Рекомендуется обратиться к серверу, поскольку именно на сервере происходит определение схемы.
Для этого следует перейти в Центр мониторинга и администрирования, выбрать сервер и перейти на вкладку События.
Выберите любое событие из цепочки, связанной с сообщением и нажмите на на кнопку Цепочка событий.
Откроется цепочка событий и маршрут сообщения внутри Платформы:

На шаге DefineFunc на сервере определяется схема обработки БП для сообщения, и далее сервис процессов запускает выбранную схему обработки.
Если схему обработки определить не удалось, то в событиях сервера будет отображено событие Error.