Работа с криптографией в Web клиенте

1. Derushev 10 30.11.21 13:51 Сейчас в теме
Доброго дня, уважаемые специалисты, коллеги!

Бьюсь с проблемой второй день, зашел в тупик. Пытаюсь подписать файл web-клиенте 1С.
МенеджерКриптографии и список сертификатов получить удалось, а вот подписать нет. Может кто подскажет, что я делаю не так?
Код, которым подписываю файл:
&НаКлиенте
Процедура ПодписаниеЗавершение(ПодписанныйФайл, ДополнительныеПараметры)   

КонецПроцедуры

&НаКлиенте
Процедура ИнициализацияЗавершениеПодпись(Менеджер, ДополнительныеПараметры) 
	
    Оповещение = Новый ОписаниеОповещения("ПослеПодписания",ЭтотОбъект, ДополнительныеПараметры);
	//Менеджер.ПарольДоступаКЗакрытомуКлючу = "1234567890";
    Менеджер.НачатьПодписывание(Оповещение,ДополнительныеПараметры.ИсходныйФайл, ДополнительныеПараметры.Сертификат);
	
КонецПроцедуры


&НаКлиенте
Процедура ПодписатьФайл()
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ПодписанныйФайл", ПутьКФайлу+".sig");
	ДополнительныеПараметры.Вставить("ИсходныйФайл", ПутьКФайлу);
	ДополнительныеПараметры.Вставить("Сертификат", СписокНайденныхСертификатов[0].Значение);
	ОписаниеОповещения = Новый ОписаниеОповещения("ПодписаниеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
	ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОписаниеОповещения);
	ОбратныйВызов = Новый ОписаниеОповещения("ИнициализацияЗавершениеПодпись", ЭтотОбъект, ДополнительныеПараметры);
    Криптография = Новый МенеджерКриптографии;	
    Криптография.НачатьИнициализацию(ОбратныйВызов, "", "", 75,ИспользованиеИнтерактивногоРежимаКриптографии.Использовать);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеПодписания(ДанныеПодписи,ДополнительныеПараметры) Экспорт
	
	ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения,ДополнительныеПараметры.Сертификат);
	
КонецПроцедуры

Показать


В результате выдает, "Ошибка при получении контекста модуля криптографии".
Пытался передать пароль закрытого ключа в менеджер криптографии (при этом отключая интерактивный режим) - все так же.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
9. Derushev 10 20.12.21 15:37 Сейчас в теме +5 $m
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 30.11.21 14:37 Сейчас в теме
(1)
Криптография.НачатьИнициализацию(ОбратныйВызов, "", "", 75

Где имя модуля криптографии, где путь?
Имя модуля криптографии - это обязательный параметр.
Путь - обязательный, если ОС - Linux.

Судя по типу 75, имя должно быть "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"
3. Derushev 10 30.11.21 15:47 Сейчас в теме
Точно, в справке так и написано) Я пробовал и с указанием и без.
Инициализация менеджера проходит без ошибок. И список сертификатов я получаю без указания имени модуля.
https://its.1c.ru/db/v8313doc#bookmark:dev:TI000001508 - здесь показан пример без указания имени модуля.
4. mondordom 02.12.21 14:51 Сейчас в теме
А ничего, что ПодписаниеЗавершение() и ИнициализацияЗавершениеПодпись() объявлены без "Экспорт", но при этом являются обработчиками оповещений?
6. Derushev 10 03.12.21 08:10 Сейчас в теме
(4)
ПодписаниеЗавершение

Извините, Экспорт в коде написан, здесь почему то без... торопился при оформлении.
Актуальный код:

&НаКлиенте
Процедура ПодписаниеЗавершение(ПодписанныйФайл, ДополнительныеПараметры) Экспорт
	
	
	
КонецПроцедуры

&НаКлиенте
Процедура ИнициализацияЗавершениеПодпись(Менеджер, ДополнительныеПараметры) Экспорт
	
	Оповещение = Новый ОписаниеОповещения("ПослеПодписания", ЭтаФорма, ДополнительныеПараметры);
	//Менеджер.ПарольДоступаКЗакрытомуКлючу = "1234567890";
	Менеджер.НачатьПодписывание(Оповещение,ДополнительныеПараметры.ИсходныйФайл, ДополнительныеПараметры.ПодписанныйФайл, ДополнительныеПараметры.Сертификат);
	
КонецПроцедуры


&НаКлиенте
Процедура ПослеПодписания(ИмяФайла,ДополнительныеПараметры) Экспорт
	
	ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения,ЭтотОбъект);
	
КонецПроцедуры


&НаКлиенте
Процедура ПодписатьФайл()
	
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("ПодписанныйФайл", ПутьКФайлу+".sig");
	ДополнительныеПараметры.Вставить("ИсходныйФайл", ПутьКФайлу);
	ДополнительныеПараметры.Вставить("Сертификат", СписокНайденныхСертификатов[0].Значение);
	ОписаниеОповещения = Новый ОписаниеОповещения("ПодписаниеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
	ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОписаниеОповещения);
	ОбратныйВызов = Новый ОписаниеОповещения("ИнициализацияЗавершениеПодпись", ЭтотОбъект, ДополнительныеПараметры);
	Криптография = Новый МенеджерКриптографии;	
	Криптография.НачатьИнициализацию(ОбратныйВызов, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", "", 75, ИспользованиеИнтерактивногоРежимаКриптографии.Использовать);
	
КонецПроцедуры


&НаКлиенте
Процедура Подписать(Команда)
	
	ПодписатьФайл();
	
КонецПроцедуры

Показать
7. Derushev 10 03.12.21 08:14 Сейчас в теме
(5)
КриптоПро установлено, установлен их плагин. Кроме того, при при подключении Менеджера криптографии платформа выплевывает свое расширение 1CCryptoExtensionChrFFSetup (метод НачатьУстановкуРасширенияРаботыСКриптографией()). Оно тоже установлено.
8. user790004 16.12.21 10:05 Сейчас в теме
Если в качестве ключевого носителя используется ruToken - пароль по умолчанию 12345678, если eToken - 1234567890
9. Derushev 10 20.12.21 15:37 Сейчас в теме +5 $m
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот