gifts2017

Внедрение цифровой подписи Сбербанка Sbersign в интерфейс программ на платформе "1С: Предприятие"

Опубликовал Александр Зернин (a.zernin) в раздел Программирование - Практика программирования

Sbersign - программный продукт, разработанный фирмой "ИнфоКрипт" для Сбербанка, используемый  в документообороте между банком и его клиентами для подписи электронных документов, а также для управления цифровой подписью и ее проверки. Наиболее распространено использование этого программного продукта для удостоверения подписи электронных списков зачисления денежных средств на пластиковые карты. В статье рассматривается возможность интеграции функционала, предоставляемого программой, в интерфейс программ на платформах "1С Предприятие"

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

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

     Необходимо отметить, что ранние версии  ПО Sbersign (до версии  5.1.6 ) не позволяют провести такую интеграцию. Узнать, какая версия программы используется у Вас, можно, открыв одно у из утилит в папке программы, н-р SignParam.exe. Версия видна вверху окна, в заголовке. Свежую версию пакета можно получить, например, обратившись в обслуживающее отделение  Сбербанка, либо найти в Интернете. Данные для этой статьи получены с использованием версии 5.4.10.

Возможность интеграции предоставляют библиотеки программы, описанные в спецификации. Файлы WinSign.dll и SignExp.dll используются для интеграции с операционной системой.

Первый отвечает за подпись файла ЭЦП, а так же его шифрование и дешифрование. Каждой операции назначена соответствующая функция:

- SignFile - подпись файла;

- EncryptFile - шифрование файла;

- DecryptFil - дешифрование файла.

 

Файл   SignExp.dll отвечает за проверку подписи  и взаимодействие с MS Office,

Одна из его функций:

- CheckSignFile - отображает вкладку цифровой подписи свойств файла с информацией о подписи, либо сообщение, если файл не подписан.

Для использования этих функций в среде 1с Предприятия можно использовать  процедуру 1с ЗапуститьПриложение(). Использование процедуры совершенно одинаково как для платформы 1с 77 так и для платформы 8.х. Для реализации в диалоге формы можно разместить кнопки, вызывающие соответствующие процедуры:

 

Пусть  переменная ФП содержит имя обрабатываемого файла

 

ФП = "xxxxxxxx.xxx"

 

Тогда вызов процедуры с соответствующими параметрами:

 

Вызывает на экран окно с запросом пароля для подписи файла ЗапуститьПриложение("rundll32.exe C:\SberSign\WinSign.dll,SignFile "+ФП);

 

Вызывает на экран окно шифрования файла

ЗапуститьПриложение("rundll32.exe C:\SberSign\WinSign.dll,EncryptFile "+ФП);

 

Вызывает на экран окно дешифрования файла

ЗапуститьПриложение("rundll32.exe C:\SberSign\WinSign.dll,DecryptFile x"+ФП);

 

Вызывает на экран вкладку "цифровая подпись" окна свойств для  файла

ЗапуститьПриложение("rundll32.exe C:\SberSign\SignExp.dll,CheckSignFile "+ФП);

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.