Работа с машиночитаемыми доверенностями (МЧД)
Основные объекты для работы с МЧД:
Регистрация МЧД
Для регистрации МЧД существуют два метода:
Box.RegisterPowerOfAttorneyById(), если МЧД уже зарегистрирована в ФНС через какой-либо другой сервис вместо Диадока.
Box.RegisterPowerOfAttorneyByContent(), если МЧД выпущена, или же как альтернатива первому методу.
Получение МЧД, привязанных к сотруднику
Для получения МЧД, привязанных к текущему авторизованному сотруднику, используйте метод MyEmployee.GetPowersOfAttorney().
Если какую-то МЧД требуется установить по умолчанию, то используйте MyEmployee.SetDefaultPowerOfAttorney().
Процедура УстановитьМЧДПоУмолчанию()
dd_MyEmployee = dd_Box.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’ам относятся:
AcquireCounteragentTask — для подписания документа-вложения, если он указан.
ReceiptGenerationProcess — для подписания ИоПов.
PackageSendTask2 — для подписания отправляемых документов.
TtGisFixationCancellationProcess — для отправки отмен фиксации кодом маркировки.
Для отправки черновиков и документов с отложенной отправкой используйте PatchTask. В нём МЧД указывайте для каждой подписываемой сущности:
Процедура УказаниеМЧД_НаПримере_PackageSendTask2()
dd_PST2 = dd_Box.CreatePackageSendTask2();
dd_MyEmployee = dd_Box.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;
КонецЕсли;
КонецЕсли;
// Код добавления и отправки документов не приведён.
// Пример можно найти в https://developer.kontur.ru/Docs/Diadoc/COM/HowTo/document/post.html
КонецПроцедуры
Получение данных об МЧД, использованных в документообороте документа
Для получения данных об МЧД, которые использовались для подписания сущностей документа,
используйте метод DocumentBase.GetPowersOfAttorney().