Работа с машиночитаемой доверенностью
Данный пример, расположенный в репозитории Docsvision на GitHub, содержит методы работы с МЧД для Web-клиента и для Windows-клиента.
Ссылка на пример на GitHub: PowersOfAttorney.
Пример рассчитан на версию Web-клиента dv6 или выше.
-
Модуль Базовые объекты версии 6.1, сборка 176 и выше.
-
Модуль Web-клиент версии 6.1, сборка 651 и выше.
Ограничения примера
-
Виды передоверия в примере предназначены только для ознакомления. Для их использования необходима доработка под ситуации, не требующие нотариального удостоверения. По умолчанию создание карточек данных видов запрещено.
-
Формат 5.01 не реализован.
-
Для формата 002 не реализованы следующие сценарии:
-
Основная доверенность
Доверитель Лицо, действующее без доверенности от имени доверителя Представитель Российское юридическое лицо
Юридическое лицо
Организация / Индивидуальный предприниматель
Иностранное юридическое лицо
Все типы
Все типы
Индивидуальный предприниматель
Все типы
Все типы
Физическое лицо
Все типы
Все типы
-
Передоверие
Лицо, передавшее полномочия Лицо, получившее полномочия Российское юридическое лицо
Все типы
Индивидуальный предприниматель
Все типы
Физическое лицо
Организация/ Индивидуальный предприниматель
-
Нотариальное удостоверение доверенностей.
-
-
Для формата EMCHD_1 (003) не реализованы следующие сценарии:
-
Основная доверенность
Доверитель Единоличный исполнительный орган Представитель Российское юридическое лицо
Управляющая компания/ Индивидуальный предприниматель
Юридическое лицо/ Индивидуальный предприниматель/ Филиал (обособленное подразделение) российского юридического лица/ Филиал (аккредитованное представительство) иностранного юридического лица
Иностранное юридическое лицо
Все типы
Все типы
Индивидуальный предприниматель
Все типы
Все типы
Физическое лицо
Все типы
Все типы
-
Передоверие
Лицо, передавшее полномочия Лицо, получившее полномочия Российское юридическое лицо
Все типы
Индивидуальный предприниматель
Все типы
Физическое лицо
Юридическое лицо/ Индивидуальный предприниматель/ Филиал (обособленное подразделение) российского юридического лица/ Филиал (аккредитованное представительство) иностранного юридического лица
Филиал (обособленное подразделение) российского юридического лица
Все типы
Филиал (аккредитованное представительство) иностранного юридического лица
Все типы
-
Нотариальное удостоверение доверенностей.
-
Описание примера
-
— папка с серверным расширением Web-клиента, в котором реализованы функции создания СКД из демонстрационной карточки доверенностей.
-
— папка с клиентским расширением, в котором реализованы обработчики смены состояния ПКД и управления МЧД, видимостью и обязательностью полей.
-
— папка с расширением конструктора разметок, в котором реализовано описание элемента управления для группового подписания.
-
— папка с проектом
PowersOfAttorney.UserCard.Common, который используется и для Web-клиента и для Windows-клиента. -
— содержит файл скрипта для Windows клиента.
-
— папка с решением, включающим разметки тестовой карточки доверенности.
-
— решение, добавляющее в систему Docsvision новые виды карточки Документ (Доверенность и Передоверие) и необходимые расширенные метаданные.
Сборка проекта
-
Сборка серверной части.
-
Откройте решение .
-
Соберите проект
PowersOfAttorneyServerExtension.
-
-
Сборка клиентской части.
-
Откройте в командной строке папку .
-
Выполните команды:
$ npm install $ npm update $ npm run build:prod
-
-
Публикация компонентов на сервере Web-клиент.
-
Скопируйте папку
PowersOfAttorney\SamplesOutput\Content\Modules\PowersOfAttorneyWebExtensionвКаталог-установки-Web-клиента\Content\Modules. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Extensions\PowersOfAttorneyServerExtension\PowersOfAttorneyServerExtension.dllвКаталог-установки-Web-клиента\Extensions. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Extensions\PowersOfAttorneyServerExtension\PowersOfAttorneyServerExtension.resources.dllвКаталог-установки-Web-клиента\Extensions\ru. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Extensions\PowersOfAttorney.UserCard.Common\PowersOfAttorney.UserCard.Common.dllвКаталог-установки-Web-клиента\Extensions. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Extensions\PowersOfAttorney.UserCard.Common\PowersOfAttorney.UserCard.Common.resources.dllвКаталог-установки-Web-клиента\Extensions\ru.
-
-
Перезапустите dvappserver.
Проверка примера
|
Для проверки примера требуется установить версию Backoffice и Web-клиент с поддержкой СКД. |
-
В Менеджере решений импортируйте решение Машиночитаемая доверенность —
PowersOfAttorney\Data\SolutionOfPOA.sol. Рекомендуется использовать версию Менеджера решений версии 6.1 и выше.Компоненты данного решения:-
Справочник видов:
-
Документ — МЧД Доверенность (версия 002), Передоверие (версия 002), Доверенность (версия EMHCD_1), Передоверие (версия EMHCD_1).
-
Задание — Задание КС — На подписание МЧД, На согласование МЧД.
-
-
Метаданные: Полномочия, МЧД формат единой формы, Текстовые полномочия (а также все подчиненные).
-
Конструктор правил нумерации: МЧД.
-
Поиск: МЧД (МЧД все, МЧД действующие, МЧД — я автор, МЧД — я подписант, МЧД отозванные, МЧД мои, Поиск МЧД)
-
Представление: МЧД → МЧД единого формата — представление
-
Папка Доверенность для хранения маршрутов согласования и подчиненные папки для работы с доверенностями.
-
Согласование: маршрут "согласование и подписание МЧД единого формата" — согласование настроено на группу юридического отдела (справочник сотрудников), подписание настроено на группу генеральные директора (справочник сотрудников). Согласование параллельное, без ограничений по времени. Можно убрать участников при отправке на согласование.
-
-
В справочнике видов (тип: Согласование, вид: Усовершенствованное согласование) настройте согласование для видов карточек МЧД. В окне Настройка способа создания карточки выберите шаблон Согласование и подписание МЧД единый формат.
-
В программе Конструктор Web-разметок импортируйте решение Машиночитаемая доверенность. Для этого выберите файл
Solution.xmlв папке решенияPowersOfAttorney\Data\PowersOfAttorneySolution\. -
Проверьте, что в Справочнике сотрудников заполнены поля для участников МЧД как описано в пользовательской документации.
-
В Web-клиенте создайте карточку документ вида Доверенность (версия 002). Заполните обязательные поля.
Если заполнены не все обязательные поля, при сохранении будет выдано предупреждение.Чтобы создать свою разметку, необходимо:-
Добавить скрипт для отображения в модальном окне незаполненных обязательных полей
showRequiredFieldsв качестве обработчика событияПеред началом сохранения карточкиrootдля разметок создания и/или редактирования в конструкторе разметок. -
Добавить скрипт
customizePowerOfAttorneyCardForEditLayoutв качестве обработчика событияПосле загрузки всех ЭУдля root во всех разметках создания и редактирования карточки доверенности. -
Добавить скрипт
customizePowerOfAttorneyCardForViewCardв качестве обработчика событияПосле загрузки всех ЭУдля root во всех разметках просмотра карточки доверенности. -
Добавить скрипт
customizeSubstitutionPowerOfAttorneyCardForEditLayoutПосле загрузки всех ЭУдля root во всех разметках просмотра карточки передоверия. -
Добавить скрипт
customizeSubstitutionPowerOfAttorneyCardForViewLayoutв качестве обработчика событияПосле загрузки всех ЭУдля root во всех разметках просмотра карточки передоверия.
-
-
В Web-клиенте создайте карточку документ вида Доверенность (версия EMCHD_1). Заполните обязательные поля. Если заполнены не все обязательные поля, при сохранении будет выдано предупреждение.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт для отображения в модальном окне незаполненных обязательных полей
showRequiredFieldsв качестве обработчика событияПеред началом сохранения карточкиrootдля разметок создания и/или редактирования в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatPowerOfAttorneyForEditLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметок создания и редактирования карточки доверенности в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatPowerOfAttorneyForViewLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметок просмотра, описания и справки карточки доверенности в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatSPOACardForEditLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметок создания и редактирования карточки передоверия в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatSPOACardForViewLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметок просмотра, описания и справки карточки передоверия в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatPowerOfAttorneyForLocationLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметки локация карточки доверенности в конструкторе разметок. -
Добавить скрипт
customizeSingleFormatPowerOfAttorneyForLocationLayoutв качестве обработчика событияПосле загрузки всех ЭУrootдля разметки локация карточки передоверия в конструкторе разметок.
-
-
Нажмите кнопку создания МЧД. В результате будет создана МЧД, связанная с текущей карточкой документа.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
createPowerOfAttorneyв качестве обработчика событияПри щелчкедля кнопки в разметке просмотра карточки доверенности (версия 002) в конструкторе разметок. -
Добавить скрипт
createRetrustPowerOfAttorneyв качестве обработчика событияПри щелчкедля кнопки в разметках просмотра карточки передоверия (версия 002) в конструкторе разметок. -
Добавить скрипт
createEMCHDPowerOfAttorneyв качестве обработчика событияПри щелчкедля кнопки для разметок просмотра карточки доверенности (версия EMCHD_1) в конструкторе разметок. -
Добавить скрипт
createEMCHDRetrustPowerOfAttorneyв качестве обработчика событияПри щелчкена кнопку для разметок просмотра карточки передоверия (версия EMCHD_1) в конструкторе разметок.
-
-
Нажмите кнопку экспорта МЧД. На компьютер будет сохранён архив, содержащий файл МЧД в формате XML.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
exportPowerOfAttorneyWithoutSignatureв качестве обработчика событияПри щелчкедля кнопки в разметке просмотра карточки доверенности и передоверия в конструкторе разметок.
-
-
Если планируется отправлять доверенность на регистрацию в распределённый реестр ФНС через провайдеров внешнего ЭДО необходимо выполнить соответствующие настройки.
-
Для работы через Контур.Диадок выполните настройки описанные в документации модуля "Модуль интеграции с операторами ЭДО", раздел "Настройка работы с МЧД".
-
Для этого случая, в примере решения есть преднастроенные разметки: Доверенность версии 002 (просмотр)_Контур.Диадок и Доверенность версии EMCHD_1 (просмотр)_Контур.Диадок.
-
-
Для работы через Контур.Доверенность выполните настройки описанные в документации модуля "Интеграции с реестром МЧД", раздел "Настройка Модуля интеграции с реестром МЧД".
-
Для этого случая, в примере решения есть преднастроенные разметки: Доверенность версии 002 (просмотр)_Контур.Доверенность и Доверенность версии EMCHD_1 (просмотр)_Контур.Доверенность.
-
-
-
Нажмите кнопку подписания МЧД. Будет предложено выбрать сертификат подписи, выполнится подписание МЧД.
-
Для создания своей разметки нужно добавить скрипт
signPowerOfAttorneyв качестве обработчика событияПри щелчкена кнопку для разметок просмотра карточки доверенности и передоверия в конструкторе разметок. -
При работе через Контур.Диадок, для подписания и последующей регистрации доверенности по файлу нужно добавить скрипт
signAndSendPowerOfAttorneyToRegistrationAsFileв качестве обработчика событияПри щелчкена кнопку для разметки просмотра карточки доверенности. -
Если требуется разделить события подписания и отправки, можно воспользоваться скриптом
sendPowerOfAttorneyToRegistrationAsFile(он выполняет только отправку уже подписанной доверенности в реестр через Контур.Диадок). -
При работе через Контур.Доверенность, для подписания и последующей регистрации доверенности по файлу нужно добавить скрипт
signAndSendForRegistrationToRegistryв качестве обработчика событияПри щелчкена кнопку для разметки просмотра карточки доверенности. -
Если требуется разделить события подписания и отправки, можно воспользоваться скриптом
sendForRegistrationToRegistry(он выполняет только отправку уже подписанной доверенности в реестр через Контур.Доверенность).
-
-
Нажмите кнопку экспорта МЧД. На компьютер будет сохранён архив, содержащий файл МЧД в формате XML и его подпись.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
exportPowerOfAttorneyWithSignatureв качестве обработчика событияПри щелчкедля кнопки в разметки просмотра карточки доверенности и передоверия.
-
-
Нажмите кнопку отзыва МЧД.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
revokePowerOfAttorneyв качестве обработчика событияПри щелчкена кнопку для разметки просмотра карточки доверенности и передоверия (версия 002) в конструкторе разметок.
Чтобы создать свою разметку с отзывом без заявления, необходимо:-
Добавить скрипт
revokePowerOfAttorneyWithoutApplicationв качестве обработчика событияПри щелчкена кнопку для разметки просмотра карточки доверенности и передоверия в конструкторе разметок.
При работе через Контур.Доверенность-
Для формирования, подписания и последующей отправки заявления на отзыв в ЦПРР ФНС нужно добавить скрипт
revokeAndRecallPowerOfAttorneyв качестве обработчикаПри щелчкена кнопку отзыва для разметки просмотра карточки доверенности.
Если требуется разделить события формирования заявления и его отправки:-
Можно воспользоваться скриптом
recallPowerOfAttorney. Скрипт выполняет только отправку уже сформированного и подписанного заявления на отзыв через Контур.Доверенность.
-
-
Нажмите кнопку экспорта заявления на отзыв для доверенности и передоверия (версия 002). На компьютер будет сохранён архив, содержащий файл заявления на отзыв в формате XML и его подпись.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
exportApplicationForRevocationв качестве обработчика событияПри щелчкена кнопку для разметки просмотра карточки доверенности (версия 002) и передоверия (версия 002) в конструкторе разметок.
-
-
Нажмите кнопку удаления пользовательской карточки доверенности.
Из пользовательской карточки доверенности также удаляется системная карточка доверенности.
Чтобы создать свою разметку, необходимо:-
Добавить скрипт
deletePowerOfAttorneyв качестве обработчика событияПеред удалением карточкидляroot.
-
-
Доверенность можно подписать в ходе согласования.
Чтобы подписать доверенность в ходе согласования, необходимо:-
Отправить Доверенность на согласование как описано в пользовательской документации.
-
Нажать кнопку Подписать в Задании. В результате сформируется СКД, затем подпишется доверенность, ПКД перейдет в статус
Подписана, а задание перейдет в статусЗавершено. -
Для создания своей разметки нужно добавить скрипт
signAndSendPowerOfAttorneyToRegistrationAsFileFromTaskв качестве обработчика событияПеред выполнением операциина ЭУАвтомат состояниядля подписания и последующей регистрации доверенности по файлу.
Для подписания без регистрации используйте скриптsignPowerOfAttorneyFromTask.
-
Права доступа к СКД определяются дискреционной моделью и наследуются от ПКД. Права переходят по Сильной ссылке, в которую прописывается InstanceID СКД благодаря наличию поля POASysCardId типа RefCardID.
|
Пример скриптов для Windows клиента
-
Скрипт находится в файле
CardDocumentДоверенность__версия_EMHCD_1_Script.csв проектеPowersOfAttorney.Scripts -
Проект нужен только для проверки компилируемости скрипта. Ссылки на сборку
PowersOfAttorney.Scripts.dllдобавлять не надо. -
Скрипт необходимо скопировать в справочник скриптов для двух видов (для доверенности EMHCD и передоверия EMHCD). Если у родительского вида для этих видов нет скрипта, надо открыть его и сгенерировать для него скрипт по умолчанию.
-
Необходимо закомментировать в файле скрипта для обоих видов строчку
using CardDocumentМЧДScript = DocsVision.BackOffice.WinForms.ScriptClassBase;
Строка нужна только для компиляции файла скрипта в составе проекта
PowersOfAttorney.Scripts. -
Скрипты для этих видов отличаются только названиями классов. Необходимо для каждого вида оставить только одно соответствующее ему название класса (см. комментарий в скрипте).
-
В скриптах необходимо добавить ссылку на сборку
PowersOfAttorney.UserCard.Common.dll, которую также необходимо распространить на все клиентские рабочие места. -
В конструкторе разметок необходимо добавить кнопки (например в ленту). Названия кнопок должны соответствовать обработчикам в скрипте.
В скрипте обработчики выглядят как
имяКнопки__ItemClick();Если названия кнопки будут соответствовать обработчикам, то обработчики к кнопкам привяжутся автоматически, вручную их создавать не надо. -
Можно привязать к кнопкам соответствующие операции, чтобы кнопки были доступны только в тех состояниях, когда их нажатие имеет смысл.
API для работы с МЧД
Для работы с МЧД можно использовать перечисленные ниже классы API.
-
В
DocsVision.BackOffice.Cards.Web.Modelдобавлены новые для работы с машиночитаемыми доверенностями:-
CreatePowerOfAttorneyFnsDovBbRequestс полями:-
PowerOfAttorneyFnsDovBbData powerOfAttorneyData— данные создаваемой доверенности. -
Guid representative— представитель. -
Guid signer— подписант. -
Guid parentPowerOfAttorney— идентификатор родительской доверенности.
-
-
SignPowerOfAttorneyRequestс полями:-
Guid PowerOfAttorneyId— идентификатор доверенности. -
byte[] Signature— данные подписи.
-
-
-
В контроллер
PowerOfAttorneyApiControllerдобавлены новые методы:-
POST CreatePowerOfAttorney(CreatePowerOfAttorneyFNSDOVBBRequest request)— вызываетIPowerOfAttorneyService.CreatePowerOfAttorney(создание доверенности) с передачей полей изCreatePowerOfAttorneyFNSDOVBBRequest. -
GET GetMachineReadablePowerOfAttorney(Guid powerOfAttorneyId)— возвращает МЧД доверенности для подписания. -
POST AttachSignatureToPowerOfAttorney(AttachSignatureToPowerOfAttorneyRequest)— вызываетIPowerOfAttorneyService.AttachSignature, загружающий подпись в существующую доверенность и изменяющий статус доверенности.
-
Подробнее про использование API для работы с МЧД можно узнать из описания веб-API, см. раздел "Как работать с описанием веб-API".