Требования к установленному программному обеспечению:
- Операционная система Windows (тестировалось на 7-ке, на XP КриптоПро CSP 4-й версии не взлетит, см. ниже)
- КриптоПро CSP версии 4.xx (Должна быть становлена в каталог по умолчанию, 4-я версия, потому что ЭП по ГОСТ 2012)
- Установленная квалифицированная подпись ГОСТ Р.34.10-2012 (согласно 554-му приказу)
Внешняя обработка выполнена на управляемых формах, тестировалась в управляемом приложении (толстый\тонкий клиент). Разработка велась на платформе 8.3.13.1513, но никаких специфических функций вроде бы не использовалось, должно работать и в других версиях. Не привязано ни к какой конфигурации. Если надо использовать в УПП или любой другой конфигурации в режиме обычного приложения, просто включите её в конфигурацию (или попробуйте запустить конфигурацию в управляемом режиме - скорее всего ничего страшного не случится).
Немного теории
Для передачи подписанного и заархивированного отчёта по ГОЗ приходится выполнять несколько действий, не совсем ясно описанных в методичке. Чтобы упростить и ускорить данную процедуру для конечного пользователя, бухгалтера или экономиста, и была написана эта обработка.
Как пользоваться и как это работает
1. На входе имеем выгруженный откуда-то, например, из УПП файл с отчётом - message.xml. Его-то мы и выбираем в поле ввода "Путь к отчёту".
2. Если файл относительно корректен, то из него будут считаны атрибуты для имени архива (ИНН, ДатаС, ДатаФ). Имя архива автоматически сгенерируется в соответствующее поле. По умолчанию, порядковый номер архива равен "1". Если потребуется, Вы можете его увеличить.
3. В поле "Каталог архива" можно указать желаемую папку, где будет сформирован итоговый архив. Если поле не заполнено, то архив будет создан в папке с отчётом.
4. При нажатии кнопки "Создать архив" средствами КриптоПро CSP (утилита csptest.exe) будет сгенерирован файл с отсоединенной подписью message.sign - без служебных заголовков, в BASE64, с меткой времени (которая согласно приказу не требуется, но почему-то на при приёме выдаётся ошибка, если её не добавлено).
Если у вас больше одной установленной подписи для предприятия (отбор сделан по ИНН), выберите подходящую (см. скриншот 2). После этого файл с отчётом и файл с подписью будут помещены в zip-архив. Если всё прошло удачно, будет информационное сообщение. Если нет, то тоже сообщат.
Возможные ошибки и дисклеймеры
1. Если КриптоПро установлен не по стандартному пути, то следует скинуть утилиту csptest.exe в стандартную папку. Либо можно отредактировать обработку.
2. Подпись не того ГОСТа? Ну об этом узнаете тогда, когда попытаетесь отправить архив. А может выбрали не ту при подписании? Проверьте ещё раз, а я подумаю над тем, чтобы написать более удобную и информативную версию обработки.
3. Под Vipnet CSP версии нет, потому что никогда им и не пользовался. Для КриптоАРМ возможно допишу, но какой смысл?
Не стесняйтесь задавать вопросы, мне это подписание и архивирование отчёта вышли в пару нервных дней общения с бухгалтерией и военпредами - поделюсь всем тем, чем сам знаю.