АИТП. Простой, событийно-управляемый обмен данными

Публикация № 1079996

Управление - Не имеет значения

АИТП http обмен

6
В статье, на примере обмена с ЗУП 3.1, демонстрируется механизм событийно-управляемого взаимодействия конфигурации АИТП с прикладными решениями на платформе 1С:Предприятие.

Введение

Статья обновлена для работы с версией АИТП не ниже 1.0.0.0

Поскольку практически в любой компании сотрудники так или иначе взаимодействуют с ИТ-инфраструктурой предприятия, существует масса задач по настройке этой самой инфраструктуры, чтобы пользователи могли эффективно ею пользоваться для выполнения своих служебных обязанностей. И чем больше организация и разнообразнее ИТ-ландшафт предприятия, тем больше таких повседневных задач появляется у ИТ-отдела и тем больше драгоценного времени и ресурсов тратится на их выполнение. Конечно, автоматизация выполнения этих задач может сэкономить ваше время и ресурсы, однако, для того, чтобы она была возможна на должном уровне, система автоматизации должна обладать актуальной информацией о сотрудниках компании. Пожалуй, самым распространенным источником актуальной информации такого рода, является прикладное решение Зарплата и управление персоналом (ЗУП), поэтому настоящая статья посвящена демонстрации настройки взаимодействия конфигурации АИТП (проект на GitHub) с прикладным решением ЗУП 3.1, с целью получения актуальной информации о сотрудниках.

В настоящее время существует масса различных способов (раз, два, три, четыре, пять, шесть и др.), для организации обмена данными как между прикладными решениями на платформе 1С:Предприятие, так и между прикладными решениями и внешними системами. Все они с успехом могут быть применены для озвученной задачи с той или иной степенью “допилки”, однако в настоящем демонстрационном примере мы организуем такой обмен средствами конфигурации АИТП, использовав ее как инфраструктуру, для управления транспортом сообщений.

Системные требования

ОС Windows или Linux.

Платформа 1С:Предприятие версии не ниже 8.3.12 (пример создавался на платформе 8.3.13.1809)

Демонстрационная конфигурация ЗУП 3.1, развернутая в клиент-серверном режиме (пример создавался на ЗУП 3.1.9.205).

Конфигурация АИТП версии не ниже 1.0.0.0

Механизм обмена

Суть используемой технологии не отличается какой-либо новизной или оригинальностью и заключается в том, что при наступлении какого-либо события, на отправляющей стороне формируется пакет с данными об этом событии, который простым http-запросом отправляется получателю. Принимающая сторона анализирует этот пакет и выполняет некие действия (см. рис. 1).

Рисунок 1. Схема обмена данными.

 

Поскольку, в момент возникновения события получатель может быть недоступен или занят, вместо непосредственной отправки запроса в момент возникновения события, создается соответствующий бизнес-процесс, который содержит необходимые для отправки данные. Таким образом отправка http-запросов происходит асинхронно и не препятствует работе.

В качестве формата, для передачи данных используется JSON, так как он является одним из самых распространенных простых форматов, для работы с которым, имеются штатные функции платформы.

Поскольку в нашем случае, обмен сообщениями производится между конфигурациями 1С:Предприятие, мы можем использовать для их формирования механизм XDTO, однако, с целью демонстрации возможностей обмена с не 1С системами, будем формировать сообщения самостоятельно.

Подготовка конфигурации ЗУП

Для реализации вышеизложенного механизма обмена, внедрим часть подсистем АИТП в конфигурацию ЗУП. Для этого, необходимо разрешить редактирование конфигурации с сохранением поддержки, настроить правила редактирования как на рис. 2, а также разрешить изменения у корня конфигурации см. рис. 3.

Рисунок 2. Настройка правил поддержки.

 

Рисунок 3. Правило редактирования для корня конфигурации.

 

Внедрение производится путем сравнения/объединения текущей конфигурации, с конфигурацией АИТП. Для внедрения, необходимо выбрать подсистему БазовыеПодсистемыАИТП (см. рис. 4), ОбменДаннымиАИТП, а также можно выбрать подсистему ОбновлениеСистемыАИТП. Затем дополнительно отметить подсистемы БазовыеПодсистемыПрикладныеРолиАИТП и НеБлокируемыеПриОбновленииРегламентныеЗаданияАИТП, в случае, если была выбрана подсистема ОбновлениеСистемыАИТП.

Дабы не переизобретать пользовательский интерфейс, также можно отметить подсистемы ПользовательскийИнтерфейсАдминистрированиеАИТП, ПользовательскийИнтерфейсОркестраторАИТП, а также ПользовательскийИнтерфейсОбновлениеСистемыАИТП.

Рисунок 4. Выбор по подсистемам из файла.

 

Рисунок 5. Дополнительные подсистемы.

 

Поскольку внедренные подсистемы никак не пересекаются с основной конфигурацией, каких-либо неудобств, кроме отсутствия автоматического обновления быть не должно, однако есть пара проблем, которые необходимо решить:

Конфигурация АИТП использует собственный сеанса ТекущийПользовательАИТП, обработчик которого надо внедрить в основную конфигурацию.

По каким-то причинам, разработчики типовой конфигурации решили, что все бизнес-процессы должны иметь определенный набор обязательных реквизитов, что отражено в обработчике подписки ЗаписатьВСписокБизнесПроцессов см. код ниже.

 

Для решения этих проблем создадим расширение, в котором переопределим стандартный обработчик ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса нижеследующим образом:

 

Для решения второй проблемы, переопределим обработчик подписки на нижеследующий:

 

Также, для увеличения производительности были переопределены обработчики некоторых других подписок способом, аналогичным вышеприведенному (см. рис. 6).

Рисунок 6. Расширение для внедрения АИТП в ЗУП 3.1.

 

На этом, подготовка конфигурации ЗУП завершена.

Передаваемые данные

Для автоматизации настройки ИТ-систем предприятия, в общем случае нас будет интересовать информация, о ФИО сотрудника, его должности, подразделения и организации в которых он работает, а также факты изменения этих данных.

Для нашего демонстрационного примера, в качестве источников данных, выберем регистры сведений ФИОФизическихЛиц и КадроваяИсторияСотрудников, справочники ФизическиеЛица, Сотрудники, Организации, ПодразделенияОрганизаций, Должности.

Реализация обмена

Сторона ЗУП

Для минимизации влияния на основную конфигурацию, реализуем механизм обмена с использованием расширений. Факты изменения соответствующих объектов будем отслеживать по наступлению события ПриЗаписи для соответствующих объектов.

Создадим расширение ОбменСАИТП с общим модулем ОбменСАИТП_СлужебныеФункции, в котором определим обработчики интересующих нас событий.

Для справочников, в общем случае нас будут интересовать реквизиты Наименование, Ссылка и ПометкаУдаления (Для справочника ПодразделенияОрганизаций также Родитель и Владелец).

Типичный код обработчика события ПриЗаписи для элемента справочника представлен ниже:

 

Как можно увидеть, первым параметом процедуры ОтправитьСообщение является ссылка на элемент справочника ПолучателиСообщенийОбменаАИТП или строка, соответствующая коду элемента (в противном случае, сообщение не будет отправлено). Также, переопределим событие ПриЗаписи в модулях объектов соответствующих справочников примерно нижеследующим образом:

 

Аналогичным образом, поступим с регистрами сведений. Пример кода для регистра сведений ФИОФизическихЛиц представлен ниже:

 
 

Также, для начальной синхронизации, создадим обработку, которая выполняет чтение всех элементов соответствующих объектов конфигурации, с последующим формированием сообщений для отправки:

 
 

Поскольку иногда, документы изменяющие кадровую историю могут быть отменены, создадим соответствующий обработчик:

 

И привяжем его к событию ОбработкаУдаленияПроведения соответствующих документов, примерно следующим образом:

 

На этом, реализация на стороне отправителя завершена.

Сторона АИТП

Включаем возможность изменения объектов конфигурации с сохранением поддержки аналогично тому, как это было сделано для конфигурации ЗУП.

Поскольку конфигурация АИТП не содержит каких-либо объектов, связанных с организациями, должностями, подразделениями и т.п., создадим соответствующие объекты конфигурации (см. рис. 7).

Рисунок 7. Объекты конфигурации в АИТП.

 

Для приема сообщений, разрешим редактирование общего модуля ОбменДаннымиПереопределяемыйАИТП и переопределим процедуру ОбработатьВходящееСообщение нижеследующим образом:

 

Определим в модуле ОбменДаннымиЗУП соответствующие процедуры, изменяющие данные в системе-получателе:

 

Опубликуем web-сервис ExchangeITPA и http-сервис ОбменДаннымиПоУмолчанию на web-сервере. В продуктивной среде необходимо также создать пользователя информационной базы, с учетными данными которого будут вызываться web или http-сервисы и настроить соответствующие разрешения, однако данные вопросы выходят за рамки настоящей публикации.

Тестирование обмена

Запустим модифицированную конфигурацию ЗУП и конфигурацию АИТП в пользовательском режиме (ранее созданные в базе АИТП http-сервисы должны быть опубликованы на web-сервере).

В базе ЗУП, разрешим старт процессов (Администрирование АИТП -> Общие настройки).

В обеих базах, создадим узел обмена, для конфигурации ЗУП с кодом “001” (Обмен данными -> Узлы обмена данными).

В базе ЗУП, сделаем созданный узел текущим узлом обмена (Обмен данными -> Настройки обменов данными).

Настроим получателей сообщений. Для этого, в базе ЗУП перейдем в раздел Обмен Данными и выберем пункт Получатели сообщений обмена. В системе имеется предопределенный элемент ПолучательПоУмолчанию. Воспользуемся им для настройки получателя наших сообщений (см. рис. 8.).

Рисунок 8. Настройка получателя сообщений с http транспортом.

 

Откроем созданную ранее обработку Начальная синхронизация с АИТП и запустим синхронизацию.

Рисунок 9. Обработка начальной синхронизации.

 

Убедимся, что в конфигурации АИТП появились интересующие нас данные.

Рисунок 10. Результаты в конфигурации АИТП.

 

Также мы можем просмотреть тело отправленного сообщения (см. рис. 11.), а также время его отправки и автора (см. рис. 12).

Рисунок 11. Тело отправленного сообщения.

 

Рисунок 12. Дополнительные реквизиты процесса

 

Перенастроим получателя сообщений для работы с web-сервисом:

 

Изменим ФИО какого-либо сотрудника и убедимся, что изменения отреплицировались.

Таким образом, мы можем использовать в качестве транспорта сообщений как http так и web-сервисы без изменения конфигурации.

При соответствующей настройке адресации задач и оповещений, ИТ-специалисты смогут получать оповещения о проблемах и своевременно реагировать на них. Так как крайне желательно, чтобы ИТ-специалисты имели доступ только к тем данным, которые нужны для устранения проблем, настроим его.

Для этого, создадим пользователя штатными средствами ЗУП, в конфигураторе добавим ему роль Базовые права БСП и добавим его в пользователи подсистем АИТП с соответствующими правами. Как можно увидеть, при входе пользователя в информационную базу,  его права будут ограничены соответствующими правами на подсистемы АИТП (см. рис 13).

Рисунок 13. Интерфейс IT-специалиста для работы с ЗУП.

 

Заключение

Вот таким-вот нехитрым способом, с использованием “дедовских” методов, мы реализовали возможность получения актуальной информации о сотрудниках компании, которая может быть использована для автоматизации настройки ИТ-систем предприятия.

Надеюсь, что настоящая публикация окажется полезной, для тех, кто хочет автоматизировать ИТ-процессы и избавить себя от ручного труда.

6

Скачать файлы

Наименование Файл Версия Размер
АИТП. Простой, событийно-управляемый обмен данными.:
.zip 17,33Mb
04.07.19
0
.zip 17,33Mb Скачать

См. также

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение