|
Подписать документ сертификатом | ☑ | ||
---|---|---|---|---|
0
america2013
01.04.21
✎
09:30
|
Конфигурация Бух. 2.0 обычные формы.
Платформа 8.3.15 Цель - подписать документ сертификатом, который хранится в справочнике "ПользователиИСЭСФ" в реквизите "СертификатАутентификации" с типом ХранилищеЗначений. Нашел общий модуль с функцией, которую хотел применить: ЭлектроннаяЦифроваяПодписьКлиент.СформироватьДанныеПодписи( МенеджерКриптографии, ОбъектДляПодписиСсылка, ДвоичныеДанные, СтруктураПараметровПодписи) Экспорт Прошу сориентируйте, где не корректно указываю данные: Пароль = Объект.Сертификат.ПарольАутентификации; МК = Новый МенеджерКриптографии("Microsoft Enhanced Cryptographic Provider v1.0", "", 1); АдресСертификата = ПоместитьВоВременноеХранилище(Объект.Сертификат.СертификатАутентификации, УникальныйИдентификатор); ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(АдресСертификата); Сертификат = Новый СертификатКриптографии(ДвоичныеДанныеСертификата); //Ошибка Несоответсвие типов (параметр номер 1) Структура = Новый Структура("Сертификат, Пароль, Комментарий", Сертификат, Пароль, ""); ДанныеПодписи = ЭлектроннаяЦифроваяПодписьКлиент.СформироватьДанныеПодписи(МК, Объект.Ссылка, ДвоичныеДанныеСертификата, Структура); НоваяЗаписьПодпись = ДанныеПодписи.НоваяПодписьДвоичныеДанные; |
|||
1
america2013
01.04.21
✎
09:53
|
На этапе с ошибкой
Сертификат = Новый СертификатКриптографии(ДвоичныеДанныеСертификата) ДвоичныеДанныеСертификата=с типом Хранилище Пробую из этого хранилища получить еще данные, получил строку каких-то символов. Ошибка на этом же этапе изменилась на: Ошибка операции с файлом. по причине: Каталог не обнаружен 'MIIGQ.... Не понятно какой тип данных нужно поместить? |
|||
2
america2013
01.04.21
✎
11:28
|
Доработал код:
Пароль = Объект.Сертификат.ПарольАутентификации; МК = Новый МенеджерКриптографии("Microsoft Enhanced Cryptographic Provider v1.0", "", 1); ДвоичныеДанныеСертификата = Base64Значение(Объект.Сертификат.СертификатАутентификации.Получить()); //получить из хранилища Сертификат = Новый СертификатКриптографии(ДвоичныеДанныеСертификата); Структура = Новый Структура("Сертификат, Пароль, Комментарий", Сертификат, Пароль, ""); ДанныеПодписи = ЭлектроннаяЦифроваяПодписьКлиент.СформироватьДанныеПодписи(МК, Объект.Ссылка, ДвоичныеДанныеСертификата, Структура); НоваяЗаписьПодпись = ДанныеПодписи.НоваяПодписьДвоичныеДанные; Теперь при попытке из общ. функ. - Подписать() - получаю ошибку: Сертификат отсутствует в персональном хранилище сертификатов Предполагаю, что указал не того провайдера? |
|||
3
america2013
01.04.21
✎
11:40
|
Нет, а зачем мне сертификат встраивать в комп. если он у меня уже сохранен в элементе справочника??
|
|||
4
america2013
01.04.21
✎
11:45
|
Но если добавить, предварительно выгрузив из справочника, то при подписи получаю
Ошибка при получении свойства сертификата (0x00000000). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |