Введение
Как правило, типичная ИТ-среда предприятия не ограничивается сервисами 1С:Предприятие и также содержит множество других сервисов, необходимых для поддержки деятельности бизнеса. Одним из наиболее распространенных сервисов является сервис электронной почты, поэтому в настоящей публикации, на демонстрационном примере, будут рассмотрены возможности применения программного пакета АИТП (проект на GitHub) для автоматизации управления почтовыми ящиками сотрудников.
Системные требования
ОС Windows или Linux
Платформа 1С:Предприятие версии не ниже 8.3.12, развернутая в клиент-серверном варианте
Конфигурация АИТП, версии не ниже 1.0.3.1
Исходные данные
Условимся считать, что наша модельная организация имеет инфраструктуру 1С:Предприятие в клиент-серверном варианте, а также, что учет сотрудников ведется в конфигурации ЗУП 3.1.
С целью минимизации действий, по подготовки модельной инфраструктуры будем считать, что в качестве сервиса электронной почты, организация использует бесплатный облачный сервис Яндекс.Почта для домена, который предоставляет бесплатный сервис электронной почты для организаций, имеющих менее 1000 сотрудников, с возможностью использования произвольного DNS-домена.
Также для простоты предположим, что все сотрудники организации используют сервис электронной почты, а после увольнения, почтовый ящик сотрудника уничтожается.
В неавтоматизированном варианте, типичный сценарий предоставления сервиса электронной почты сотрудникам организации будет примерно следующим:
Сотрудник HR-департамента заранее или в день выхода сотрудника на работу оформляет в ЗУП документы, необходимые для приема сотрудника, а также сообщает по электронной почте в IT-департамент о приеме нового сотрудника.
Сотрудник ИТ-отдела в числе прочих действий создает почтовый ящик, сообщает пользователю учетные данные для доступа, а также при необходимости настраивает почтовый клиент.
Достаточно часто ИТ-отдел узнает о новом сотруднике в момент его выхода на работу, что приводит к необходимости выполнения действий по подключению сотрудника к ИТ-системам предприятия в “пожарном” порядке.
Сценарий увольнения сотрудника можно представить примерно нижеследующим описанием:
Сотрудник HR-департамента заранее или в последний рабочий день сотрудника оформляет в ЗУП документы, необходимые для увольнения и сообщает в ИТ-отдел об увольнении сотрудника. Также достаточно часто бывают случаи, когда ИТ-отдел узнает об увольнении сотрудника в момент, когда он предоставляет обходной лист для визирования либо остается в неведении на неопределенное время. Последний случай достаточно распространен, если кадровый учет ведется в территориально удаленном подразделении, что может приводить к неэффективному использованию ресурсов и утрате актуальной информации об их использовании.
Конечно в реальной жизни все несколько сложнее, однако для демонстрационного примера, вышеописанные бизнес-сценарии вполне адекватны.
Реализация
За основу решения был взят демонстрационный пример, в котором реализован обмен данными о кадровых событиях между ЗУП и АИТП. Таким образом мы имеем актуальную информацию о кадровых событиях и нам необходимо реализовать процессы создания и удаления почтовых ящиков в соответствии с ними.
Для реализации вышеизложенных бизнес-требований, в момент наступления кадрового события мы будем проверять соответствие членства сотрудника в организациях и фактического существования у него почтового ящика бизнес-правилам и при необходимости создавать или удалять почтовый ящик.
Членство в организациях
Для определения членства сотрудника в организациях создадим регистр накопления ЧленствоВОрганизациях (см. рис. 1) и установим в качестве регистратора документ ИзменениеКадровойИстории, в котором содержится информация о кадровых событиях.
Рисунок 1. Членство физических лиц в организациях.
В процедуре обработки проведения создадим движения по регистру, которые в зависимости от вида кадрового события изменяют на единицу количество вхождений физического лица в организации. Для видов событий Перемещение и ИзменениеОплатыТруда количество вхождений в организации не изменяется. В качестве периода используем дату наступления кадрового события.
Соответствие ящиков физическим лицам
Для хранения информации о принадлежности почтовых ящиков определенным физическим лицам (сотрудникам) создадим регистр сведений ПочтовыеЯщикиФизическихЛиц (см. рис. 2.), где Логин – идентификатор почтового ящика в Яндекс.Почта.
Рисунок 2. Почтовые ящики физических лиц.
Работа с API Яндекс.Почта для домена
Для использования сервиса необходимо зарегистрировать DNS-домен, а также произвести первоначальные настройки сервиса. В качестве регистратора домена и хостера DNS-зоны можно использовать бесплатный сервис Freenom. По каким-то причинам данный сервис не работает с почтой Яндекс, поэтому для регистрации необходимо создать дополнительный ящик в другом почтовом сервисе.
Затем необходимо произвести настройку почтового сервиса “Яндекс.Почта для домена” в соответствии с инструкциями владельца сервиса.
Данный сервис предоставляет API, которое позволяет посредством отправки http-запросов создавать, удалять и изменять почтовые ящики, а также выполнять иные действия. Перед началом работы с API необходимо получить токен, который записывается в заголовок http-запросов и идентифицирует администратора почтовой системы.
Для хранения информации, необходимой для доступа к API создадим несколько констант (см. рис. 3).
Рисунок 3. Постоянная информация для доступа к API Яндекс.Почта.
Где:
ПочтовыйДомен – строка, содержащая имя DNS-домена вашей почтовой системы (в качестве примера, в статье используется домен itpa.cf).
ТокенАдминистратораЯндексПочта – строка, содержащая токен администратора почтовой системы.
ПарольПочтовогоЯщикаПоУмолчанию – строка, содержит пароль почтового ящика, который устанавливается при его создании. Для упрощения, при создании нового почтового ящика, задается пароль, известный администратору, который в дальнейшем должен быть изменен пользователем.
НастройкиПодключенияКЯндексПочта – СправочникСсылка.НастройкиHTTPСоединенийАИТП, содержит настройки подключения к сервису (учетные данные, прокси-сервер etc.).
UrlAPIЯндексПочта – строка, базовый url API Яндекс.Почта.
Для реализации функций создания, удаления почтового ящика, а также изменения отображаемого имени создадим соответствующие бизнес-процессы:
СоздатьПочтовыйЯщик – создает почтовый ящик сотрудника и связь, между физическим лицом и ящиком.
Рисунок 4. Схема процесса СоздатьПочтовыйЯщик.
УдалитьПочтовыйЯщик – удаляет почтовый ящик и связь, между физическим лицом и ящиком.
Рисунок 5. Схема процесса УдалитьПочтовыйЯщик.
ИзменитьФИОВПочтовомЯщике – изменяет отображаемое имя сотрудника в сервисе Яндекс.Почта.
Рисунок 6. Схема процесса ИзменитьФИОВПочтовомЯщике.
Изменение отображаемого имени пользователя
Периодически могут возникать ситуации, когда имя или фамилия пользователя изменяются, к примеру, если сотрудник выходит замуж. В этом случае было-бы неплохо также изменить отображаемое имя и адрес электронной почты в почтовой системе. К сожалению, API сервиса Яндекс.Почта не предоставляет возможности изменения адреса электронной почты, поэтому реализуем изменение только отображаемого имени.
Для этого модифицируем обработчик сообщения обмена ОбменДаннымиЗУП.ИзменитьФИО, который отвечает за обновление информации о имени и фамилии пользователя, добавив код по созданию и запуску процесса ИзменитьФИОВПочтовомЯщике.
Ожидание даты кадрового события и создание процессов проверки
В соответствии с вышеизложенным алгоритмом создадим процесс СоздатьПроверкуИзмененияКадровойИстории (см. рис. 7.), который будет создаваться и стартовать в момент создания или изменения документа ИзменениеКадровойИстории, ожидать наступления даты кадрового события и создавать процесс, осуществляющий проверку соответствия членства сотрудника в организациях состоянию почтового ящика.
Рисунок 7. Схема процесса СоздатьПроверкуИзмененияКадровойИстории.
Поскольку документы изменяющие кадровую историю сотрудников создаются в обработчике поступающих сообщений обмена, добавим код создания и старта процессов СоздатьПроверкуИзмененияКадровойИстории в процедуры ИзменениеКадровойИстории и ОтменаИзмененияКадровойИстории в общем модуле ОбменДаннымиЗУП, которые отвечают за создание, изменение и отмену проведения соответствующих документов.
Следует отметить, что поскольку при изменении с перепроведением, проведенного документа, в ЗУП возникает только одно событие и как следствие только одно сообщение обмена, содержащее новую версию документа изменения кадровой истории, в дополнении к процессам, проверяющим изменения кадровой истории сотрудников для новой версии документа, необходимо создать аналогичные процессы и для старой версии документа, поскольку состав сотрудников и даты возникновения событий могут измениться.
Проверка кадровых изменений сотрудников
Как было описано выше, при наступлении даты кадрового события, экземпляр процесса СоздатьПроверкуИзмененияКадровойИстории создает и стартует процесс ПроверитьИзменениеКадровойИстории, (см. рис. 8.) в котором осуществляется проверка соответствия членство сотрудника в организациях и наличие у него почтового ящика бизнес-правилам и при необходимости производится создание или удаление почтового ящика.
Рисунок 8. Схема процесса ПроверитьИзменениеКадровойИстории.
В качестве вложенных процессов, реализующих создание и удаление почтового ящика, используются ранее созданные процессы СоздатьПочтовыйЯщик и УдалитьПочтовыйЯщик соответственно.
Тестирование функционала
Внедрим конфигурацию АИТП в демонстрационную базу ЗУП и установим расширения в соответствии с этой публикацией.
Опубликуем информационную базу АИТП с нашими доработками на web-сервере.
Настроим обмен между конфигурациями в соответствии с этой статьей.
Выберем Яндекс.Почта -> Сервис -> Настройки Яндекс.Почта.
Заполним необходимые параметры для взаимодействия с сервисом Яндекс.Почта для домена (см. рис. 9.).
Рисунок 9. Заполнение параметров взаимодействия с сервисом Яндекс.Почта.
В конфигурации ЗУП, запустим начальную синхронизацию Администрирование -> Сервис -> Начальная синхронизация с АИТП.
Убедимся, что в информационной базе АИТП появились соответствующие объекты (см. рис. 10).
Рисунок 10. Объекты из ЗУП
Зайдем в Яндекс Коннект с учетной записью администратора (в простейшем случае с учетной записью из-под которой осуществлялась настройка сервиса почта для домена) и перейдем в админку. Убедимся в наличии почтовых ящиков сотрудников (см. рис. 11.).
Рисунок 11. Почтовые ящики сотрудников в Яндекс.Почта.
В ЗУП отредактируем фамилию сотрудника Бажова Светлана Нурисламовна -> БажоваNew Светлана Нурисламовна и сохраним изменения.
Убедимся, что отображаемое имя в почтовом сервисе также изменилось (см. рис. 12).
Рисунок 12. Изменение отображаемого имени в Яндекс.Почта.
Отменим проведение кадрового документа, по которому данный сотрудник был принят на работу (см. рис. 13.).
Рисунок 13. Отмена проведения кадрового документа в ЗУП.
Убедимся, что почтовый ящик сотрудника удален (см. рис. 14.).
Рисунок 14. Список почтовых ящиков сотрудников после отмены проведения кадрового документа.
Заключение
Вот примерно таким вот образом можно автоматизировать процессы предоставления доступа сотрудников к ИТ-ресурсам, а также их освобождение. Данный подход можно также использовать для создания аккаунтов в различных системах, изменения членства в группах и т.п., что может значительно сэкономить время ИТ-персонала и высвободить его для решения более интеллектуальных задач.