Кейс: ЭЦП в 1С с внешними контрагентами


Всем привет!

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

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

Особенности данного кейса:

  • со стороны организации документы формируются и подписываются в толстом клиенте 1С;
  • при этом за раз подписывается большое количество (сотни) однотипных документов для разных контрагентов;
  • взаимодействие с контрагентами осуществляется с помощью мобильного приложения;
  • контрагенты используют eGov mobile для того, чтобы подписывать документы со своей стороны.

Для реализации данного кейса мы предоставляем:

  • KAZTOKEN desktop, взаимодействие с ним из 1С осуществляется через HTTP API;
  • API SIGEX для проверки подписей, подписания в eGov и формирования Карточек.

Высокоуровневая схема взаимодействия выглядит следующим образом:

graph TD s[SIGEX] 1cs[Сервер 1С] 1cc[Клиент 1С] mas[Сервер приложения] mac[Мобильное приложение] kd[KAZTOKEN desktop] eg[eGov mobile/business] subgraph Десктоп 1cc <-->|1. Подписание набора документов| kd end 1cc ---->|2. Передает подписи и документы| 1cs 1cs <-->|3. Регистрация документов и подписей| s 1cs -->|4. Передает документы и их идентификаторы| mas mas <-->|5. Подписание через eGov mobile/business| s mas -->|6. Передает документ и диплинк| mac subgraph Смартфон mac -->|7. Пользователь кликает на диплинк, попадает в eGov mobile | eg end s <-->|8. Передача документа, получение подписи| eg eg -->|9. Пользователь согласует подписание| eg mas -->|10. Регистрация подписи под документом| s mas <-->|11. Формирование Карточки| s

Рассмотрим детали, начнем с 1С, это этапы 1-3:

sequenceDiagram participant s as SIGEX participant 1cs as Сервер 1С box Десктоп participant 1cc as Клиент 1С participant kd as KAZTOKEN desktop participant p as Пользователь end 1cc->>kd: регистрация операции мультиподписания (kd1) kd-->>p: отображает интерфейс выбора ключа activate p p-->>kd: выбирает ключи и подтверждает подписание набора документов deactivate p kd->>1cc: идентификатор операции и куки (kd1) loop Для каждого документа 1cc->>1cc: формирует PDF документа 1cc->>kd: передает документ на подпись (kd2) kd->>1cc: возвращает подпись (kd2) 1cc->>1cs: передает документ и подпись на проверку и регистрацию 1cs->>s: регистрирует документ и подпись (s1) s->>s: проверяет подпись s->>1cs: возвращает идентификатор документа в SIGEX (s1) 1cs->>s: регистрирует документ и подпись (s2) s->>s: проверяет целостность документа, фиксирует хеши s->>1cs: возвращает подтверждение целостности (s2) 1cs->>1cs: сохраняет документ, помечает его как подписанный 1cs->>1cc: документ и подпись приняты end

В этом блоке участвуют следующие API:

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

Теперь рассмотрим процесс взаимодействия с пользователем на мобильном устройстве:

sequenceDiagram participant s as SIGEX participant mas as Сервер приложения box Смартфон participant mac as Мобильное приложение participant eg as eGov mobile/business participant p as Пользователь end mas->>mac: передает документ activate mac mac-->>p: отображает документ пользователю для ознакомления activate p p-->>mac: подтверждает готовность подписать документ deactivate p mac->>mas: запрос инициализации процедуры подписания mas->>s: инициализация процедуры подписания (s3) s->>mas: идентификатор процедуры подписания и диплинк (s3) mas->>s: документ на подпись (s4) mas->>mac: диплинк mac-->>p: отображает диплинк в виде кнопки или ссылки activate p p-->>mac: кликает на кнопку или ссылку с диплинком deactivate p deactivate mac activate eg mac--)eg: автоматический запуск приложения eg->>s: запрос на получение документа s->>eg: документ eg-->>p: отображает документ и запрос на подписание activate p p-->>eg: согласует подписание deactivate p eg->>s: подпись под документом p--)mac: пользователь переключается обратно в приложение deactivate eg activate mac mas->>s: запрос подписи (s5) s->>mas: подпись (s5) mas->>s: регистрирует вторую подпись под документом (s6) s->>s: проверяет подпись s->>mas: возвращает подтверждение регистрации (s6) mas->>mas: помечает документ как подписанный с обеих сторон mas->>mac: информирует пользователя об успешном подписании deactivate mac mas->>s: запрос формирования Карточки (s7) s->>mas: Карточка (s7)

В этом блоке участвуют следующие API:

У Вас есть какие-либо вопросы по этому кейсу или Вы хотели бы обсудить свою задачу? Свяжитесь с нами, будем рады помочь! Контакты здесь.