Автоматическая подпись электронных документов

Материал из Фабиус wiki
Перейти к: навигация, поиск

Формируемые в системе ЭДО документы в частности УПД (Счф, СчфДоп) зачастую требуется подписывать электронной подписью. Для этого есть три пути:

1. Подпись на WEB панели провайдера (формируемые в Фабиусе УПД попадают как правило в раздел "Черновики"), как правило есть возможность выделить несколько УПД сразу и подписать скопом.

2. С помощью приложения провайдера EDIConnector и его аналоги. (В этом случае провайдер как правило сам выполняет настройки программы)

3. С помощью установленной программы "криптопро", используя ее вызов для подписи из командной строки.

Поподробнее опишем третий вариант (Речь идет как правило о случае, когда Фабиус выполняет роль не только выгрузки в папку xml-файлов но и транспорта (выкладывает созданные файлы на FTP):

На компьютере, на котором выполняется автоматическое (при печати комплекта документов), или ручное (по Ctrl+F10 в счетах фактурах) необходимо установить программу криптопро, закрытый ключ для нее и сертификат подписи ЭКЗ. (Как правило, если на этом компьютере выполняется подпись документов на WEB панели - ничего делать не требуется)

Важно, с одним идентификатором (email) должен быть один действующий сертификат. Все устаревшие над удалить. Иначе, криптопро будет выкатывать список, с просьбой выбрать - чем подписывать!

Если вы используете стандартную схему 340 в справочнике шаблонов импорта экспорта, для отправки УПД - достаточно включить в разделе "блок кода завершения обработки" флаг needSign:=true на 22 строке и указать email держателя сертификата на строке 29

Если нет, то можно взять схему 340 как пример в справочнике шаблонов импорта экспорта, раздел "блок кода завершения обработки" строки 22-58.

Важное дополнение: Схема 340 настроена на провайдера exite (e-com). У них требование, чтобы файл подписи начинался с 6_имяИсходногоФайла, и мел расширение "bin". Потом оба файла, исходный и подпись, надо упаковать в zip архив с именем исходного файла и потом выложить на ftp. Требования других провайдеров могут отличаться, поэтому может возникнуть необходимость небольших изменений кода схемы.


На случай, если надо будет создать bat-файл:

Чтобы сформировать файл подписи для документа, достаточно вставить в bat файл (или выполнить напрямую в CMD) строку:

csptest -sfsign -sign -in docFileName -out signFileName -my "i.ivanov@mail.ru" -add

где:

csptest - утилита подписи из командной строки, как правило лежит в "c:\Program Files (x86)\Crypto Pro\CSP\"

docFileName - имя файла документа с полным путем

signFileName - желаемое имя файла подписи с полным путем

my - хранилище сертификатов в данном случае локального пользователя (личные)

i.ivanov@mail.ru - доп имя сертификата для подписи. (можно посмотреть консоль mmc, или certmgr.msc -> сертификаты->по пользователю->личные ->сертификат->состав->дополнительное имя субъекта (email)

-add флаг включения самого сертификата в подпись. Без этого флага файл подписи валидацию, например на госуслугах не пройдет, поэтому рекомендуется всегда включать