Задача проекта
Доработать мобильное приложение Битрикс24 для оперативного согласования и подписания корпоративных документов.
ФК «Зенит» сегодня — это
О ситуации
На портале заказчика был настроен документооборот в системе 1С. Пользователи Битрикс24 могли формировать служебные записки и запускать согласование по заданным маршрутам.
Однако не хватало функционала для быстрого визирования: в условиях частых перемещений ответственных лиц стандартное решение для ПК не подходило. Требовалось мобильное приложение, куда будут поступать документы, там подписываться и сразу улетать в 1С.
Одно из важных условий – мобильное приложение должно работать на iPhone (версия iOS 10.0 и выше).
Бизнес-требования
Разработать расширение конфигурации для 1С:Документооборот 8 КОРП (версии 2.1.13.28 на платформе 1С:Предприятие 8.3.15) для обмена с порталом и подписания документов из мобильного приложения с помощью электронной цифровой подписи, а также установить официальный штамп компании в подписываемые документы.
Доработать портал и мобильное приложение 1С-Битрикс24 для осуществления действий над документами и передачи действий в 1С:ДО.
Внедрить идентификацию мобильного устройства с пользователем.
Написать логику идентификации и подписания по отпечатку пальца.
Настроить интеграцию между 1С:ДО и корпоративным порталом (мобильным приложением) 1С-Битрикс24.
Сроки выполнения проекта
Заказ поступил в августе 2019 г., а в декабре того же года работы были сданы заказчику.
Мобильное приложение подтянули довольно быстро, а вот с интеграцией 1С:ДО все оказалось не так просто, об этом рассказываем дальше.
Дорожная карта
Проект был реализован по каскадной модели (waterfall) в 6 шагов:
Анализ бизнес-процессов согласования документов, сбор требований и формирование ТЗ (длительность: 32 дня).
Отрисовка интерфейсов в фирменном стиле в Figma (длительность: 7 дней).
Написание двух интеграций между Битрикс24 и 1С:ДО (через Rest API и Push and pull, длительность: 15 дней).
Реализация и внутреннее тестирование (длительность: 40 дней)
Тестирование со стороны клиента (длительность: 16 дней).
Установка и ввод в опытную эксплуатацию (длительность: 11 дней).
User flow для работы с договорами
Трудности реализации
1С:ДО клиента была подключена к платформе Windows Server. Для подписания документов использовалась Windows Active Directory (AD) – система управления пользователями, и Удостоверяющий центр Microsoft.
Казалось, клиенту было бы проще использовать штатный мобильный клиент 1С:ДО. Но в 2019 году он только появился, и UX-дизайн стоял в очереди на доработку.
Кроме того, в 2019-м году в компании клиента все подписания проходили на его территории (это сейчас мы все подписываемся через облако). Из плюсов закрытого контура: безопасность лучше, чем в облаке. Из минусов: нельзя подписываться с другими контрагентами, только в пределах своей компании.
Но во время реализации проекта локальное подписание было еще технически невыполнимо через штатное приложение Битрикс24. Локальное подписание, оно же УКЭП, могло бы заработать в мобильном приложении, если на телефон поставить криптопровайдер и сертификат. Согласитесь, целевым пользователям было бы странно услышать такое предложение. Даже обойдя моральные препоны, мы бы уперлись в реальные возможности Битрикс24: приложение и с этими «бубнами» до 2024 года работать не умело.
Здесь мы подходим к тому, что для решения определенных задач бывает проще написать собственное приложение, например, на Flutter или PWA. Об этом еще пару слов в самом конце.
Аудитория проекта
Изначально проект открывался в камерном формате для решения задач небольшой части разъездных сотрудников. В будущем заказчик планирует расширить пользовательский функционал на 1000 человек.
Технологический стек
1С:Документооборот, 1C-Битрикс24, Bitrixmobile, Vue, Push and pull, Nginx, Nodejs, Docker, Windows Server, Active Directory, Удостоверяющий центр Microsoft, Rest API, WebView, ОpenSSL.
Решения
Мы разработали мобильное приложение на базе Битрикс24, совместимое с iOS, для рассмотрения и подписания внутренних документов: договоров, приказов, служебных записок, входящих и исходящих писем.
Развернули портал (коробочную версию) и выполнили доработки для его отказоустойчивости.
Очистили мобильное приложение от функционала, которым клиент не пользуется.
Интегрировали портал с 1С:ДО. Теперь документы определенного типа попадают в Битрикс24 и отображаются у пользователя в мобильном приложении.
Разработали регламент и инструкции для настройки Удостоверяющего центра на выпуск сертификатов пользователям (цифровых подписей).
Для повышения безопасности связали действия пользователя с его мобильным устройством. Идентификатор девайса (IMEI) подтверждается админом на портале с первым запуском приложения.
Разработали идентификацию пользователя и подписание документов по отпечатку пальцев (Touch ID).
Результат позволил компании клиента намного быстрее двигать процессы в 1С, а менеджерам «в полях» – управлять потоками документов буквально на ходу.
Как происходит взаимодействие с документами из мобильного приложения
У мобильного приложения Битрикс24 есть функциональное ограничение: нельзя модифицировать документ (например, добавить подпись и печать организации) и в таком виде передать в 1С:ДО.
В приложении доступно только действие над документом: «Принять» / «Согласовать», «Отклонить» или «Отправить на доработку».
Но мы нашли решение этой ситуации — вот как работает алгоритм подписания:
1С:ДО подключается через Push and pull к порталу Битрикс24 в определенную очередь и ждет команд из мобильного приложения.
Пользователь осуществляет с документом определенное действие: принимает или отклоняет. Через Push and pull мобильное приложение посылает в 1С:ДО сообщение, какое действие нужно выполнить.
1С:ДО читает сообщение, проверяет документ – можно ли выполнить это действие, и выполняет. Для подписания 1С:ДО ищет сотрудника, выполнившего действие, его сертификат, проверяет валидность сертификата и подписывает документ.
Таким образом, вся передача данных происходит только через эту очередь, и мы можем гарантировать, что данные не попадут к третьим лицам.
Основные функциональности мобильного приложения:
- Страница загрузки.
- Главная страница со списком документов. Здесь размещены пять плиток, каждая из которых соответствует определенной категории документов. Счетчик показывает количество активных заданий.
- Карточка задания на согласование. Представляет собой тело запроса с файловым вложением. Перед подписанием документ в формате PDF можно просмотреть прямо в мобильном приложении.
- Связь с администратором для входа в мобильное приложение.
Договоры
В этом разделе представлены договоры, ожидающие ознакомления и согласования.
Приказы
Здесь выводится список доступных для просмотра и согласования приказов.
ЭДО
В этом разделе осуществляется подписание документов.
Выученные уроки и советы
Всех, кто планирует кастомизировать мобильное приложение Битрикс24, мы должны предостеречь: это задача со звездочкой, советуем не смотреть в ее сторону. Объясним почему:
-
Мобильное приложение пишет вендор (в нашем случае компания «1С-Битрикс»), и внедрить модули, которых он еще не использует, невозможно. Некоторые штатные модули по сути своей не поддаются изменениям.
-
Если Android-приложение еще можно декомпилировать на несколько файлов (влезть в начинку, переписать под себя) и отдать клиенту APK-файл, то приложение для iOS в принципе не получится декомпилировать. Нужно помнить, что декомпилированное приложение теряет возможность принимать обновления. Интегратор должен будет каждый раз вносить все ранние правки в новую версию.
-
Если вы пользуетесь УКЭП, выполнить подписание в штатном приложении не получится. Как мы говорили выше, для этого понадобится установить криптопровайдер и сертификат на телефон пользователя. При этом мобильное приложение должно уметь работать с криптопровайдером. В теории подписание возможно через облачный сервис и если у вас есть УНЭП.
Еще мы не рекомендуем использовать локальный удостоверяющий центр. Если вы однажды захотите подписываться с другими компаниями, а не только внутри своего юрлица, вам все равно нужно будет перейти на облачные сервисы или государственные центры сертификации.
В своем опыте мы перепробовали все: дорабатывали штатное приложение как на Webview, так и на Janative (актуальном фреймворке Битрикс24), а также писали свое приложение на Flutter (например, для ХайХаба) и на PWA. Настраивали подписания локально (через КриптоПро) и через облако (HRlink).
Вывод будет такой: если вам не требуется ничего специфического, то доработка мобильного приложения Битрикс24 вам подойдет. Но если вы хотите что-то уникальное, проще делать свое приложение.