Быстрый старт с ЭЦП
Для того, чтобы ваш документ мог быть подписан ЭЦП, достаточно включить функцию при дизайне типа документа:
Система поддерживает разных поставщиков ЭЦП, но в бесплатную версию входит лишь Microsoft крипто-провайдер. Убедитесь, что в свойствах в администрировании он выбран.
После этого вы должны получить сертификат (собственно ваш приватный-публичный ключ), обычно это делается через центр сертификации в домене Windows.
Подпись документа ЭЦП
Подписать документ ЭЦП достаточно легко — требуется стать на вкладку ЭЦП, и нажать одну кнопку, как показано на рисунке ниже:
Как видим, по умолчанию система подписывает только вложенные файлы, но не поля карточки.
С чем это связано? Ответ прост: если вы создали свой тип документа, то никто не может знать, в какой момент времени и какие поля вы планируете заполнять. Следовательно, подписывать «все подряд» - плохая идея, ведь если изменить хоть что-либо — ЭЦП нарушается.
Важно отметить, что большинство систем документооборота ограничиваются лишь подписью файлов-вложений к карточке, и скорее всего в 99% случаев вам будет этого достаточно для работы и полноценной защиты. В этом случае, вы можете не уделять внимание всему, что описано ниже - про "Расширенную настройку ЭЦП".
Если же вам все же нужно подписать не только вложенные файлы, но например еще и несколько полей карточки, и дочерние документы? Для этого потребуется настроить все это.
Расширенная настройка ЭЦП
Внимание! Описанное в данном разделе ниже предполагает понимание и владение расширенным администрированием. Всегда создавайте резервные копии (бекап базы) при подобных операциях, а также испытывайте все на тестовом сервере, а не сразу на рабочей системе.
Допустим мы имеем тип документа «Договор», в нем вложенные файлы, два поля, и дочерние документы «Дополнительные соглашения». Мы планируем настроить ЭЦП так, чтобы одним нажатием кнопки выполнялась подпись карточки «Договор», его файлов, а также всех дочерних документов «Дополнительные соглашения» и их файлов.
Внешний вид карточки «Договор» и карточки «Дополнительное соглашение»
Наши документы, на которых мы будем испытывать ЭЦП — «Договор» и дочерний в нем «Дополнительное соглашение».
В вкладке «Дополнительные соглашения» можно создавать такие документы:
Создание нового типа ЭЦП
Под «Тип ЭЦП» мы понимаем набор свойств, который нужно подписывать.
Создаем новый тип ЭЦП:
Заполните свойства:
Список подписываемых полей
В окне списка полей требуется ввести уникальные имена. Узнать уникальные имена полей вы можете узнать, раскрыв свойствах каждого поля, например:
Теперь мы можем заполнить «Список подписываемых полей»: берем уникальные имена «Содержание» и «Корреспондент» - EDMS_FIELD_DOCUMENT_CONTENT и EDMS_FIELD_KORRESPONDENT, в итоге:
Теперь наш тип ЭЦП почти готов. Но его нужно «связать» с нашим типом документа «Договор». Для этого сохраните и закройте карточку «Тип ЭЦП», и в ветку «Типы документов» вставьте ссылку на свой тип документа, как показано на рисунке ниже:
Взять ссылку вы можете из своей библиотеки, или просто скопируйте из вкладки «Объект» у типа документа его идентификатор.
Проверка работы «Договора» с нашим типом ЭЦП
После описанных действий, снова идем на вкладку «ЭЦП» у документа-договора, и пробуем просмотреть список подписываемых полей, видим вот что:
Все получилось, так, как мы и задумали, но нам еще нужны «Вложенные файлы». Но нужно понимать, что вложенный файл это не просто «поле» в документе, а это полноценный объект в системе, у которого есть свои поля (например имя файла и тело файла). К счастью, подключить подпись вложенных файлов достаточно легко — просто скопируйте ссылку на объект «Подпись вложенных файлов» из других типов ЭЦП, например из «Документ»:
После такой манипуляции ЭЦП будет подписывать не только два поля в карточке, но и каждый вложенный файл в документе.
Как автоматически подписать ЭЦП дочерние документы
Разумеется по аналогии вы можете настроить тип ЭЦП и для всех дочерних документов. Но не очень удобно каждый раз нажимать кнопку, особенно если мы создали вначале «Договор», потом тут же создали в нем дочернее «Дополнительное соглашение». Нам нужно чтобы после всего того, как документы созданы, «подписать» их одним нажатием.
Этот вопрос решает технология «Подпись подобъектов». Рассмотрим как самому создать такую запись, аналогичную «Подпись файлов-вложений», которую мы использовали выше.
Этап 1: настроить тип ЭЦП для дочернего типа документа
Вначале настройте ЭЦП для дочернего типа документа, аналогично как мы делали для «Договора» (раздел "Создание нового типа ЭЦП") . Визуально отличий не будет, разве что у вас будут другие наборы полей.
Этап 2: создайте запись в контейнере «Подпись подобъектов»
Стоя на типе ЭЦП «Договор», в его контейнере «Подпись подобъектов» создайте новую запись, заполните так, как показано на рисунке ниже:
Сохраните и закройте форму. Теперь, последний этап — указать ссылку на поле, которое хранит в себе собственно «Дополнительные соглашения»:
Проверка результата
В финале проверяем какие атрибуты подписывает ЭЦП:
Если теперь мы создадим «Договор», создадим в нем набор дочерних документов, все сохраним, прямо на «Договоре» нажмем «Подписать ЭЦП», то система подпишет нам сам договор, его поля, его файлы, а также обойдет каждое «доп.соглашение» и аналогично подпишет и его.