Работа с машиночитаемой доверенностью
Данный пример, расположенный в репозитории Docsvision на GitHub, содержит методы работы с МЧД для Web-клиента и для Windows-клиента.
Ссылка на пример на GitHub: PowersOfAttorney.
Пример рассчитан на версию Web-клиента 6.1 или выше.
-
Модуль Базовые объекты версии 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
.
-
Права доступа к СКД определяются дискреционной моделью и наследуются от ПКД. Права переходят по Сильной ссылке, в которую прописывается RowID СКД благодаря наличию поля 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".