Обработчики
При получении сообщения извне (входящая точка) система запускает механизм установки типа сообщения.
- При получении сообщения (до выполнения кода обработчика). 1с коннектор поддерживает получение сообщения со свойствами DataType или SystemDataType:
Если параметр DataType заполнен, то тип сообщения устанавливается на основе заполненного.
Если параметр SystemDataType заполнен, то тип сообщения устанавливается в OriginalSystemDataType и SystemDataType заполняется из метаданных.
Если параметры DataType и SystemDataType пустые, то тип сообщения заполняется из вкладки В Platform обработчика соответствующим типом.
Если параметр DataType или SystemDataType заполнен, то система выполняет сравнение с типом переменной на вкладке В Platform, если тип переменной отличается от типа сообщения, и у переменной установлен флаг Обязательное, система возвращает ошибку и сообщение перемещается в архив.
- Инициализация переменных для выполнения кода обработчика.
Если коннектор поддерживает использование кода и код заполнен, то переменная создается со вкладки В Platform обработчика.
Если тип определен в пункте 1, и он отличается от типа переменной из вкладки В Platform, то переменная принимает значение null (если установлен параметр разрешить null) или создается пустой объект.
Обработчики 1С
Вкладка Основные
Для настройки обработчика 1С необходимо выбрать нужный тип из выпадающего списка:
Далее указать необходимое направление интеграции:
В зависимости от выбранного направления изменится вкладка В Platform / Из Platform.
Обработчики В Platform вызываются на стороне 1С при добавлении/изменении записей. Из добавленных записей создается пакет и отправляется на входящую точку адаптера системы.
Также для обработчиков с направлением В Platform есть возможность установить параметр Порядок обработки.
Этот параметр отвечает за приоритетность выгрузки объектов из 1С:
Возможные значения от 0 до 9, где 0 - самое приоритетное.
Обработчики Из Platform выполняются, когда в 1С из Платформы приходит пакет. Данные для выполнения обработчика берутся из тела сообщения.
Вкладка Переменные
Указываются переменные, к которым будет доступ на вкладке Код:
Вкладка Код
Содержит код 1С, который будет выполняться при вызове обработчика.
Предупреждение
Пользовательские методы Подробности, Отладка, Информация, Предупреждение, Ошибка, ФатальнаяОшибка переименованы в СобытиеПодробности, СобытиеОтладка, СобытиеИнформация, СобытиеПредупреждение, СобытиеОшибка, СобытиеФатальнаяОшибка. В версии 3.0.54 старые методы могут быть использованы для поддержки совместимости. В следующей версии методы с устаревшими названиями будут удалены. При использовании этих методов в обработчиках необходимо внести изменения вручную.
С помощью кнопки Сгенерировать можно вызвать мастер генерации текста обработчика. При этом в открывшемся окне нужно будет выбрать адаптер, через который будет запрошена конфигурация 1С, а затем поля метаданных, участвующих в обработке пакета.
Также на вкладке присутствует режим отладки (при выборе направления Из Platform) :
При необходимости режим отладки можно развернуть на весь экран.
Вкладка В Platform
Содержит данные, которые будут передаваться в Платформу при соответствующем направлении интеграции, выбранном на вкладке Основные:
На этой вкладке определяется тип данных, который будет присвоен сообщению при выполнении данного обработчика.
Вкладка Из Platform
Содержит данные, которые будут передаваться из Платформы при соответствующем направлении интеграции, выбранном на вкладке Основные. На вкладках В Platform и Из Platform определяется - с каким типом данных будут обрабатываться сообщения данным обработчиком. Если из Платформы пришло сообщение с типом, указанным на данной вкладке, то этот обработчик будет выбран для этого сообщения, затем выполняется код обработчика (при наличии).
Вкладка Системы
на вкладке отображаются системы, к которым будет добавлен обработчик:
Функции 1С
Функции 1С являются еще одним типом обработчиков и используются для выполнения функций в 1С, которые можно использовать в обработчиках 1С. У данного типа нет направления интеграции, так как функции вызываются из уже имеющихся обработчиков 1С со своим направлением интеграции.
Вкладка Основные
Здесь заполняется имя функции 1С, которое будет использоваться в дальнейшем вызове в коде обработчика 1С, и выбирается тип обработчика - Функция 1С:
Вкладка Переменные
На этой вкладке добавляются параметры функции, которые будут доступны при ее вызове.
Вкладка Код
На этой вкладке пишется текст функции на языке 1С. Функцию можно выполнить по расписанию через автозапускаемые задания - триггеры, на этапе выполнения бизнес-процесса в шаге Источник, либо вызвать в коде другого обработчика.
В этих случаях надо тело сообщения передать в переменную Результат:
Вкладка Системы
Вкладка содержит шаблоны типа Функции 1С, которые прикрепляются к адаптеру системы 1С вместе с обработчиком 1С.
Обработчики СУБД
Вкладка Основные
Для настройки обработчика СУБД необходимо выбрать нужный тип из выпадающего списка:
обработчик MSSQL;
обработчик Oracle;
обработчик PostgreSQL.
Далее следует указать необходимое направление интеграции:
В поле Имя таблицы нужно указать таблицу базы данных, которая будет выступать как источник, если указано направление В Platform. Если указано направление ИЗ Platform, таблица выступает как приемник.
Вкладка Переменные
Здесь можно создать локальные переменные обработчика. К локальным переменным с одной стороны есть доступ из бизнес-процессов при отправке объектов во внешнюю систему; локальные переменные также доступны для использования в SQL-коде обработчика на вкладке Код. Вызов переменной в SQL коде: @Идентификатор.
Для выгрузки массива из СУБД в формате JSON (направление Из Platform) добавьте переменную FORJSON типа Int со значением 0. При этом в конце SQL-кода запроса следует добавить строку FOR JSON PATH.
Вкладка Код
Содержит SQL-код, который будет выполняться при вызове обработчика:
Писать и проверять код удобно в СУБД на вкладке выполнения запроса:
С переменными типа массив в обработчике Oracle обращение код выглядит следующим образом:
"TMP$GTT_oracleПерем"
где:
oracleПерем - имя переменной в обработчике.
TMP$GTT_ - префикс, который позволяет использовать временную таблицу для обращения к массиву. Такой способ работает на Oracle любых версий.
Обращение всегда используется с этим префиксом и должно быть заключено в двойные кавычки.
Пример запроса на вставку:
INSERT INTO TABLETEST2(COLUMN1, COLUMN2)
select name2, name4 from "TMP$GTT_oracleПерем"
где name2, name4 - поля массива.
Если требуется обратиться к сложному полю типа массив внутри массива, код выглядит следующим образом:
INSERT INTO TABLETEST2(COLUMN1, COLUMN2)
select name2, name4 from "TMP$GTT_naming"
где naming - имя сложного поля массив внутри массива.
Структура типа с массивом, для которого указаны примеры:
Настройка Из Platform и В Platform
Для обработчиков СУБД система предоставляет дополнительный набор операций, предназначенных для использования вместо SQL кода. В направлении Из Platform система предлагает выбрать следующие виды операций:
Пользовательский запрос - будет выполняться SQL запрос с вкладки Код.
Вставка - добавление объектов в таблицу.
Обновление - обновление полей объектов.
Удаление - удаление объектов из таблицы.
Выборка - получение объектов из таблицы.
Если задано направление В Platform, доступны следующие виды операций:
Пользовательский запрос.
Выборка.
Для операции Выборка, Вставка, Обновление существует возможность настройки полей, участвующих в операции с помощью инструмента Маппер. Для настройки нужно в Маппере добавить поля таблицы которые будут участвовать в операции и настроить маппинг полей в переменную с вкладки В Platform или Из Platform в зависимости от направления интеграции. Если в Маппере настроены поля таблицы, то в операции будут участвовать только эти поля таблицы.
Для настройки маппинга нужно нажать на кнопку Маппер:
Вкладка В Platform
Содержит данные, которые будут передаваться в Платформу при соответствующем направлении интеграции:
Вкладка Из Platform
Содержит данные, которые будут передаваться из Платформы при соответствующем направлении интеграции:
К данным можно обращаться на вкладке Код, значения передаются в теле сообщения Формат файла сообщения, получаемого процессом для успешного маппинга, должен быть UTF-8 без BOM Маппинг в формате json вида:
{
"MediaTypeId": 4,
"Name": "example"
}
Вкладка Системы
На вкладке можно выбрать Внешние системы, с которыми будет работать обработчик:
Обработчик расширенного REST API
Веб-обработчик относится к системе, имеющей коннектор типа Расширенное REST API.
Внутри обработчика происходит настройка метода:
Наименование.
Комментарий.
Тип (Веб-обработчик).
Тип метода (GET, POST, PUT, DELETE).
- Шаблон пути. В поле Шаблон пути можно использовать параметры:
{path} путь к методу со всей иерархией папок;
{method} имя метода;
{folder} имя текущей папки метода.
Таймаут вызова.
Параметры запроса.
вPlatform (для методов POST, PUT).
изPlatform (для методов POST, PUT).
Системы (список систем для данного обработчика).
Настройка флагов: требуется авторизация авторизация, ожидание ответа.
Если в Ответе настроен Немассив, а в теле сообщения от процесса приходит массив, при парсинге ответа в веб-сервис проверяется количество элементов в массиве:
если элементов 0, то это интерпретируется как пустое тело, выводится значение соответствующего типа данных с пустыми значениями полей;
если 1, то интерпретируется первый элемент массива как тело сообщения и выводится соответствующее значение;
в других случаях регистрируется ошибка, что получен массив.
Код обработчика
Код обработчика пишется на языке C#.
В коде обработчика c направлением В Platform доступна переменная RunMessage. В этой переменной содержится сообщение, полученное из внешней системы.
Содержимое переменной RunMessage можно модифицировать с помощью методов для работы с сообщениями. После завершения работы обработчика содержимое переменной RunMessage отправляется в Платформу.
RunMessage.SetBody(Object); - установить новое тело сообщения.
Особенности формирования шаблона пути
Имена переменных регистрозависимые; если регистр переменной и маски в пути совпадает, то в запрос передается значение параметра из swagger веб-сервиса:
Если регистр не совпадает, то в запросе остается имя параметра в скобках:
Помимо этого, при формировании шаблона пути можно использовать стандартные маски, такие как {path}, {method} и {folder}. Если в параметрах обработчика будут заданы пользовательские параметры с этими именами, то они считаются приоритетными и подставляются в шаблон пути: иначе эти параметры будут определены автоматически от расположения обработчика в иерархии папок:
Файловый обработчик
Для файлового коннектора возможно использование обработчиков с направлением интеграции В Platform и Из Platform.
В Platform
Выполнение обработчиков заключается в установке значений переменных обработчика, выполнении кода обработчика (при наличии) и использовании установленных значений переменных. Выполнение обработчиков происходит на входящей точке по таймеру readInterval, настроенному в режиме конфигурации файловой системы:
Алгоритм выбора и выполнения файлового обработчика
При срабатывании таймера ищутся обработчики, где есть и заполнена переменная fileName.
Если такой обработчик есть и значение по умолчанию переменной fileName совпадает с реальным названием файла, то исполняется этот обработчик. Разрешено использование не более одного обработчика (иначе возникает ошибка, сообщение помещается в архив).
Если обработчик из п.1 не найден, то ищутся обработчики с заполненным значением переменной fileNamePattern с пустой fileName. Проверяет, соответствует ли заданное в переменной fileNamePattern выражение имени файла. Поддерживаются следующие подстановочные знаки: ** и **?. Escape-символ обратной косой черты \.
Если не найден обработчик из п.2, то выбирается обработчик пустыми fileNamePattern и fileName.
Если не найден обработчик из п.3, сообщение обрабатывается без обработчика.
Если обработчик выбран и вкладка Код заполнена, то выполняется код обработчика.
С помощью обработчиков можно, например, задавать тип данных передаваемым сообщениям.
Например, в зависимости от имени файла или его расширения можно передавать сообщения с различными типами для дальнейшей маршрутизации.
Для этого нужно создать 2 обработчика.
На вкладке Переменные указывается переменная с наименованием fileNamePattern и типом String. В значении переменной указывается .json или .txt:
Таким образом для любого файла, имя которого заканчивается на .json или .txt, будет выбран соответствующий обработчик.
Далее в настройках соответствующих обработчиков на вкладке В Platform создается переменная нужного типа. Допустим, что файлам json будет присвоен тип Тест1, а файлам txt будет присвоен тип Тест2. (Эти типы нужно предварительно создать):
Далее все обработчики прикрепляются к системе, откуда будут забираться файлы:
После применения конфигурации отправляем два сообщения с разными расширениями:
В журнале системы указываем уровень логирования Verbose. Отображаются следующие записи:
Для своего файла выбран свой обработчик.
Далее в событиях системы отображаются 2 события получения и в столбце Тип данных соответственно типы Тест1 и Тест2:
Если отправить сообщение из системы без обработчика, то оно без ошибок попадет в Платформу, но поскольку сообщение не будет иметь никаких свойств и типа данных, то его сложно будет маршрутизировать в дальнейшем.
Код обработчика В Platform
Код файлового обработчика пишется на языке C#.
В коде доступна переменная RunMessage. В этой переменной содержится сообщение, полученное из внешней системы.
Содержимое переменной RunMessage можно модифицировать с помощью методов для работы с сообщениями. После завершения работы обработчика содержимое переменной RunMessage отправляется в Платформу.
В коде доступны методы:
SetBody(Object) - модифицировать тело сообщения;
SetMessage(Message message) - установить message как формируемое сообщение;
SetCurrentParams(Message message) - в message установить параметры по умолчанию;
SetCurrentBody(Message message) - в message установить тело сообщения по умолчанию;
System.IO.FileInfo GetFileInfo() - получить информацию о прочитанном файле.
В коде обработчика доступно обращение к объявленным в обработчике переменным. Содержание файла можно получить с помощью системной переменной byte[] Data.
ИЗ Platform
При отправке сообщения Из Platform с помощью файлового коннектора выполняется подбор обработчика на основании типа сообщения. Если такой обработчик не найден, это не является ошибкой - сообщение передается без обработчика.
Для обработчиков Из Platform доступны параметры fileName, fileNamePattern.
Задать их значения можно на вкладке Переменные, добавив новую переменную с соответствующим именем и типом String, в поле Значение можно указать - какое имя будут иметь файлы, приходящие в каталог в случае с переменной fileName:
В случае с переменной fileNamePattern следует указать правила формирования имени файла.
Перед выполнением кода переменная fileName инициализируется значением из свойства сообщения. Если значение пустое, задается значение по умолчанию (из обработчика). Если значение не задано, fileName считается на основании fileNamePattern из коннектора:
Так выглядит имя файла, для которого в обработчике не было задано никаких значений - в этом случае имя сформировалось на основе шаблона, указанного в настройках коннектора. Рядом находится файл, записанный в каталог с настройками обработчика, приведенными выше:
fileNamePattern для расчета fileName использует системные свойства сообщения:
/Message/Id.
/Message/CreationTime.
/Message/DataType.
/Message/Source.
/Message/Receivers.
/Message/Property/ИмяСвойства.
Примечание
При использовании шаблона /Message/Property/ИмяСвойства в обработчике невозможно задать свойство, которое будет использовано для создания имени файла. Для записи сообщения в файл такое свойство должно присутствовать у сообщения до отправки в исходящий файловый обработчик. Для записи типа данных в файл с использованием исходящего файлового обработчика этот шаблон использовать нельзя, так как имя файла формируется в первую очередь, после чего исполняется код обработчика (свойства, добавляемые в коде обработчика, будут отсутствовать в момент создания имени файла).
Код обработчика Из Platform
При выполнении кода разрешено изменение параметра fileName и/или тела сообщения (переменная RunMessage с типом Message).
На вкладке Код можно также задать значение используемых переменных или добавить что-то к существующему значению:
Сообщение создалось на основе fileNamePattern, указанного на вкладке Переменные (/Message/CreationTime - время создания), а также имеет добавленные числа в конце, прописанные в коде:
В целом с помощью кода есть возможность более детально настроить обработку сообщения перед сохранением в каталог. Например, прочитать тело сообщения, из него выделить значение одного из реквизитов и использовать это значение в имени файла. Или можно поменять содержимое сообщения перед сохранением в файл.
После выполнения кода, если fileName - пустая строка, будет зарегистрирована ошибка.
Логирование
Для вывода информации в лог в контексте кода обработчика доступна работа с Логгером:
Logger.Debug(…);
Без обработчика сообщение запишется в файл с именем, сформированным согласно шаблону, указанному в настройках коннектора. В файле будет такое тело сообщения, каким оно было передано в Платформу из другой системы.
Веб-обработчик
Для создания обработчика:
В ЦН перейдите в раздел Интеграция → Обработчики.
Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания нового обработчика.
На вкладке Основные в выпадающем меню Тип выберите вариант Веб-обработчик:
На вкладке Основные произведите следующие настройки:
Поле Название: введите название обработчика, обязательно для заполнения.
Поле Имя: введите имя обработчика, необязательно для заполнения.
Поле Комментарий: введите описание обработчика, необязательно для заполнения.
Выпадающее меню Тип: в данном случае выбран вариант Веб-обработчик.
Поле Имя таблицы: введите имя таблицы обработчика.
Выпадающее меню Внешний тип данных: выберите тип внешнего типа данных.
Поле Шаблон пути: введите шаблон пути для обработчика. В поле могут быть использованы следующие параметры:
{path} - путь к методу со всей иерархией папок
{method} - имя метода
{folder} - имя текущей папки метода
Выпадающее меню Тип метода: выберите один из типов метода:
Get
Post
Put
Delete
Patch
Поле Таймаут вызова: введите значение таймаута вызова обработчика, значение по умолчанию - 10000.
Флажок Ожидание ответа: установите флажок, если ожидается получение ответных сообщений.
После внесения данных нажмите на кнопку Сохранить.
На вкладке Параметры добавляются параметры обработчика:
Флажок Обязательно используется для обязательной передачи параметра в запросе. В шаблоне пути обработчика могут быть указаны только обязательные параметры. Если запрос отправлен без обязательного параметра, указанного в шаблоне пути, отправка завершается ошибкой 400. В шаблоне пути обязательный параметр указывается по имени (name), если оно задано. Параметры обработчика (обязательные и необязательные) могут быть указаны в запросе в виде Query String. Если параметр указан в адресе URL, используется алиас параметра, при отсутствии алиаса используется имя параметра.
Обязательные параметры, указанные в адресе URL, выделяются «звездочкой» в сваггере внешней системы:
На вкладке Код вносится код обработчика на языке C#.
В коде обработчика c направлением В Platform доступна переменная RunMessage. В этой переменной содержится сообщение, полученное из внешней системы. Содержимое переменной RunMessage можно модифицировать с помощью методов для работы с сообщениями. После завершения работы обработчика содержимое переменной RunMessage отправляется в Платформу. Например, RunMessage.SetBody(Object); - установить новое тело сообщения.
Переменная ContentType поддерживает указание нескольких параметров через точку с запятой.
Пример кода с составным значением:
ContentType = String.Format("application/soap+xml; charset=utf-8;");
Для выполнения обработчика на системе необходимо присвоить обработчик системе. Для этого на вкладке Системы добавьте в список Системы обработчика обработчик из списка Доступные системы путем выбора строчки и нажатием на кнопку >. Обработчик может выполнятся на нескольких системах:
Обработчики Веб-клиент и Веб-сервер
Веб-клиент и Веб-сервер относятся к системе, имеющей коннектор типа Веб-сервисы (протокол либо Rest, либо Soap).
Настройка обработчика тип Веб-клиент
Для создания обработчика:
В ЦН перейдите в раздел Интеграция → Обработчики.
Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания нового обработчика.
На вкладке Основные в выпадающем меню Тип выберите вариант Веб-клиент:
На вкладке Основные произведите следующие настройки:
Поле Название: введите название обработчика, обязательно для заполнения.
Поле Имя: введите имя обработчика, необязательно для заполнения.
Поле Комментарий: введите описание обработчика, необязательно для заполнения.
Выпадающее меню Тип: в данном случае выбран вариант Веб-клиент.
Направление интеграции: выберите направления интеграции В Platform или Из Platform.
Поле Имя таблицы: введите имя таблицы обработчика.
Выпадающее меню Внешний тип данных: выберите тип внешнего типа данных.
Поле Шаблон пути: введите шаблон пути для обработчика.
Выпадающее меню Тип метода: выберите один из типов метода:
Get
Post
Put
Delete
Patch
Поле Таймаут вызова: введите значение таймаута вызова обработчика, значение по умолчанию - 10000.
Флажок Ожидание ответа: установите флажок, если ожидается получение ответных сообщений.
Флажок Тело ответа получать как байты: флажок отображается, если установлен флажок Ожидание ответа. Установите флажок, если тело ответного сообщения должно приниматься как байты.
После внесения данных нажмите на кнопку Сохранить.
На вкладке Параметры добавляются параметры обработчика:
На вкладке Код доступны переменные из вкладки Параметры и Из Platform: система позволяет их изменять:
Код обработчика пишется на языке C#.
В коде обработчика c направлением В Platform доступна переменная RunMessage.
В этой переменной содержится сообщение, полученное из внешней системы. Содержимое переменной RunMessage можно модифицировать с помощью методов для работы с сообщениями. После завершения работы обработчика содержимое переменной RunMessage отправляется в Платформу.
RunMessage.SetBody(Object); - установить новое тело сообщения.
На вкладках В Platform и Из Platform создаются переменные.
Для выполнения обработчика на системе необходимо присвоить обработчик системе. Для этого на вкладке Системы добавьте в список Системы обработчика обработчик из списка Доступные системы путем выбора строчки и нажатием на кнопку >. Обработчик может выполнятся на нескольких системах:
Настройка обработчика тип Веб-сервер
Выбрать в меню → Интеграция → Обработчики → Кнопка +.
Вкладка Основные:
поле название;
поле имя;
список Тип - выбрать тип Веб-сервер;
список Направление интеграции ИзВ Platform;
таймаут вызова;
флажок ожидания ответа.
Для выполнения обработчика на системе необходимо присвоить обработчик системе. Для этого на вкладке Системы нужно добавить в список Системы обработчика обработчик из списка Доступные системы путем выбора доступной системы и нажатия на кнопку >:
Обработчики Email
Настройка обработчика
Для создания обработчика типа Email:
В ЦН перейдите в раздел Интеграция → Обработчики.
Нажмите на кнопку +. В рабочей области отобразится интерфейс создания нового обработчика:
На вкладке Основная заполните следующие поля:
Название: произвольное название системы, может быть не уникальным, обязательно для заполнения.
Имя: уникальное имя системы, может содержать только буквы, цифры и знак нижнего подчеркивания, может быть автоматически создано из названия системы, обязательное значение.
Комментарий: произвольный комментарий, необязательно для заполнения.
В выпадающем списке Тип выберите значение Email.
В результате в нижней части рабочей области будут отображены поля, соответствующие этому типу.
В выпадающем списке Внешний тип данных выберите необходимый тип данных.
Вкладка Переменные содержит список добавленных переменных:
Для добавления новой переменной нажмите на кнопку +, в результате откроется всплывающее окно:
На вкладке Код внесите код обработчика, используя следующие методы:
SetReceiver(string receiver): установка одного получателя, где string receiver - адрес email получателя (обязательный параметр)
Пример установки нескольких получателей:
var recs = new OwnList<string>() recs.Add("test1@email.ru"); recs.Add("test2@email.ru") SetReceivers(recs)
ClearReceivers(): очистка всех получателей
SetFrom(string address, string displayName = «»): установка отправителя сообщения, где string address - адрес email отправителя (обязательный параметр), string displayName - отображаемое имя отправителя (необязательный параметр)
SetSubject(string subject): установка темы сообщения, где string subject - тема сообщения (обязательный параметр).
SetAttacment(string fileName, string fileAsBase64, string contentType = «»): добавление вложения, где string fileName - имя файла (обязательный параметр), string fileAsBase64 - вложение в формате Base64 (обязательный параметр), string contentType - тип содержимого (необязательный параметр)
GetMailMessage(): получить объект MailMessage:
var mes = GetMailMessage(); mes.body = "Текст письма";
Пример кода:
var recs = new OwnList<string>(); recs.Add("Adresat@datareon.ru"); SetReceivers(recs); SetSubject("Тема сообщения письма"); var mes = GetMailMessage(); mes.Body = "Test содержание письма";
Вкладка из Platform содержит список переменных, которые будут использованы для отправки данных из Платформы. Для добавления новой переменной нажмите на кнопку +.
Перед добавлением систем для обработчика нажмите на кнопку Сохранить.
На вкладке Системы из списка Доступные системы добавьте системы с типом Email, для которых предназначен обработчик, в Системы обработчика при помощи кнопки >.
Нажмите на кнопку Сохранить.
Нажмите на кнопку Применить конфигурацию:
Новый обработчик появится в меню выбранных систем на вкладке Обработчики.