Работа с машиночитаемой доверенностью
Данный пример, расположенный в репозитории Docsvision на GitHub, содержит методы работы с МЧД для Web-клиента и для Windows-клиента.
-
Visual Studio 2017/2019
-
NodeJS v14.17.0+
Ограничения примера
-
Виды передоверия в примере предназначены только для ознакомления. Для их использования необходима доработка под ситуации, не требующие нотариального удостоверения. По умолчанию создание карточек данных видов запрещено.
-
Формат 5.01 не реализован.
-
Для формата 002 не реализованы следующие сценарии:
-
Основная доверенность
Доверитель Лицо, действующее без доверенности от имени доверителя Представитель Российское юридическое лицо
Юридическое лицо
Организация / Индивидуальный предприниматель
Иностранное юридическое лицо
Все типы
Все типы
Индивидуальный предприниматель
Все типы
Все типы
Физическое лицо
Все типы
Все типы
-
Передоверие
Лицо, передавшее полномочия Лицо, получившее полномочия Российское юридическое лицо
Все типы
Индивидуальный предприниматель
Все типы
Физическое лицо
Организация/ Индивидуальный предприниматель
-
Нотариальное удостоверение доверенностей.
-
-
Для формата EMCHD_1 (003) не реализованы следующие сценарии:
-
Основная доверенность
Доверитель Единоличный исполнительный орган Представитель Российское юридическое лицо
Управляющая компания/ Индивидуальный предприниматель
Юридическое лицо/ Индивидуальный предприниматель/ Филиал (обособленное подразделение) российского юридического лица/ Филиал (аккредитованное представительство) иностранного юридического лица
Иностранное юридическое лицо
Все типы
Все типы
Индивидуальный предприниматель
Все типы
Все типы
Физическое лицо
Все типы
Все типы
-
Передоверие
Лицо, передавшее полномочия Лицо, получившее полномочия Российское юридическое лицо
Все типы
Индивидуальный предприниматель
Все типы
Физическое лицо
Юридическое лицо/ Индивидуальный предприниматель/ Филиал (обособленное подразделение) российского юридического лица/ Филиал (аккредитованное представительство) иностранного юридического лица
Филиал (обособленное подразделение) российского юридического лица
Все типы
Филиал (аккредитованное представительство) иностранного юридического лица
Все типы
-
Нотариальное удостоверение доверенностей.
-
Описание примера
-
— папка с серверным расширением Web-клиента, в котором реализованы функции создания СКД из демонстрационной карточки доверенностей.
-
— папка с клиентским расширением, в котором реализованы обработчики смены состояния ПКД и управления МЧД, видимостью и обязательностью полей.
-
-– папка с расширением конструктора разметок, в котором реализовано описание элемента управления для группового подписания.
-
— папка с проектомPowersOfAttorney.UserCard.Common
, который используется и для Web-клиента и для Windows-клиента. -
— содержит файл скрипта для Windows клиента.
-
— папка с решением, включающим разметки тестовой карточки доверенности.
-
— решение, добавляющее в систему Docsvision новые виды карточки Документ (Доверенность и Передоверие) и необходимые расширенные метаданные.
Сборка проекта
-
Сборка серверной части.
-
Откройте решение
. -
Соберите проект
PowersOfAttorneyServerExtension
. -
Соберите проект
PowersOfAttorneyDesignerExtension
.
-
-
Сборка клиентской части.
-
Откройте в командной строке папку
. -
Выполните команды:
$ npm install $ npm update $ npm run build:prod
-
-
Публикация компонентов на сервере Web-клиент.
-
Скопируйте папку
PowersOfAttorney\SamplesOutput\Site\Content\Modules\PowersOfAttorneyWebExtension
вКаталог-установки-Web-клиента\Site\Content\Modules
. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Site\Extensions\PowersOfAttorneyServerExtension\PowersOfAttorneyServerExtension.dll
вКаталог-установки-Web-клиента\Site\Extensions
. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Site\Extensions\PowersOfAttorneyServerExtension\PowersOfAttorneyServerExtension.resources.dll
вКаталог-установки-Web-клиента\Site\Extensions\ru
. -
Скопируйте содержимое
PowersOfAttorney\SamplesOutput\Plugins
вКаталог-установки-Web-клиента\Plugins
. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Site\Extensions\PowersOfAttorney.UserCard.Common\PowersOfAttorney.UserCard.Common.dll
вКаталог-установки-Web-клиента\Site\Extensions
. -
Скопируйте файл
PowersOfAttorney\SamplesOutput\Site\Extensions\PowersOfAttorney.UserCard.Common\PowersOfAttorney.UserCard.Common.resources.dll
вКаталог-установки-Web-клиента\Site\Extensions\ru
.
-
-
Перезапустите IIS.
Проверка примера
-
В Менеджере решений импортируйте решение Машиночитаемая доверенность —
PowersOfAttorney\Data\SolutionOfPOA.sol
. Рекомендуется использовать версию Менеджера решений 5.5.3494.35 и выше.Компоненты данного решения:-
Справочник видов:
-
Документ — МЧД Доверенность (версия 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
в качестве обработчика событияПеред выполнением операции
на ЭУАвтомат состояния
для подписания и последующей регистрации доверенности по файлу. -
При работе через Контур.Доверенность, для создания своей разметки нужно добавить скрипт
signAndSendPowerOfAttorneyToKonturForRegistrationAsFileFromTask
в качестве обработчика событияПеред выполнением операции
на ЭУ StateButtons для подписания и последующей регистрации доверенности по файлу.
Для подписания без регистрации используйте скриптsignPowerOfAttorneyFromTask
.
-
-
Проверить текущий статус доверенности можно при работе через сервис Контур.Доверенность. Для этого в разметку ПКД необходимо добавить соответствующую кнопку, на которую нужно добавить скрипт
checkPowerOfAttorney
в качестве обработчика событияПри щелчке
. Также в разметке должен быть добавленЖурнал обмена с реестром МЧД
, с назначеннымLogTransferPlugin
(по аналогии со стандартными, преднастроенными разметками для сервиса Контур.Доверенность). После ответа сервиса, информация о текущем статусе доверенности появится в этом ЭУ. -
После подписания доверенность будет отправлена на регистрацию в распределённый реестр ФНС с использованием ящика, выбранного при настройке ЭУ или с использованием ящика по умолчанию.
Права доступа к СКД определяются дискреционной моделью и наследуются от ПКД. Права переходят по Сильной ссылке, в которую прописывается RowID СКД благодаря наличию поля POASysCardId типа RefCardID .
|
Групповая операция подписания доверенностей
Пример МЧД также включает пример реализации групповой операции Подписать доверенности. Групповая операция подписания получает данные из скрытых колонок представления. Модифицированное представление включено в основное решение МЧД, для работы групповой операции необходимо настроить разметки в программе Конструктор Web-разметок.
-
Выполните описанные выше шаги по сборке и добавлению общей функциональности примера.
-
Скопируйте файл
PowersOfAttorney\SamplesOutput\Plugins\signPOABatchOperationControl.xml
в каталогПуть-к-установленному-Web-клиенту\Plugins
-
Перезапустите IIS.
-
В конструкторе разметок сделайте разметку DV.Folder_M4D активной.
-
Добавьте групповую операцию
Подписать доверенности
в разметку папки в конструкторе разметок. -
Откройте папку с ПКД в представлении МЧД единого формата - представление. В представлении должны присутствовать поля Состояние и Идентификатор вида (могут быть скрытыми).
-
Опционально. Для отправки на регистрацию уже подписанных документов добавьте в разметки кнопку Отправить с обработчиком
sendPowerOfAttorneyToRegistrationAsFile
. Привяжите видимость кнопки к операции редактирования Отправка доверенности на регистрацию.Управлять видимостью кнопки Отправить возможно с помощью клиентского скрипта. Необходимо получить текущий статус регистрации МЧД с помощью метода
getPowerOfAttorneyRegistrationStatus
сервиса$EdiPowerOfAttorney
(пример web-расширения Модуль интеграции с операторами ЭДО).В скрипте, в зависимости от полученного статуса, скрывайте/показывайте кнопку Отправить. Пример получения статуса регистрации можно найти в методе
edi_getPowerOfAttorneyRegistrationStatus
примера web-расширения Модуль интеграции с операторами ЭДО. -
Выделите при помощи флагов документы для подписания. На панели групповых операций нажмите кнопку Подписать доверенности.
-
При необходимости проверьте подписываемые документы, нажимая на ссылки карточек в открывшемся окне подтверждения, и нажмите OK.
-
Убедитесь, что подписание прошло корректно на нескольких документах.
При необходимости можно настроить свойство Столбцы представления для презентации
ЭУ Подписать доверенности
в программе Конструктор Web-разметок. Укажите через запятую названия колонок представления, выбранных для отображения.
Если в выбор документов в таблице попадет документ, недоступный для подписания по состоянию или настройкам, будет выведено сообщение об ошибке, и подписания документа не произойдет. Для остальных документов процесс подписания будет продолжен. |
-
Выберите в представлении одну и более пользовательских карточек доверенности с помощью флага в представлении и нажмите кнопку Подписать доверенности.
-
В окне подтверждения ознакомьтесь с подписываемыми доверенностями, подтвердите действие.
-
Выберите сертификат для подписания доверенностей и нажмите ОК. Системой будет выполнена проверка возможности подписания выбранных карточек. В случае неудачного подписания по окончании обработки будет выведено сообщение с указанием карточек, обработанных с ошибкой.
-
Если необходимо отправить доверенность на регистрацию, это можно выполнить индивидуально для каждой доверенности, требующей подписания. Для этого перейдите в карточку доверенности, требующей отправки на регистрацию в распределённый реестр ФНС, и нажмите кнопку Отправить. Доверенность будет отправлена на регистрацию с использованием ящика, выбранного при настройке ЭУ или с использованием ящика по умолчанию.
Пример скриптов для 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 с поддержкой СКД:
-
Минимальные версии:
-
Базовые объекты версии 5.5.5, сборка 8650 и выше.
-
Web-клиент версии 5.5.17, сборка 6478.177 и выше.
-
-
Рекомендованные версии:
-
Базовые объекты версии 5.5.5 сборка 8706 и выше.
-
Web-клиент версии 5.5.17, сборка 6478.206 и выше.
-
Консоль управления Docsvision версии 5.5.1, сборка 254 и выше.
-
Служба фоновых операций версии 5.5.2, сборка 139 и выше.
-
Модуль интеграции с реестром МЧД версии 5.5.1, сборка 182 и выше.
-
-
В
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 для работы с МЧД можно узнать из описания REST API, см. раздел "Как работать с описанием REST Web-API".