Имя: Пароль:
1C
1C 7.7
v7: CAdESCOM: Поле агрегатного объекта не обнаружено (SignCades)
0 Caesar
 
29.10.21
09:57
Пишу обмен для нетленки на 1С 77 с ЧестнЫм Знаком

При попытке подписания токена получаю сообщение:



sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType);
{E:\BASES\V7\ОБМЕН_С_ЧЕСТНЫЙЗНАК.ERT(134)}: Поле агрегатного объекта не обнаружено (SignCades)

Текст функции подписания -
// bDetached - Истина/Ложь - откреплённая(для подписания документов)/прикреплённая(для получения токена авторизации) подпись

Функция ПодписатьТекст(ТекстДляПодписи, СертификатДляПодписи, bDetached)    
    //ТекстДляПодписи - токен в формате Base64

    //СертификатДляПодписи - сертификат, полученный по отпечатку

    
    CADESCOM_BASE64_TO_BINARY = 1// Входные данные пришли в Base64


    CADESCOM_CADES_TYPE = 1// Тип усовершенствованной подписи


    CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0// Атрибут штампа времени подписи


    oSigner = СоздатьОбъект("CAdESCOM.CPSigner");
    // Объект, задающий параметры создания и содержащий информацию об усовершенствованной подписи.


    oSigner.Certificate = СертификатДляПодписи;
    //oSigner.KeyPin = "12345678";//пароль, с которым сертификат установлен на сервер. если пароля нет - комментируем строку


    oSigningTimeAttr = СоздатьОбъект("CAdESCOM.CPAttribute");
    oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
    oSigningTimeAttr.Value = ТекущаяДата();
    oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
    ТекстДляПодписи = СокрЛП(ТекстДляПодписи);
    oSignedData = СоздатьОбъект("CAdESCOM.CadesSignedData");
    // Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.


    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = СокрЛП(ТекстДляПодписи);
    EncodingType = 0;
    sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType);  // ВОТ ТУТ ОШИБКА

    // Метод добавляет к сообщению усовершенствованную подпись.


    Возврат sSignedMessage// Подпись в формате Base64


КонецФункции        

Цепочка сертификатов до доверенного КЦ выстроена.
ОС - Windows 10 x64
КриптоПро 5 установлен
Очень прошу помочь.
Заранее благодарен.
1 Mafiozaa
 
29.10.21
10:37
Не знаю почему, но через CADESCOM не работало, заработало через CAPICOM
2 Caesar
 
29.10.21
13:18
Вообще удивительно, этот же кусок кода, портированный на v8, отработал нормально. С семеркой - затык. Какие-то атрибуты доступны, какие-то нет.
Попробую CAPICOM, спасибо.
3 Garykom
 
гуру
29.10.21
14:28
нафуй вам CADESCOM или CAPICOM?

юзайте https://www.cryptopro.ru/products/other/cryptcp
4 lodger
 
29.10.21
16:21
(3) так это ж надо иметь учётку в криптопро.
5 Garykom
 
гуру
29.10.21
16:37
(4) дык чтобы скачать ну да зарегайся
6 Go1den
 
21.12.21
17:23
Замени CAdESCOM.CadesSignedData на CAdESCOM.SignedXML
7 Kigo_Kigo
 
21.12.21
18:14
Да было не раз такое, с восьмерки отрабатывает через созданную компоненту, с 7-ки нет, походу технологии регистрации и вызова разные
Я как то с длл-кой для весов с разрабом бодался, в восьмерке работает и принимает вес, в семерке создается компонента но не отрабатывает, потом он что то намутил и стала работать