| 
    
            
         
         | 
    
    
  | 
Менеджер криптографии и проверка ЭЦП (РБ) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Amig0_0    
     15.03.21 
            ✎
    12:37 
 | 
         
        Всем доброго времени суток!
 
        Столкнулся давеча с проблемой. Проблема очень узкоспециализированная и если вдруг у кого возникнут мысли - буду безмерно благодарен за помощь!!! Модифицировал клиенту внешнюю печатную форму (банально добавил на нее должность подписывающего) и заменил в "Печатных формах, отчетах и обработках". Все было хорошо, но с того момента через пару дней, стали замечать, что из документаоборота некоторые файлы начали приходить с ошибкой. Предыдущий разработчик классифицировал это ошибку как "ошибку проверки подписей документа". За сверку подписей отвечает МенеджерКрипто.ПроверитьПодпись(ДанныеПДФ,ДанныеПодписи); ДанныеПДФ - это ПДФ файл - печатная форма о которой я говорил выше. Я проверил, это именно она, с добавленной мною должностью. После подписи , этот ПДФ сохраняется как двоичные данные и хранится в документе. В момент подписи происходит следующее: >>> ИмяФайла = КаталогВременныхФайлов() + СокрЛП(Акт.УникальныйИдентификатор()) + ".pdf"; ТаблДок.Записать(ИмяФайла,ТипФайлаТабличногодокумента.PDF); ДанныеФайла = Новый ДвоичныеДанные(ИмяФайла); ДанныеПодписи = МенеджерКрипто.Подписать(ДанныеФайла,Сертификат); >>> ДанныеФайла это третично упомянутая ПФ, сохраненная в ПДФ и подписанная ключом. В момент принятия возвращенного файла, менеджер криптографии проверяет подпись "ПроверитьПодпись". Я так понимаю, он проверяет, подписан ли ИМЕННО этот пдф файл, который мы отправили документообороту. Это проиисходит так: >>> //ищем ссылку в базе ФлПроверкиПодписей = Истина; ДанныеПДФ = Док.ДокументПДФ.Получить(); Для а = 0 по МассивПодписей.Количество()-1 цикл ДанныеПодписи = МассивПодписей[а]; Попытка МенеджерКрипто.ПроверитьПодпись(ДанныеПДФ,ДанныеПодписи); Исключение ФлПроверкиПодписей = Ложь; КонецПопытки; КонецЦикла; Если ФлПроверкиПодписей Тогда ... >>> Раз через раз отрабатывает исключение! Самое печальное, что при повторном переотправлении из документооборота, документ может обработаться успешно... Проблемы на стороне документооборота можно отмести, т.к. заказчик работает с нескольким десятком контрагентов. У большинства из них различные документообороты. Да и факт того, что ранее (до того, как я изменил ПФ) все работало корректно. Во всяком случае так говорит заказчик=) Акт в документооборот отправляется правильный. Кэш почистили. Кто - нибудь сталкивался с подобными проблемами? Есть идеи в какую сторону "копать"? За любую помощи и мысли буду благодарен!  | 
|||
| 
    1
    
        Garykom    
     гуру 
    15.03.21 
            ✎
    12:40 
 | 
         
        (0) Тебя разводят     
         | 
|||
| 
    2
    
        Amig0_0    
     15.03.21 
            ✎
    12:42 
 | 
         
        (1) последние пару ночей, искренне на это надеюсь     
         | 
|||
| 
    3
    
        Amig0_0    
     15.03.21 
            ✎
    16:58 
 | 
         
        такое ощущение, что Док.ДокументПДФ перезаписывается в какой-то момент и таким образом отличается от того, который уходит в документооборот. но в коде нет ни одного момента, где бы этот реквизит перезаписывался. Нагуглил, что проблема может быть в Криптопровайдере (в нашем случае Авест), но документации по хоть отдаленным причинам возникновения проблем - нет!     
         | 
|||
| 
    4
    
        mistеr    
     15.03.21 
            ✎
    17:38 
 | 
         
        (0) Странный код проверки подписи. Там может быть исключение по десятку причин, помимо неверной подписи. Но реальная ошибка просто глотается. Руки бы отрывать за такой код.
 
        Добавь логирование в ЖР информации об ошибке.  | 
|||
| 
    5
    
        Amig0_0    
     16.03.21 
            ✎
    08:50 
 | 
         
        (4) =)) 100% согласен с вами. Знаете, что в этом коде самое бесючее? То , что это ПопыткаИсключение находится в процедуре, которая тоже находится в ПОПЫТКЕ! Это кем нужно быть, чтобы запускать подобного масштаба функционал (около 100 обменов в день) с такой реализацией?!
 
        Логирование добавил, это помогло выявить место в котором всё крашится  | 
|||
| 
    6
    
        Amig0_0    
     16.03.21 
            ✎
    08:56 
 | 
         
        (4) а вы работали с Авестом? не подскажете, почему реализация может обрабатывать входящие письма пачками по 10 штук? Ограничение указано программно. Порой пачки приходят по 20+ штук. В таком случаи разбиваются на группы по 10 и обрабатываются по очереди. В интернете инфы на эту тему нет. Может Авест принимает именно по 10 штук, а тут было какое - то обновление?? Что могло поломаться...     
         | 
|||
| 
    7
    
        mistеr    
     16.03.21 
            ✎
    09:22 
 | 
         
        (6) Нет, не работал. Лучше спросить у Авеста.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |