Работа с криптографией в Web клиенте
Доброго дня, уважаемые специалисты, коллеги!
Бьюсь с проблемой второй день, зашел в тупик. Пытаюсь подписать файл web-клиенте 1С.
МенеджерКриптографии и список сертификатов получить удалось, а вот подписать нет. Может кто подскажет, что я делаю не так?
Код, которым подписываю файл:
В результате выдает, "Ошибка при получении контекста модуля криптографии".
Пытался передать пароль закрытого ключа в менеджер криптографии (при этом отключая интерактивный режим) - все так же.
Бьюсь с проблемой второй день, зашел в тупик. Пытаюсь подписать файл web-клиенте 1С.
МенеджерКриптографии и список сертификатов получить удалось, а вот подписать нет. Может кто подскажет, что я делаю не так?
Код, которым подписываю файл:
&НаКлиенте
Процедура ПодписаниеЗавершение(ПодписанныйФайл, ДополнительныеПараметры)
КонецПроцедуры
&НаКлиенте
Процедура ИнициализацияЗавершениеПодпись(Менеджер, ДополнительныеПараметры)
Оповещение = Новый ОписаниеОповещения("ПослеПодписания",ЭтотОбъект, ДополнительныеПараметры);
//Менеджер.ПарольДоступаКЗакрытомуКлючу = "1234567890";
Менеджер.НачатьПодписывание(Оповещение,ДополнительныеПараметры.ИсходныйФайл, ДополнительныеПараметры.Сертификат);
КонецПроцедуры
&НаКлиенте
Процедура ПодписатьФайл()
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПодписанныйФайл", ПутьКФайлу+".sig");
ДополнительныеПараметры.Вставить("ИсходныйФайл", ПутьКФайлу);
ДополнительныеПараметры.Вставить("Сертификат", СписокНайденныхСертификатов[0].Значение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПодписаниеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОписаниеОповещения);
ОбратныйВызов = Новый ОписаниеОповещения("ИнициализацияЗавершениеПодпись", ЭтотОбъект, ДополнительныеПараметры);
Криптография = Новый МенеджерКриптографии;
Криптография.НачатьИнициализацию(ОбратныйВызов, "", "", 75,ИспользованиеИнтерактивногоРежимаКриптографии.Использовать);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодписания(ДанныеПодписи,ДополнительныеПараметры) Экспорт
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения,ДополнительныеПараметры.Сертификат);
КонецПроцедуры
ПоказатьВ результате выдает, "Ошибка при получении контекста модуля криптографии".
Пытался передать пароль закрытого ключа в менеджер криптографии (при этом отключая интерактивный режим) - все так же.
По теме из базы знаний
- Работа с журналом регистрации. Выходим за границы платформы
- Самый простой парсинг и обработка веб-страниц в 1С
- Расширение для работы с ЭДО и сервисами: Диадок, СБИС, ЭДО Лайт, Такском, Signatura.pro, Астрал.ЭДО, Честный Знак и др. Для обычных форм - внешняя обработка. Поддержка Linux.
- Пример работы с криптографией в Web-клиенте 1С
- Взаимодействие с сотрудниками и клиентами из одного окна конфигурации 1С (Телеграм, ВКонтакте, Facebook, Discord). Преимущества, технические особенности, подводные камни
Найденные решения
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Где имя модуля криптографии, где путь?
Имя модуля криптографии - это обязательный параметр.
Путь - обязательный, если ОС - Linux.
Судя по типу 75, имя должно быть "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"
Криптография.НачатьИнициализацию(ОбратныйВызов, "", "", 75
Где имя модуля криптографии, где путь?
Имя модуля криптографии - это обязательный параметр.
Путь - обязательный, если ОС - Linux.
Судя по типу 75, имя должно быть "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"
Точно, в справке так и написано) Я пробовал и с указанием и без.
Инициализация менеджера проходит без ошибок. И список сертификатов я получаю без указания имени модуля.
https://its.1c.ru/db/v8313doc#bookmark:dev:TI000001508 - здесь показан пример без указания имени модуля.
Инициализация менеджера проходит без ошибок. И список сертификатов я получаю без указания имени модуля.
(4)
Извините, Экспорт в коде написан, здесь почему то без... торопился при оформлении.
Актуальный код:
ПодписаниеЗавершение
Извините, Экспорт в коде написан, здесь почему то без... торопился при оформлении.
Актуальный код:
&НаКлиенте
Процедура ПодписаниеЗавершение(ПодписанныйФайл, ДополнительныеПараметры) Экспорт
КонецПроцедуры
&НаКлиенте
Процедура ИнициализацияЗавершениеПодпись(Менеджер, ДополнительныеПараметры) Экспорт
Оповещение = Новый ОписаниеОповещения("ПослеПодписания", ЭтаФорма, ДополнительныеПараметры);
//Менеджер.ПарольДоступаКЗакрытомуКлючу = "1234567890";
Менеджер.НачатьПодписывание(Оповещение,ДополнительныеПараметры.ИсходныйФайл, ДополнительныеПараметры.ПодписанныйФайл, ДополнительныеПараметры.Сертификат);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодписания(ИмяФайла,ДополнительныеПараметры) Экспорт
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения,ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПодписатьФайл()
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПодписанныйФайл", ПутьКФайлу+".sig");
ДополнительныеПараметры.Вставить("ИсходныйФайл", ПутьКФайлу);
ДополнительныеПараметры.Вставить("Сертификат", СписокНайденныхСертификатов[0].Значение);
ОписаниеОповещения = Новый ОписаниеОповещения("ПодписаниеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОписаниеОповещения);
ОбратныйВызов = Новый ОписаниеОповещения("ИнициализацияЗавершениеПодпись", ЭтотОбъект, ДополнительныеПараметры);
Криптография = Новый МенеджерКриптографии;
Криптография.НачатьИнициализацию(ОбратныйВызов, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", "", 75, ИспользованиеИнтерактивногоРежимаКриптографии.Использовать);
КонецПроцедуры
&НаКлиенте
Процедура Подписать(Команда)
ПодписатьФайл();
КонецПроцедуры
Показать