Работа с машиночитаемыми доверенностями (МЧД)

Основные объекты для работы с МЧД:

Регистрация МЧД

Для регистрации МЧД существуют два метода:

Первый из этих методов может быть использован, если МЧД уже зарегистрирована в ФНС через какой-либо другой сервис (не Диадок).

Второй - если МЧД выпущена, или же как альтернатива первому методу.

МЧД привязанные к сотруднику организации

Для получения МЧД, привязанных к текущему авторизованному сотруднику, предназначен метод MyEmployee.GetPowersOfAttorney()

Если какую-то МЧД требуется установить как МЧД по умолчанию, то можно использовать MyEmployee.SetDefaultPowerOfAttorney()

Процедура УстановитьМЧДПоУмолчанию()
  dd_MyEmployee = dd_Organization.MyEmployee;
  dd_EmployeePowerOfAttorney_Collection = MyEmployee.GetPowersOfAttorney(Истина);
  dd_EmployeePowerOfAttorney = dd_EmployeePowerOfAttorney_Collection.getItem(0);
  dd_PowerOfAttorney = dd_EmployeePowerOfAttorney.PowerOfAttorney;

  dd_MyEmployee.SetDefaultPowerOfAttorney(dd_PowerOfAttorney);
КонецПроцедуры

Как использовать МЧД

МЧД необходимо прикладывать при подписании каких-либо сущностей. В Task’ах, в которых может произойти подписание каких-либо сущностей добавлено поле PowerOfAttorneyToAttach. К таким Task’ам относятся:

Для отправки черновиков и документов с отложенной отправкой используется PatchTask - в нём МЧД нужно указывать для каждой подписываемой сущности:

Процедура УказаниеМЧД_НаПримере_PackageSendTask2()
  dd_PST2 = dd_Organization.CreatePackageSendTask2();
  dd_MyEmployee = dd_Organization.MyEmployee;

  Если dd_MyEmployee.NeedToAttachPowerOfAttorney Тогда
    dd_PowerOfAttorneyToAttach = dd_PST2.PowerOfAttorneyToAttach;

    Если ХочуИспользоватьМЧДПоУмолчанию Тогда
      dd_PowerOfAttorneyToAttach.UseDefault = Истина;

    Иначе
      dd_EmployeePowerOfAttorney_Collection = dd_MyEmployee.GetPowersOfAttorney(Истина);
      dd_EmployeePowerOfAttorney = dd_EmployeePowerOfAttorney_Collection.getItem(0);
      dd_PowerOfAttorney = dd_EmployeePowerOfAttorney.PowerOfAttorney;

      dd_PowerOfAttorneyToAttach.PowerOfAttorney = dd_PowerOfAttorney;
    КонецЕсли;

  КонецЕсли;

  // Код добавления и отправки документов не приведён

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

Кроме того, МЧД можно указать для подписания ИоПов по конкретного документу:

Процедура ПодписатьИоПыИспользуяМЧД(ИдентификаторДокумента)
  dd_DocumentBase = dd_Organization.GetDocumentById(ИдентификаторДокумента);
  dd_MyEmployee = dd_Organization.MyEmployee;

  Если dd_MyEmployee.NeedToAttachPowerOfAttorney Тогда
    Если ХочуИспользоватьМЧДПоУмолчанию Тогда
      dd_AsyncResult = dd_DocumentBase.SendReceiptsWithPowerOfAttorney(Неопределено);

    Иначе
      dd_EmployeePowerOfAttorney_Collection = dd_MyEmployee.GetPowersOfAttorney(Истина);
      dd_EmployeePowerOfAttorney = dd_EmployeePowerOfAttorney_Collection.getItem(0);
      dd_PowerOfAttorney = dd_EmployeePowerOfAttorney.PowerOfAttorney;

      dd_AsyncResult = dd_DocumentBase.SendReceiptsWithPowerOfAttorney(dd_PowerOfAttorney);
    КонецЕсли;

  Иначе
    dd_AsyncResult = dd_DocumentBase.SendReceiptsAsync();

  КонецЕсли;

  // Код обработки dd_AsyncResult не приведён

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

Получение данных об МЧД

Для получения данных об МЧД, которые использовались для подписания сущностей документа, используется метод DocumentBase.GetPowersOfAttorney()