Документ
Назначение |
Карточки данного типа предназначены для работы с файлами: хранения файлов в различных форматах, предварительный просмотр, учет версий, экспорта в различные форматы, наложение электронных подписей в формате |
Класс карточки |
Для работы с карточкой предназначен сервис IDocumentService
, с помощью которого можно выполнять различные операции с документом, начиная с создания документа, и заканчивая работой с файлами и подписями документа.
-
Создание документа.
-
Синхронизация свойств с файлом.
-
Управление подписями документа.
-
Работа с файлами документа.
-
Экспорт документа.
Далее перечислены базовые сценарии работы с объектной моделью карточки "Документ", для которых действительно следующее:
-
Контекст объектов может быть получен в соответствии с примером, приведенным в разделе Инициализация контекста объектов.
-
Сервисы получаем стандартным способом:
IDocumentService documentService = objectContext.GetService<IDocumentService>(); (1) ILinkService linkService = objectContext.GetService<ILinkService>(); (2) IReferenceListService referenceListService = objectContext.GetService<IReferenceListService>(); (3) IStaffService staffService = objectContext.GetService<IStaffService>(); (4) IStateService stateService = objectContext.GetService<IStateService>(); (5)
1 Сервис для работы с документами. 2 Сервис для работы со "Справочником ссылок". 3 Сервис для работы со списками ссылок. 4 Сервис для работы со "Справочником сотрудников". 5 Сервис для работы с "Конструктором состояний". -
Воспользуйтесь поиском, чтобы получить информацию по классам и переменным, используемым в примерах.
Создание нового Документа
static void CreateDocument()
{
KindsCardKind kind = objectContext.GetObject<KindsCardKind>(new Guid("8E40F327-9517-4A43-998D-BF2BD619588D")); (1)
Document document = documentService.CreateDocument(null, kind);
document.Description = "Дайджест карточки Документ"; (2)
document.MainInfo.Name = "Название документа"; (3)
document.MainInfo.Author = document.MainInfo.Registrar = staffService.GetCurrentEmployee(); (4)
document.MainInfo["Content"] = "Содержимое документа"; (5)
objectContext.SaveObject(document);
}
1 | Получение вида карточки Исходящий. |
2 | Создание документа. |
3 | Отображается в сетке Windows-клиента. |
4 | Отображается при открытии карточки. |
5 | Регистратор/подготовил, а также автор. |
Добавление основного файла в Документ
static void AddFile()
{
string filePath = @"z:\Sample.docx"; (1)
Document document = objectContext.GetObject<Document>(new Guid("00000000-0000-0000-0000-000000000000")); (2)
documentService.AttachMainFile(document, filePath);
objectContext.SaveObject<Document>(document); (3)
}
1 | Прикрепляемый документ. |
2 | Получение документа, к которому добавляется файл. |
3 | Добавление основного документа. |
Добавление в "Документ" ссылки на другую карточку
static void AddLink()
{
Document document = objectContext.GetObject<Document>(new Guid("00000000-0000-0000-0000-000000000000"));
BaseCard addedCard = objectContext.GetObject<BaseCard>(new Guid("00000000-0000-0000-0000-000000000001")); (1)
LinksLinkType linkType = linkService.FindLink("В ответ на"); (2)
referenceListService.CreateReference(document.MainInfo.ReferenceList, linkType, addedCard, "Ссылка на документ", false); (3)
}
1 | Получение документа, в который добавляется ссылка на карточку. |
2 | Получение типа ссылки. |
3 | Добавление ссылки в список ссылок документа document. |
Смена состояния Документа
static void ChangeDocumentState()
{
Document document = objectContext.GetObject<Document>(new Guid("00000000-0000-0000-0000-000000000000")); (1)
StatesState endState = stateService.GetStates(document.SystemInfo.CardKind).First(t => t.DefaultName.Equals("Is signed")); (2)
stateService.ChangeState(document, endState); (3)
}
1 | Получение документа. |
2 | Получение конечного состояния "Документа". В данном случае — Подписан. |
3 | Смена состояния. |
Подписание "Документа" и основных файлов
static void SignDocument()
{
Document document = objectContext.GetObject<Document>(new Guid("00000000-0000-0000-0000-000000000000")); (1)
ICollection<CardFieldSetting> fields = documentService.GetKindSettings(document.SystemInfo.CardKind).DocumentSignature.Fields; (2)
documentService.AddSignature(document, GetCertificate(), false, fields); (3)
objectContext.SaveObject(document);
}
1 | Получение подписываемого документа. |
2 | Получение списка полей, которые должны быть подписаны. Настройки получаем из "Справочника видов карточек". |
3 | Подписание документа. Будут подписаны только основные файлы и отдельные поля карточки. Дополнительные файлы подписаны не будут. |