IDocumentService.AddSignature — метод (Document, X509Certificate2, Boolean, ICollection<CardFieldSetting>)

Добавляет новую подпись в список подписей карточки и устанавливает ЭП на поля, основные и дополнительные файлы документа.

Синтаксис

BaseCardSignature AddSignature(Document document, X509Certificate2 cert, bool signAttachments, ICollection<CardFieldSetting> fields)
Параметры
document

Тип: Document

Документ

cert

Тип: System.Security.Cryptography.X509Certificates.X509Certificate2

Сертификат, которым будет выполнено подписание

signAttachments

Тип: System.Boolean

true — подписывать дополнительные файлы, иначе — false

fields

Тип: System.Collections.Generic.ICollection<CardFieldSetting>

Коллекция подписываемых полей типа CardFieldSetting, определённых для карточки в Справочнике видов карточек

Возвращаемое значение

Тип: BaseCardSignature

Подпись

Исключения

Исключение Условие

System.ArgumentNullException

Ошибка возвращается в случае, если не задан параметр document.

Заметки

Сертификат сотрудника может быть получен из карточки Настроек пользователя. Данный метод инициализирует новую подпись в виде объекта типа BaseCardSignature, которую использует при непосредственном подписании данных карточки Документ.

Примеры

Ниже приведён пример подписания документа, осуществляемое из скрипта самой карточки

using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Services;
using DocsVision.BackOffice.WinForms.Controls;

namespace BackOffice
{
 public class CardDocumentПримерScript : CardDocumentДокументУДScript
 {
  private void addSignature_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
  {

   IDocumentService documentService = base.CardControl.ObjectContext.GetService<IDocumentService>(); (1)
   bool cancel = false;

   var certificate = SelectCertificateForm.SelectCertificate(ref cancel, base.CardControl.ObjectContext); (2)
   if(cancel) return;

   var fields = documentService.GetKindSettings(base.BaseObject.SystemInfo.CardKind).DocumentSignature.Fields; (3)

   documentService.AddSignature((base.BaseObject as Document), certificate, false, fields); (4)
  }
 }
}
1 Получение сервиса для работы с карточкой Документ.
2 Отображение окна выбора сертификата. Простой сертификат может быть установлен, если присвоить certificate значение null.
3 Получение из параметров вида карточки полей, для которых предусмотрено подписание.
4 Осуществление подписания.