Принцип работы наглядно
Подсистема содержит в себе 3 справочника:
- Правила взаимодействия
- Правила обработки реквизитов
- Управление сервисами интеграции (ИШ) (хранилка для логина и пароля)
Для демонстрации работы было собрано приложение, где "PLM" и "PLMPLM" одна и та же база. Схема приложения представлена на рисунке ниже:
Сохраним ключи в нашу хранилку:
Сделаем "интеграцию" справочником "Номенклатура".
1) Создадим правило для отправки в справочнике "Правила взаимодействия".
Указали действие - Отправка, выбрали объект конфигурации и увидели список реквизитов доступных для обмена.
Галочками, отмечаем те реквизиты, которые мы бы хотели отправлять. Чтобы нам увидеть какие-то изменения, добавим правила для реквизитов.
В создании правила, ориентируясь на подсказки, напишем свою обработку реквизита.
В поле обработки правой кнопкой мыши вызовем конструктор запроса и напишем "кое-какой" запрос.
Получилась следующая бессмыслица, но если результат запроса будет найден, то мы должны будем увидеть в комментарии "СтрокаРезультатаЗапроса".
Для второго реквизита напишем что-то, чтобы было. Например, просто всегда будем передавать значение ИСТИНА в пометку удаления.
После всех произведенных манипуляций на форме мы наблюдаем следующую картину. Теперь нам нужно подтвердить настройки, чтобы сформировать код для отправки.
При необходимости в сформированном коде можно внести правки, написать запрос с помощью конструктора и т.д.
Теперь выгрузим наши настройки в файлик и получим сообщение после выбора каталога, что файл с именем "" успешно записан / получим описание ошибки.
2) Создадим правило для приема сообщения в справочнике "Правила взаимодействия".
Указали действие - Прием, выбрали объект конфигурации, и теперь необходимо загрузить файл с настройками.
После загрузки наших настроек получили сопоставление по реквизитам и принимаемый объект. Также для других реквизитов можно выбрать из списка принимаемый реквизит из настроек, если же сопоставление по наименованию не подходит.
Создадим правило на прием реквизита Артикул.
Снова подтверждаем настройки, чтобы сформировать код. После чего можно опять же внести правки/добавить код обработки.
3) Имеем два готовых и активных правила для номенклатуры: для отправки и приёма.
4) Создадим тестовую номенклатуру со следующим наполнением:
Записываем и после этого перечитываем наш объект (имитируем отправку и прием).
Получили ожидаемый результат!
Возможности для редактирования
Объекты в конфигураторе
В конфигураторе расположены:
- Модуль "ИШ_ОтправкаСообщений" - в нем расположены процедуры, осуществляющие непосредственную обработку и отправку сообщений
- Модуль "ИШ_ПриемСообщений" - в нем расположены процедуры, осуществляющие прием сообщений и их последующую обработку
- Справочник "Правила взаимодействия" - это и есть те самые правила, формирующие создание и распаковку сообщений
- Справочник "Правила обработки реквизитов" - здесь хранятся правила для реквизитов. Они являются универсальными и могут использоваться для любых реквизитов в разрезе одного правила (правило ... является их владельцем, чтобы при дальнейшей работе не возникло путаницы)
- Сервис интеграции "Шина" - в сервисе расположены два канала, на которые и ссылается код
Не исключаю, что кто-то захочет адаптировать или же доработать имеющийся инструмент, поэтому код оставляю открытым.
Как начать пользоваться
В конфигураторе необходимо подгрузить собственные каналы сервисам интеграции в расширениях в каждой из баз (назвать желательно таким же образом, ну или просто исправить упоминания в коде).
Для использования в одной базе нескольких сервисов интеграции, необходимо в модуле "ИШ_ОтправкаСообщений" внести соответствующие изменения, так как расчет был на наличие единственного сервиса в базе.
Теперь остаётся только добавить правила в справочнике с обеих сторон, как в примере выше и включить их активность.
Зачем и почему оно именно такое?
Исходя из опыта написания обменов для собственного предприятия, был сделан вывод, что объекты с одинаковой структурой синхронизируются довольно редко. Для каждой новой пары необходимо было скопировать старый код - адаптировать. Переписывать написанное и работающее - занятие не из приятных. Поэтому переход на что-то универсальное, да ещё и поправимое в режиме реального времени, без каких-либо обновлений самой информационной базы - решение на мой взгляд крайне привлекательное!
Надеюсь, что помогу вам сэкономить кучу вашего времени!
P.S. На момент выпуска данной статьи система поддерживает обмены такими объектами как Справочники и Документы и думаю стоит отметить, что система ещё достаточно "хрупкая".
Режим совместимости в расширении установлен 8.3.16, в силу того что разработка велась на достаточно старой конфигурации.
Разработка и тестирование велись на платформе 8.3.25.1386.