|
Менеджер криптографии и проверка ЭЦП (РБ) | ☑ | ||
---|---|---|---|---|
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) Нет, не работал. Лучше спросить у Авеста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |