Криптография

1. Liones23 48 18.10.24 09:10 Сейчас в теме
Нетиповая самописная конфигурация. Нужно документы подписывать электронной подписью. Перечитала много разрозненной информации и не могу никак собрать пазл.
Внедрила БСП электронная подпись: а как использовать? Миллион строчек кода. В сети только общие слова.
А если без БСП. Менеджер криптографии?
1. для начала нужно понять какие криптопровайдеры установлены. А как? Прочитать реестр? Застряла на RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults­\Provider"). Значение естественно пусто, потому что это подраздел. EnumKey - ругается нет такого метода.
2. Считать установленные сертификаты.
3. поставить отпечаток подписи в документ и закрыть на редактирование.
Полная каша. Что делать не знаю.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. RustamZz 18.10.24 09:28 Сейчас в теме
(1)
Процедура КнопкаВыполнитьНажатие(Кнопка)
	ПараметрыCMS = ЭлектроннаяПодпись.ПараметрыCMS();
		
	МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание", Ложь);
	МенеджерКриптографииДляПроверки = ЭлектроннаяПодпись.МенеджерКриптографии("ПроверкаПодписи", Ложь);
	МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "пароль";
	РезультатПодписания = Подписать(
			Данные(БюджетнаяОперация),
			ПараметрыCMS,
			ЭлектроннаяПодписьСлужебный.ПолучитьСертификатПоОтпечатку(СертификатыКлючейЭлектроннойПодписиИШифрования.Отпечаток, Истина, Ложь),
			МенеджерКриптографии);
	РезультатПроверки = ЭлектроннаяПодписьСлужебный.ПроверитьПодписьCMS(РезультатПодписания.Подпись,
						Данные(БюджетнаяОперация), ПараметрыCMS, МенеджерКриптографииДляПроверки);
	
КонецПроцедуры

Функция Подписать(ДанныеДляПодписания, ПараметрыCMS, СертификатКриптографии, МенеджерКриптографии) Экспорт
	
	ВозвращаемоеЗначение = Новый Структура;
	ВозвращаемоеЗначение.Вставить("Успех");
	ВозвращаемоеЗначение.Вставить("Подпись");
	ВозвращаемоеЗначение.Вставить("ТекстОшибки");
	
	Попытка
		
		Подпись = ЭлектроннаяПодписьСлужебный.ПодписатьCMS(
			ДанныеДляПодписания,
			ПараметрыCMS,
			СертификатКриптографии, МенеджерКриптографии);
		
		ВозвращаемоеЗначение.Успех   = Истина;
		ВозвращаемоеЗначение.Подпись = Подпись;
		
	Исключение
		
		ВозвращаемоеЗначение.Успех       = Ложь;
		ВозвращаемоеЗначение.ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
		
	КонецПопытки;
	
	Возврат ВозвращаемоеЗначение;
	
КонецФункции
Показать
2. mkalimulin 1230 18.10.24 09:26 Сейчас в теме
Начать с уточнения требований. Если они минимальны, тогда берешь какой-нибудь openssl и вот тебе и подпись.
4. Liones23 48 18.10.24 11:08 Сейчас в теме
Требования минимальны: Поставить отпечаток подписи в документ и заблокировать от редактирования. Если отменил подпись - разблокировать.
5. user2033930 18.10.24 11:12 Сейчас в теме
(4) Чует моё сердце, что речь идет о документах 1С, т.е. о записях в СУБД...
6. Liones23 48 18.10.24 11:24 Сейчас в теме
7. Liones23 48 18.10.24 11:25 Сейчас в теме
и соответственно если надо распечатать, то штамп на печатной форме.
8. serg33rus 32 18.10.24 13:43 Сейчас в теме
Вот здесь есть ответы на все Ваши вопросы :-)
https://infostart.ru/1c/tools/1815622/
И формирование ЭЦП и штамп (только в PDF).
Работает в любой конфигурации. Как тонкий клиент так и веб.
9. Liones23 48 22.10.24 12:49 Сейчас в теме
(8) Помогло. Спасибо
Один момент только, список криптопровайдеров прописан жестко в список выбора реквизита. А мне бы хотелось получать список установленных криптопровайдеров. Может на арм нет установленных криптопровайдеров.
10. serg33rus 32 22.10.24 12:56 Сейчас в теме
(9) Если криптопровайдера нет, то выдаст ошибку на списке сертификатов. Наверно можно в попытку обернуть и обрабатывать ошибку.
А вот список установленных криптопровайдеров я не знаю как получить :-(. В 1С такого механизма нет.
Оставьте свое сообщение

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