Пора навести мосты... Об интеграции 1IDM с 1С:ЗУП
Я удалился не только от людей, но и от дел, прежде всего — моих собственных, и занялся делами потомков. Для них я записываю то, что может помочь им.
Сенека. Нравственные письма к Луцилию
Сегодня мы поговорим о взаимодействии между 1IDM и одним из популярных продуктов компании «1С» для автоматизации кадрового учета, расчета заработной платы и управления персоналом в России и странах СНГ - 1С:Зарплата и Управление Персоналом (1С: ЗУП).
Особенностью такого взаимодействия является то, что одно и то же приложение выступает в роли как управляемой системы, так и кадрового источника. И несмотря на то, что фактически программа одна, настраивать подключение в 1IDM придется разными приложениями. Это обусловлено не только спецификой настройки бизнес-логики, но и применением различных способов коммуникаций.
Ниже мы рассмотрим вариант взаимодействия с 1С: ЗУП только как с кадровым источником.
Под «различными способами коммуникаций» подразумеваются так называемые коннекторы. Своего рода это «мосты» между IDM и целевой системой. Каждый коннектор отвечает за технический аспект коммуникации, обладает набором методов для сбора и управления данными, а также средствами журналирования. На текущий момент в основную поставку включены 14 коннекторов к кадровым источникам и 31 к управляемым системам (Данные актуальны для релиза 2.5.01.001).
Следует отметить, что, помимо отношения к определенному типу приложения, коннекторы могут быть специализированными или универсальными. Специализированный коннектор проектировался и разрабатывался для конкретного продукта. Такой коннектор достаточно прост в настройке и интеграции, потому что методы взаимодействия понятны и соотнесены с настройками самого коннектора. К недостаткам можно отнести лишь отсутствие гибкости для кастомизированных решений, которые, впрочем, решаются за счет несложной адаптации средствами расширений платформы 1С.
Универсальные коннекторы не привязаны к конкретному продукту. Они созданы под конкретную техническую реализацию обмена или архитектуру (REST, SCIM, SQL, JSON file и другие). Методы взаимодействия с целевой системой уже самостоятельно указываются в настройках коннектора, поэтому такой вариант использования более сложный и требует дополнительных компетенции у специалиста.
Теперь, когда мы узнали, какие компоненты 1IDM используются для интеграции с целевыми системами, давайте попробуем разобраться, какой коннектор может потребоваться для взаимодействия с 1С: ЗУП как с кадровым источником.
Примечание: Если посмотреть на логическую схему выше, то можно отметить, что коннекторы в цепочке взаимодействия реализованы отдельным блоком. Это не случайно, в процессе эксплуатации может потребоваться переключение на другой способ коммуникации, как следствие, сменить коннектор, при этом приложение (бизнес-логика) останется прежней.
Примечание к примечанию: Не пытайтесь выполнить этот трюк без подготовки на продуктивной базе. Лучшим вариантом будет проверить смену коннектора на тестовой или подготовительной среде со снятием всех необходимых резервных копий.
Вариант 1:Простой. У компании имеется 1С: ЗУП, которая не кастомизировалась, или же изменения есть, но они не влияют на объекты считывания.
Коннектор: HR 1C:ЗУП 3.1 (Специализированный)
Специфика: На 1С: ЗУП устанавливается расширение с http-сервисом (входит в поставку) и публикуется на веб-сервере.
Преимущества:
1. Скорость интеграции (от 10 минут)
2. Кроссплатформенность
3. Высокая достоверность данных
4. Простая и распространенная архитектура
5. Логика сбора информации на стороне целевой системы (открытый исходный код агента коннектора 1IDM).
Недостатки:
1. Оперативность, скорость получения информации.
Вариант 2:У компании имеется 1С: ЗУП, в котором внесены значительные изменения объектов сбора информации, или на предприятии действует собственная политика универсального обмена информации.
Коннектор: HR Data JSON client (Универсальный)
Специфика: На стороне 1С: ЗУП разрабатывается собственный http-сервис, который возвращает кадровые данные в JSON формате.
Примечание: В некоторых случаях может применяться и коннектор первого варианта, только агент коннектора 1IDM адаптируется уже под измененный состав объектов и методов.
Преимущества:
1. Кроссплатформенность
2. Простая и распространенная архитектура.
3. Логика сбора информации на стороне целевой системы.
Недостатки:
1. Требуются компетенции у специалиста по разработке на языке 1С.
Вариант 3:У компании имеется 1С: ЗУП, состояние изменений неважно. Но существуют барьеры со стороны службы безопасности или на предприятии действует собственная политика обмена информации через транзитные таблицы.
Коннектор: Универсальный HR DB (Универсальный)
Специфика: Прямого доступа к 1С:ЗУП нет. В приложении реализован триггер, который актуализирует информацию в некоторой независимой таблице базы данных. Доступ предоставляется к таблице на чтение или представление (view).
Преимущества:
1. Простая и распространенная архитектура.
2. Скорость получения информации.
3. Контроль за избыточностью данных.
Недостатки:
1. Требуются компетенции у специалиста по SQL и системному администрированию (Требуется дополнительная установка провайдеров).
2. Кроссплатформенность
Вариант 4:
У компании имеется ЗУП, но отсутствует прямой доступ к системе или приложение развернуто за пределами предприятия (аутсорсинг).
Коннектор: Универсальный HR File (Универсальный)
Специфика: На стороне 1С:ЗУП разрабатывается регламент по выгрузке информации в файл с JSON структурой. Такой вариант доступен и при ручной выгрузке. Инструмент для выгрузки предоставляется.
Преимущества:
1. Простая и распространенная архитектура.
Недостатки:
1. Относительно медленный способ обмена информацией.
2. Сложность в синхронизации времени обмена.
3. Высокий риск компрометации.
Вариант 5:
В компании для обмена информацией с 1С:ЗУП используется интеграционная шина или реализация на брокерах сообщений.
Коннектор: HR Data JSON Listener (Универсальный)
Специфика: В составе поставки 1IDM входит «слушающий» http-сервис, который принимает на вход кадровые данные в формате JSON.
Преимущества:
1. Оперативность, скорость обмена информацией
2. Возможность передачи «дельты», части информации
Недостатки:
1. Сложность интеграции
2. Наличие компетенции специалиста по применяемым технологиям.
3. Достоверность.
Как мы видим, существует множество возможных вариантов интеграции с 1С:ЗУП даже при наличии специализированного коннектора к продукту. Дополню, что мы расписали только часть вариантов, существуют и другие, но они достаточно специфичные или применяемый способ обмена потерял актуальность (универсальный коннектор Net HR, COM-соединение и другие). Поэтому при выборе коннектора важно видеть все преимущества и искать взвешенное решение.
Также стоить обратить внимание, что в некоторых случаях стадии интеграции находится вне юрисдикции 1IDM, коннектор просто предоставляет API, но часть работ должна выполняться со стороны целевой системы. Как например, с интеграционной шиной. Этот способ выглядит очень заманчивым и интересным, возникают амбиции под этот способ усовершенствовать и саму инфраструктуру. К сожалению, это может приводить к срыву сроков проекта, увеличению трудозатрат, а также общему разочарованию и снижению мотивации к достижению поставленной цели.
Чтобы этого избежать, необходимо учитывать, в том числе, и следующие факторы:
1. Наличие высокого уровня компетенций у специалистов прикладных решений и системного администрирования.
2. Наличие доступного времени на реализацию задуманного. В некоторых случаях, помимо проекта по интеграции, параллельно имеются другие задачи, приоритет которых может измениться уже в ходе работ.
3. Оперативность принятия решений в вопросах информационной безопасности. Некоторые виды работ могут быть запрещены или иметь продолжительные сроки согласования. В этом пункте хуже всего то, что запрет на те или иные действия может возникнуть на заключительных этапах проекта.
Какое бы решение ни было выбрано, 1IDM обладает полным набором инструментов для взаимодействия с целевыми системами различными способами из «коробки», а механизмы платформы 1С позволяют производить быстрые адаптации и совершенствования до необходимого состояния. Надеемся, что рассмотренные варианты интеграции помогут расширить кругозор и по-другому взглянуть на способы коммуникации приложений, а также облегчить принятие решений в будущем.