Добрый день.
Исходные данные - есть сервер 1с и 50+ клиентских точек работающих в режиме тонкого клиента.
Изначально реализовывали функционал подписи данных под клиентские компы, но появилась проблема с установкой сертификатов на всех клиентских ПК, и решили перенести подпись на сторону сервера. На сервере, где установлен 1с сервер установили крипто про и установили пользовательский сертификат, код подписи перенесли на сторону сервера, но он перестал работать.
Код 1с:
Функция ПодписатьТекст(ТекстДляПодписи, sThumbprint, bDetached)
CADESCOM_BASE64_TO_BINARY = 1; // Входные данные пришли в Base64
CADESCOM_CADES_TYPE = 1; // Тип усовершенствованной подписи
CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0; // Атрибут штампа времени подписи
oSigner = Новый COMОбъект("CAdESCOM.CPSigner"); // Объект Подпись
oSigner.Certificate = ПолучитьСертификатПоОтпечатку(sThumbprint);
oSigningTimeAttr = Новый COMОбъект("CAdESCOM.CPAttribute");
oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
oSigningTimeAttr.Value = ТекущаяДата();
oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData"); // Объект Подписать данные
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = СокрЛП(ТекстДляПодписи);
EncodingType = 0;
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType);
ПолучитьСтрокуИзДвоичныхДанных(Base64Значение(sSignedMessage),КодировкаТекста.UTF8);
Возврат sSignedMessage; // Подпись в формате Base64
КонецФункции
Ошибка вылетает при получении Com объекта CAdESCOM.CPSigner
Отредактировано пользователем 30 октября 2024 г. 14:30:41(UTC)
| Причина: Не указана