Имя: Пароль:
1C
1С v8
Честный Знак: Не пройдена проверка подписи.
0 Megas
 
17.06.20
16:43
Здравствуйте.
Пробую по API в Честный Знак передать информацию по обуви.

Раньше была другая подпись, которая на днях истекла, и с ней документ передавался нормально.
Теперь новая актуальная подпись, и например Документы EDI ей подписываются и принимаются нормально, а вот ЧЗ не хочет её нормально воспринимать.
Получаю TOKEN, и тут подпись работает,  но дальше когда я подписываю документ и отправляю, мне пишет: Не пройдена проверка подписи,  при этом через Web интерфейс(браузер) подписывается нормально.

Кто знает с чем может быть связана пробемма?
1 D_E_S_131
 
17.06.20
17:09
В ЛК для пользователя добавляли новый сертификат под новую подпись?
2 Megas
 
17.06.20
17:53
(1) Сейчас гляну =) Спасибо
3 spectre1978
 
17.06.20
17:54
Сертификат нужно отправить в ту контору, которая будет проверять. Иначе она никак не поверит.
4 Megas
 
17.06.20
18:05
(3) Это что означает?
Через Веб интерфейс заходит.
В пользователях указан какойто сертификат но там странные даты. срока действия 03.01.51681 - 29.03.52932
Когда нажал добавить и указал новый сертификат, То мне сказало что он уже зарегестрирован
5 spectre1978
 
17.06.20
18:24
(4) это значит, что когда вы получили новую подпись, то ее сертификат нужно тем или иным способом донести до конторы, которая ее проверяет. В ЛК загрузить или по почте отправить или ещё как-то, но если его у них не будет - проверку они сделать не смогут.
6 Megas
 
17.06.20
18:36
(5) У меня 1 пользователь, если пытаюсь добавить ещё и выбираю новый "Сертификат", То пишет - данный сертификат уже зарегистрирован.
7 vovastar
 
17.06.20
18:42
(5) по почте ЭЦП отправить? Вы зачем такое советуете?
8 lodger
 
17.06.20
18:51
(0) тут только техпод ЧЗ поможет. очередной глюк у них.
9 spectre1978
 
17.06.20
18:51
(7) сам сертификат без закрытого ключа - без проблем. Ничего страшного в этом нет.
10 spectre1978
 
17.06.20
18:52
(5) напишите в поддержку, возможно, у них ЛК сломался и надо чтобы сотрудник ручками прописал сертификат в систему.
11 Гость из Мариуполя
 
гуру
17.06.20
19:07
(5) в нормальных системах сертификат доносится автоматически , поскольку автоматически прицеплен к подписанному документу.
А это какая-то недоразвитая система, в которой сертификат нужно посылать отдельно или отдельно регистрировать в ЛК.
К примеру, в налоговую или в ФСС я никакой сертификат специально отдельно никуда не отправляю.
Подписываю отчетность или ЭЛН и фьють. И ведь как-то принимают :)
Налоговая, значится, может из подписанного документа извлечь сертификат и проверить его,  а честный знак, значится, не может. Пусть сходят в ИФНС на стажировку.


(7) вован, ты не поверишь, но когда ты кому-то отсылаешь любой док, подписанный ЭЦП, тем самым ты отсылаешь свой сертификат. :)
12 vovastar
 
17.06.20
19:16
(11) Да я это прекрасно знаю. Не до конца прочитал в суть отправки чего то там по электронке.
Просто не думаю, чтобы в ЧЗ операторы ручками сертификаты правили у себя. Если каждый им начнет так сертификаты отсылать чтобы они у себя в системе их регистрировали, то смысл этой всей автоматизации?
13 vovastar
 
17.06.20
19:19
+(12) чем то напоминает в этом Сбербанк АСТ, там такая же муть.
14 NorthWind
 
17.06.20
19:29
(11) они все работают не напрямую, а через оператора, который, собственно, обычно и выписывает вам ЭЦП на год после оплаты Соответственно, сертификаты ваши у оператора есть еще до того как вы отправите первое письмо. И если вы без предупреждения подпишете отчет подписью, выданной другим УЦ и отправите доки в налоговую, скорее всего, оператор вам отпишет болт.
То же самое банк-клиент - ключи всегда выписываются запросом через банк, по-другому не предусмотрено.
А операторы того же EDI и Честный знак требуют, чтобы перед началом обмена вы им показали сертификат.
15 NorthWind
 
17.06.20
19:32
кстати, из всех этих богоугодных заведений только ФСС позволяет обмен напрямую и они да, удовлетворяются тем сертификатом, который в письме. Дополнительно им высылать не надо.
16 vovastar
 
17.06.20
19:33
(14) ну почему? Например, при входе в личный кабинет налогоплательщика я просто показываю свой сертификат. А например Сбербанк АСТ, требует помимо этого, хранения моего сертификата у себя на сервере.
17 NorthWind
 
17.06.20
19:34
(16) через ЛКН ЮЛ отчетность отправлять нельзя. Там документооборот не предусмотрен никакой. Максимум выписку можно запросить, по-моему, так.
18 vovastar
 
17.06.20
19:36
(17) ну если только так. То может они и правы.
19 Гость из Мариуполя
 
гуру
17.06.20
22:09
А что оператор? сертификат у оператора и сертификат в ИФНС - это совершенно разные места.
Оператор НЕ регистрирует наши сертификаты в налоговой и не исправляет нашу ЭЦП на свою.
Налоговая получает отчеты, подписанные нашим ЭЦП, а не оператора.
Равно как и мы получаем протокол, подписанный ЭЦП налоговой.

А оператор всего лишь квитирует получение и отправку.

Да, у оператора есть наши сертификаты изначально. А у налоговой - нет.
А ФСС вообще может обходиться без оператора.
Так что оператор - это всего лишь передаточное звено, но никак не регистратор наших сертификатов в налоговой.  А то, что он якобы удостоверяет нашу личность - так в самом сертификате и указаны и корневые и промежуточные удостоверяющие центры сертификации.

И помимо ФСС куча сервисов так же работает. Те же госуслуги. Никто что, не пользовался госуслугами под ЭЦП учреждения? Та же ГИС ГМП.
Да и налоговая ведь выписку ЕГРЮЛ и прочий обмен через ЛК тоже делает без участия оператора, но с использованием ЭЦП. И, кстати, почему тут говорят только про  выписку? А ККТ что, не через ЛК, в на бумажке в налоговую носите?
20 NorthWind
 
18.06.20
07:36
(19) взаимоотношений оператора с ФНС я лично точно не знаю и поэтому не могу утверждать, передает он сертификаты или не передает. Для меня достаточно того что он обычно сам является УЦ и генерирует подписи, т.е. при необходимости у него есть не то что сертификаты, а даже и закрытые ключи.
Сервисов работает много, но мало кто таким образом занимается пакетным документооборотом. ФСС, кажется, единственный, у кого есть апи и кому можно скидывать отчеты и больничные в промышленных количествах. Разного рода личники - не совсем то.
Регистрация ККТ - это разовая операция, не документооборот. А вот работа ККТ - пример как раз обратный. Мы обязательно предъявляем данные ККТ и данные ФН каждый год (или три). И дальше в процессе работы ничего менять не можем. Нельзя, например, свой ФН вставить в другую кассу взамен вышедшей из строя.
Так что выходит, что в общем-то почти везде, где есть поток документов, есть предварительная загрузка своих идентификационных данных на ресурсы уполномоченных организаций.
21 Megas
 
18.06.20
12:35
Решил.
То ли они проверку какую добавили, или переделали что то.Поменял параметры при подписи по последнему руководству и всё стало подписываться.
22 VitShvets
 
19.06.20
11:38
(21) А не поделитесь куском кода или примером, как документы ЧЗ отправляете? Подключаюсь к ЧЗ используя CAdESCOM.*:

Токен = comSignedData.SignCades(comCPSigner, 1, Ложь, ); // comSignedData это CAdESCOM.CadesSignedData

Токен получаю нормально, документы входящие забираю. А исходящие не создаются. Меня люто бомбит с поведения их системы - вызываю сервис, возвращается честный идентификатор нового документа, ошибок нет. Но и документа в ЛК тоже нет. Есть у меня подозрение, что это что-то из за подписи, как-то криво я её получаю...

Конфа древняя КА. В поддержку ЧЗ написал, неделю назад, молчат как рыба об лёд.
23 VitShvets
 
19.06.20
16:52
24 Megas
 
19.06.20
16:54
(22)
ВашНовыйСгенерированныйТокен = ТекущийТоккен;
    
    DocumentType = "LP_SHIP_GOODS";                      // LP_SHIP_RECEIPT
    //АдресHTTP = "/api/v3/lk/documents/create?pg=shoes";
    АдресHTTP = "/api/v3/lk/documents/shipment/create";
    
    
    // Получить случайные данные.
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Authorization", "Bearer " + ВашНовыйСгенерированныйТокен);

bDetached     = Ложь;
    sThumbprint = "aa aa aa aa aa aa aa aa aa aa aa 64 ce aa 8c 72 2e fd d5 28"; // Тут хеш отпечаток от подписи,  что б найти нужную
    СтрокаВБазе = УбратьСимволы1013(Base64Строка( ПолучитьДвоичныеДанныеИзСтроки(СтруктурированныйJSON)));
    
    //ПодписанныеДанные = ПодписатьТекст(СтруктурированныйJSON, sThumbprint, bDetached, 1);
       ПодписанныеДанные = ПодписатьТекст(СтрокаВБазе, sThumbprint, bDetached, 1);

    
    
    // обертка //
    ПакетДанных    = Новый Соответствие;    
    //ПакетДанных.Вставить("product_document", УбратьСимволы1013(Base64Строка( ПолучитьДвоичныеДанныеИзСтроки(СтруктурированныйJSON))));
    ПакетДанных.Вставить("product_document", СтрокаВБазе);
    ПакетДанных.Вставить("document_format", "MANUAL");
    ПакетДанных.Вставить("type", DocumentType);
//    ПакетДанных.Вставить("signature", ПодписатьЭЦПЧерезСОМОбъекты(СтруктурированныйJSON, Ложь, Истина));
    ПакетДанных.Вставить("signature", ПодписанныеДанные);
    
    СтруктурированныйJSON = РаботаСФорматомJSON.ЗаписатьJSON(ПакетДанных);

           
    Соединение = Новый HTTPСоединение(Сервер, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL);
    Запрос = Новый HTTPЗапрос(АдресHTTP, Заголовки);

    Запрос.УстановитьТелоИзСтроки(СтруктурированныйJSON);
    
    Попытка                    
        Ответ = Соединение.ОтправитьДляОбработки(Запрос);
        ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
    Исключение
        Сообщить(ОписаниеОшибки());                                              
        Соединение = Неопределено;
        Возврат ;
    КонецПопытки;      
    
    
    Если Ответ.КодСостояния = 200 тогда
        РазборОтвета = РаботаСФорматомJSON.ПрочитатьJSON(ТекстОтвета);
        ПоказатьJSON(РазборОтвета)
    КонецЕсли;
    JsonText = ТекстОтвета;
    Сообщить( ТекстОтвета );



// sThumbprint - отпечаток сертификата, используемого для подписи; строка,
// представляющая отпечаток в шестнадцатеричном виде
// пример 195934d72dcdf69149901d6632aca4562d8806d8
// ТекстДляПодписи должен быть в Base64
// bDetached - Истина/Ложь - откреплённая(для подписаниядокументов)/прикреплённая(для получения токена авторизации) подпись
Функция ПодписатьТекст(ТекстДляПодписи, sThumbprint, bDetached, CADESCOM_BASE64_TO_BINARY = 0 )
//    CADESCOM_BASE64_TO_BINARY = 0; // Входные данные пришли в 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");
    // Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = СокрЛП(ТекстДляПодписи);
    EncodingType = 0;
    sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE,
    bDetached, EncodingType);
    // Метод добавляет к сообщению усовершенствованную подпись.
    Возврат sSignedMessage; // Подпись в формате Base64
КонецФункции
//Отпечаток - строка HEX
Функция ПолучитьСертификатПоОтпечатку(ОтпечатокСтр)
    Рез = Неопределено; // Найденный сертификат (Com-объект)
    CAPICOM_CURRENT_USER_STORE = 2;
    //2 - Искать сертификат в ветке "Личное" хранилища.
    CAPICOM_MY_STORE = "My";
    // Указываем, что ветку "Личное" берем из хранилища текущего пользователя
    CAPICOM_STORE_OPEN_READ_ONLY = 0; // Открыть хранилище только на чтение
    oStore = Новый COMОбъект("CAdESCOM.Store"); // Объект описывает хранилище сертификатов 182
    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
    CAPICOM_STORE_OPEN_READ_ONLY); // Открыть хранилище сертификатов
    // 1 вариант: поиск сертификата по отпечатку
    CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
    Certificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH,
    ОтпечатокСтр);
    Рез = Certificates.Item(1);
    //2 вариант: обходом по коллекции и сравнение с отпечатком
    //Для Каждого ТекСертификат Из oStore.Certificates Цикл
    //ТекОтпечаток = ТекСертификат.Thumbprint; // возвращается отпечаток вшестнадцатеричном виде
    //Если ВРЕГ(ТекОтпечаток) = ВРЕГ(ОтпечатокСтр) Тогда //Рез = ТекСертификат;
    //Прервать;
    //КонецЕсли;
    //КонецЦикла;
    oStore.Close(); // Закрыть хранилище сертификатов и освободить объект 61
    Возврат Рез;
КонецФункции

Надеюсь помог
25 Megas
 
19.06.20
16:57
(23) У меня к тому же 82 поэтому функции Base64Строка( ПолучитьДвоичныеДанныеИзСтроки()) - самописные - в 83 это проще =)
и
Функция УбратьСимволы1013(Строка) Экспорт
    Возврат СтрЗаменить(СтрЗаменить(Строка, Символы.ПС, ""), Символы.ВК, ""); // Ещё бывают символы "77u/", при необходимости удалять и их.
КонецФункции
26 marty0701
 
19.06.20
18:08
Можно чуть подробнее, где именно надо обновить сведения о сертификате, у нас закончился 18 числа, сегодня ловим какие-то ошибки невнятные при передаче данных в ЧЗ. УТ 11.4, на старой подписи всё работало, новую установили, 1с ее видит, проверку проходит, но оформить приемку товаров, например, не удаётся.
27 Jonny992
 
05.08.20
15:51
(26) Марти, напиши свой тг пожалуйста, есть пару вопрос,если нетрудно !
28 Megas
 
06.08.20
13:46
(26) В общем нечего не надо обновлять.
Вы что то делаете не так, как я понял ЧЗ ужесточил проверку подписанных документов.
29 Krio77
 
16.10.20
16:06
(21) Подскажите в чем проблема то была?
столкнулся с точно такой же ситуацией поменяли ЭЦП и ошибка не пройдена проверка подписи.
при чем обработка выгрузки документов в ЧЗ по API одна для 9 ИП на восьми работает все ок, а на одном ИП с новой ЭЦП нет.
30 Garykom
 
гуру
16.10.20
16:15
(29) а вы новую ЭП в ЛК ЧЗ добавили?
31 Krio77
 
16.10.20
16:18
(30) эм )) а как ? у меня ИП, редактировать единственного пользователя не дает, и нового не дает добавить пишет для ИП недоступно добавление пользователей
32 Krio77
 
16.10.20
16:20
(31) тем более на прошлой неделе меняли тоже ЭЦП у трех ИП они работают все ок, не было такой проблемы, правда у них другой центр сертификации для ЭЦП
33 Garykom
 
гуру
16.10.20
16:21
(31) замену/восстановление можно делать старый сертификат подсовываешь и новый
34 Garykom
 
гуру
16.10.20
16:21
(33)+ Хотя если в ЛК заходит с этой ЭП то трабла в чем то ином
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн