Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Менеджер криптографии и проверка ЭЦП (РБ)

Менеджер криптографии и проверка ЭЦП (РБ)
Я
   Amig0_0
 
15.03.21 - 12:37
Всем доброго времени суток!

Столкнулся давеча с проблемой. Проблема очень узкоспециализированная и если вдруг у кого возникнут мысли - буду безмерно благодарен за помощь!!!

Модифицировал клиенту внешнюю печатную форму (банально добавил на нее должность подписывающего) и заменил в "Печатных формах, отчетах и обработках". Все было хорошо, но с того момента
через пару дней, стали замечать, что из документаоборота некоторые файлы начали приходить с ошибкой. Предыдущий разработчик классифицировал это ошибку как "ошибку проверки подписей документа".

За сверку подписей отвечает

МенеджерКрипто.ПроверитьПодпись(ДанныеПДФ,ДанныеПодписи);

ДанныеПДФ - это ПДФ файл - печатная форма о которой я говорил выше. Я проверил, это именно она, с добавленной мною должностью. После подписи , этот ПДФ сохраняется как двоичные данные и хранится в документе.
В момент подписи происходит следующее:

>>>
  ИмяФайла = КаталогВременныхФайлов() + СокрЛП(Акт.УникальныйИдентификатор()) + ".pdf";

  ТаблДок.Записать(ИмяФайла,ТипФайлаТабличногодокумента.PDF);
  ДанныеФайла = Новый ДвоичныеДанные(ИмяФайла);
  ДанныеПодписи = МенеджерКрипто.Подписать(ДанныеФайла,Сертификат);
>>>

ДанныеФайла это третично упомянутая ПФ, сохраненная в ПДФ и подписанная ключом.

В момент принятия возвращенного файла, менеджер криптографии проверяет подпись "ПроверитьПодпись". Я так понимаю, он проверяет, подписан ли ИМЕННО этот пдф файл, который мы отправили
документообороту. Это проиисходит так:

>>>
//ищем ссылку в базе
ФлПроверкиПодписей = Истина;
ДанныеПДФ = Док.ДокументПДФ.Получить();
Для а = 0 по МассивПодписей.Количество()-1 цикл
    ДанныеПодписи = МассивПодписей[а];

    Попытка
       МенеджерКрипто.ПроверитьПодпись(ДанныеПДФ,ДанныеПодписи);

    Исключение
       ФлПроверкиПодписей = Ложь;
    КонецПопытки;          

КонецЦикла;

Если ФлПроверкиПодписей  Тогда
    ...
>>>

Раз через раз отрабатывает исключение! Самое печальное, что при повторном переотправлении из документооборота, документ может обработаться успешно...
Проблемы на стороне документооборота можно отмести, т.к. заказчик работает с нескольким десятком контрагентов. У большинства из них различные документообороты.
Да и факт того, что ранее (до того, как я изменил ПФ) все работало корректно. Во всяком случае так говорит заказчик=)

Акт в документооборот отправляется правильный. Кэш почистили.

Кто - нибудь сталкивался с подобными проблемами? Есть идеи в какую сторону "копать"? За любую помощи и мысли буду благодарен!
   Garykom
 
1 - 15.03.21 - 12:40
(0) Тебя разводят
   Amig0_0
 
2 - 15.03.21 - 12:42
(1) последние пару ночей, искренне на это надеюсь
   Amig0_0
 
3 - 15.03.21 - 16:58
такое ощущение, что Док.ДокументПДФ перезаписывается в какой-то момент и таким образом отличается от того, который уходит в документооборот. но в коде нет ни одного момента, где бы этот реквизит перезаписывался. Нагуглил, что проблема может быть в Криптопровайдере (в нашем случае Авест), но документации по хоть отдаленным причинам возникновения проблем - нет!
   mistеr
 
4 - 15.03.21 - 17:38
(0) Странный код проверки подписи. Там может быть исключение по десятку причин, помимо неверной подписи. Но реальная ошибка просто глотается. Руки бы отрывать за такой код.

Добавь логирование в ЖР информации об ошибке.
   Amig0_0
 
5 - 16.03.21 - 08:50
(4) =)) 100% согласен с вами. Знаете, что в этом коде самое бесючее? То , что это ПопыткаИсключение находится в процедуре, которая тоже находится в ПОПЫТКЕ! Это кем нужно быть, чтобы запускать подобного масштаба функционал (около 100 обменов в день) с такой реализацией?!

Логирование добавил, это помогло выявить место в котором всё крашится
   Amig0_0
 
6 - 16.03.21 - 08:56
(4) а вы работали с Авестом? не подскажете, почему реализация может обрабатывать входящие письма пачками по 10 штук? Ограничение указано программно. Порой пачки приходят по 20+ штук. В таком случаи разбиваются на группы по 10 и обрабатываются по очереди. В интернете инфы на эту тему нет. Может Авест принимает именно по 10 штук, а тут было какое - то обновление?? Что могло поломаться...
   mistеr
 
7 - 16.03.21 - 09:22
(6) Нет, не работал. Лучше спросить у Авеста.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.