Отказ в аннулировании

В подключаемом модуле используются методы генерации, подписания и отправки файлов отказа в аннулировании:

Пример кода
Процедура ОтказатьВАннулировании(ОтпечатокСертификата)

    ТекстПричиныОтказаВАннулировании = "В аннулировании отказано";

    ВариантыОтветаПоДокументу = ОсновнойМодуль.ЭДО_Перечисление_ВариантыОтветаПоДокументу();

    Документы_ОтказатьВАннулировании = ДокументыДД_ОтказатьВАннулировании();

    МассивДокументовДляАннулирования = Новый Массив;

    Пока Документы_ОтказатьВАннулировании.Следующий() Цикл

        МассивДокументовДляАннулирования.Добавить(Документы_ОтказатьВАннулировании.ДокументДД);

    КонецЦикла;

    Если МассивДокументовДляАннулирования.Количество() > 0 Тогда

        МассивИдентификаторов = ОсновнойМодуль.ПолучитьМассивИдентификаторовПоМассивуДокументов(МассивДокументовДляАннулирования);

        ОсновнойМодуль.ДобавитьДвоичныйКонтентАннулированияОтказаВАннулировании(МассивИдентификаторов, ТекстПричиныОтказаВАннулировании, ВариантыОтветаПоДокументу.ОтказатьВАннулировании);

        Для Каждого СтруктураИдентификаторов Из МассивИдентификаторов Цикл

            Для Каждого СтруктураДокумента Из СтруктураИдентификаторов.Documents Цикл

                Если ЗначениеЗаполнено(СтруктураДокумента.ТекстОшибки) Тогда
                    Продолжить;
                КонецЕсли;

                ДвоичныеДанные = Base64Значение(СтруктураДокумента.Content);
                РезультатПодписания = ОсновнойМодуль.ПодписатьДанныеНаСервере(ДвоичныеДанные, ОтпечатокСертификата);

                Если Не РезультатПодписания.Успешно Тогда
                    СтруктураДокумента.Вставить("ОписаниеОшибки", РезультатПодписания.ОписаниеОшибки);
                    Продолжить;
                КонецЕсли;

                СтруктураДокумента.Вставить("Signature", Base64Строка(РезультатПодписания.ДвоичныеДанныеПодписи));

            КонецЦикла;

        КонецЦикла;

        ОсновнойМодуль.ЭДО_АннулироватьОтказатьВАннулировании(МассивИдентификаторов, ВариантыОтветаПоДокументу.ОтказатьВАннулировании);

    КонецЕсли;

КонецПроцедуры

Для перевнедрения данного сценария можно воспользоваться следующими вариантами:

Продолжайте использовать текущие методы, доработав алгоритм в подключаемом модуле:

Что делать при перевнедрении

Во время переходного периода

Требуемые действия:

  1. Обновите модуль до версии не ниже 4.53.

По окончании переходного периода

Требуемые действия:

  1. Обновите модуль до версии 4.5X*.

Примечание

* Точная версия релиза будет определена ближе к окончанию переходного периода.

После обновления публичный метод ДобавитьДвоичныйКонтентАннулированияОтказаВАннулировании вместо служебного сообщения «Отказ в аннулировании» будет возвращать УС.

  1. Удалите код, связанный с подписанием файла УС.

Пример кода
Процедура ОтказатьВАннулировании(ОтпечатокСертификата)

    ТекстПричиныОтказаВАннулировании = "В аннулировании отказано";

    ВариантыОтветаПоДокументу = ОсновнойМодуль.ЭДО_Перечисление_ВариантыОтветаПоДокументу();

    Документы_ОтказатьВАннулировании = ДокументыДД_ОтказатьВАннулировании();

    МассивДокументовДляАннулирования = Новый Массив;

    Пока Документы_ОтказатьВАннулировании.Следующий() Цикл

        МассивДокументовДляАннулирования.Добавить(Документы_ОтказатьВАннулировании.ДокументДД);

    КонецЦикла;

    Если МассивДокументовДляАннулирования.Количество() > 0 Тогда

        МассивИдентификаторов = ОсновнойМодуль.ПолучитьМассивИдентификаторовПоМассивуДокументов(МассивДокументовДляАннулирования);

        ОсновнойМодуль.ДобавитьДвоичныйКонтентАннулированияОтказаВАннулировании(МассивИдентификаторов, ТекстПричиныОтказаВАннулировании, ВариантыОтветаПоДокументу.ОтказатьВАннулировании);

        ОсновнойМодуль.ЭДО_АннулироватьОтказатьВАннулировании(МассивИдентификаторов, ВариантыОтветаПоДокументу.ОтказатьВАннулировании);

    КонецЕсли;

КонецПроцедуры