Подписать (ЭЦП) на сервере

1. noprogrammer 239 24.10.23 12:48 Сейчас в теме
Добрый день.
Хочу подписать документ (не типовой) - подписание выполняю следующим кодом:
	Успех=ЭлектроннаяПодписьСлужебныйВызовСервера.ВыполнитьНаСторонеСервера(ПараметрыДляСервера, АдресРезультата, Истина, ОшибкаНаСервере);

Возвращается ошибка (на сервере нет эцп), что как бы логично - отсюда вопрос, как подписать на "клиенте"?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Sashares 33 24.10.23 13:32 Сейчас в теме
(1) А зачем вы используете процедуры служебного модуля?
Почему не использовать ЭлектроннаяПодписьКлиент.Подписать() ?
5. noprogrammer 239 24.10.23 13:33 Сейчас в теме
(4) от незнания, спасибо.
6. noprogrammer 239 25.10.23 11:33 Сейчас в теме
(4) Данный метод работает лишь с обработкой оповещения, для возвращения результата. Требуется просто "Подписать" и вернуть результат "подписанные данные".
7. Sashares 33 25.10.23 11:37 Сейчас в теме
(6)Что означает "вернуть результат "подписанные данные""?
2. platonov.e 161 24.10.23 13:22 Сейчас в теме
Я не эксперт, но посмею предположить что
ЭлектроннаяПодписьСлужебный.ВыполнитьНаСтороне(ПараметрыВсякие)
3. noprogrammer 239 24.10.23 13:25 Сейчас в теме
8. noprogrammer 239 25.10.23 12:01 Сейчас в теме
(7)
// bDetached - Истина/Ложь - откреплённая(для подписания документов)/прикреплённая подпись
Функция CADESCOM_ПодписатьТекст(ТекстДляПодписи, ОтпечатокСертификата, bDetached, ЗашифроватьBase64=Истина) Экспорт
	CADESCOM_CADES_TYPE=1; // Тип усовершенствованной подписи
	CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME=0; // Атрибут штампа времени подписи

	oSigningTimeAttr=Новый COMОбъект("CAdESCOM.CPAttribute");
	oSigningTimeAttr.Name=CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
	oSigningTimeAttr.Value=ТекущаяДата();
	
	// Объект, задающий параметры создания и содержащий информацию об усовершенствованной подписи.
	oSigner=Новый COMОбъект("CAdESCOM.CPSigner");	
	oSigner.Certificate=CADESCOM_СертификатПоОтпечатку(ОтпечатокСертификата);
	oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
	
	// Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
	oSignedData=Новый COMОбъект("CAdESCOM.CadesSignedData");	
	oSignedData.ContentEncoding=1; // Входные данные пришли в Base64;
	oSignedData.Content=СокрЛП(ТекстДляПодписи);

	// Метод добавляет к сообщению усовершенствованную подпись.
	Возврат oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, 0); // Подпись в формате Base64
КонецФункции

Показать


Функция возвращает подписанные данные.
Как такое же сделать типовым функционалом?
9. farengeit00 23.09.24 15:19 Сейчас в теме
(8) От куда и как получается "ТекстДляПодписи"?
10. MissionOnly 3 23.09.24 16:18 Сейчас в теме
Пользовался подобной функцией на клиенте (в самописной конфигурации), все проходило без ошибок.
12. farengeit00 24.09.24 07:52 Сейчас в теме
(10) где взять "ТекстДляПодписи"?
13. MissionOnly 3 24.09.24 08:43 Сейчас в теме
(12) Обычно подписывают документы для отправки. На пример: готовят ЭД (JSON) в ЧЗ, потом JSON структуру подписывают ЭЦП и отправляют в ЧЗ.
11. user5300 1073 23.09.24 16:44 Сейчас в теме
ЭлектроннаяПодписьКлиент.Подписать
14. igor63 24.09.24 10:50 Сейчас в теме
	
Парам = Новый Структура;
ОписаниеДанных = Новый Структура;
	ОписаниеДанных.Вставить("Данные", Файл);
	ОписаниеДанных.Вставить("Операция", "Подписание");
	ОписаниеДанных.Вставить("ЗаголовокДанных", "Подписание документа");
	
	ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных,,Новый ОписаниеОповещения("ПослеПодписанияДокумента", ЭтотОбъект, Парам));
Показать


&НаКлиенте
Процедура ПослеПодписанияДокумента(Результат, Параметры) Экспорт  
	
	действия с подписанным документом.... 
	
КонецПроцедуры
Оставьте свое сообщение

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