Атрибут типа «Документ»
Свойства атрибута
Структура атрибута типа «Документ»
- Атрибут типа «Документ» хранит одну или несколько ссылок на записи (документы) в системном шаблоне документа, к которым прикрепляются файлы (например, загруженные пользователями).
- В шаблоне документа имеется атрибут
currentRevision
(текущая версия), который хранит ссылку на запись в системном шаблоне версии. - В шаблоне версии имеются атрибуты
title
(имя) иcontent
(содержимое), которые хранят имя файла и ссылку на файл, физически хранящийся в папкеStreams
на сервере.
Извлечение файлов из атрибута помощью C#
Чтобы считать файл из атрибута типа «Документ» с помощью C#-скрипта, необходимо:
-
из текущей записи получить массив идентификаторов файлов, прикреплённых к атрибуту:
var fileIds = Api.TeamNetwork.ObjectService.GetPropertyValues(recordId, new [] {"documentAttributeSystemName"})`;
-
получить массив объектов с прикреплёнными файлами:
var attachedFileObjects = fileIds[docId].TryGetValue("Files", out object fileObject)
&& fileObject != null ? fileObject as object[] : null;
-
получить объект файла (
attachedFile
):var attachedFile = Api.TeamNetwork.DocumentService.GetContent(attachedFileObject[0].ToString());
-
получить имя файла с расширением (
attachedFile.Name
); - получить содержимое файла (
attachedFile.Data
); -
при необходимости получить объект с метаданными документа:
var attachedFile = Api.TeamNetwork.DocumentService.GetDocument(attachedFileObject[0].ToString());
attachedFile.Title
— имя файла с расширением;attachedFile.Extension
— расширение файла.
Добавление файлов в атрибут с помощью C#
Чтобы прикрепить к атрибуту типа «Документ» файл с помощью C#-скрипта, необходимо:
-
сформировать объект типа
Document
:var document = new Document
{
Title = "имя файла.расширение",
Extension = ".расширение"
};
-
сформировать массив байтов
byte[] fileBytes
с содержимым файла; -
из массива байтов создать поток
MemoryStream()
для прикрепления документа к атрибуту:var fileStream = new MemoryStream();
fileStream.Write(fileBytes, 0, fileBytes.Length);
fileStream.Seek(0, SeekOrigin.Begin);
-
преобразовать поток в объект документа для прикрепления к атрибуту:
string documentObject = Api.TeamNetwork.DocumentService.CreateDocumentWithStream(document, fileStream, "");
-
сформировать словарь из системного имени атрибута и объекта документа:
var documentDict = new Dictionary<string,object>
{
{ "DocumentAttributeSystemName", documentObject }
};
-
прикрепить результирующий документ к атрибуту записи
reсordId
:Api.TeamNetwork.ObjectService.EditWithAlias(reсordId, documentDict)
Префиксы N3 для работы с атрибутом
Для работы с атрибутом типа «Документ» в выражениях на N3 могут потребоваться следующие префиксы:
@prefix object: <http://comindware.com/ontology/object#>.
@prefix document: <http://comindware.com/ontology/document#>.
Извлечение файлов из атрибута с помощью N3
Чтобы считать файл из атрибута типа «Документ» с помощью выражения N3, необходимо:
-
получить объект с атрибутом:
("TemplateSystemName" "DocumentAttributeSystemName") object:findProperty ?DocumentAttribute.
-
из объекта с атрибутом получить значение атрибута в текущей записи:
?item documentAttribute ?documentAttributeValue.
-
из значения атрибута получить текущую версию документа:
?documentAttributeValue document:revision ?revision.
-
из версии получить содержимое файла в формате
base64
:?revision document:content ?content.
-
из версии получить имя файла:
?revision document:title ?title.
Добавление файлов в атрибут с помощью N3
Чтобы прикрепить к атрибуту типа «Документ» файл с помощью выражения N3, необходимо:
-
сформировать содержимое файла в формате
base64
:?documentContentSource document:content ?content.
-
сформировать имя файла:
?documentTitleSource document:title ?title.
-
прикрепить полученный файл к атрибуту типа «Документ», т. е. поместить на него ссылку в версию:
(?content ?title) document:attach ?documentAttributeValue.
Настройка свойств атрибута
Помимо общих свойств для атрибута типа «Документ» предусмотрены перечисленные ниже свойства.
-
«Формат отображения» — выберите способ представления загруженных файлов в полях атрибута на формах:
- «Без предпросмотра» — отображение только имен загруженных файлов;
- «С предпросмотром» — отображение миниатюр с содержимым загруженных файлов (поддерживаются только файлы PDF);
- «Документ с цифровой подписью» — отображение кнопок «Подписать» и «Перейти к форме» для работы с цифровыми подписями.
- «Фильтр расширений файлов» — выберите типы файлов, которые можно будет загрузить в атрибут: PDF, TXT, PNG, JPG, CSV, XLSX, DOCX, PPTX, VSDX, MSG, ZIP, BMP, EMF. Если не выбрано ни одно расширение, то можно будет загрузить файлы любых типов. Этот раскрывающийся список не отображается, если выбран формат отображения «С предпросмотром»
- «Хранить несколько значений» — установите этот флажок, чтобы в атрибут можно было загрузить несколько файлов (по умолчанию флажок установлен).
- «Удалять связанные записи» — установите этот флажок, чтобы можно было удалять загруженные в атрибут файлы.
- «Использовать для поиска записей» — установите этот флажок, чтобы записи шаблона можно было искать по именам и содержимому загруженных в атрибут файлов. См. раздел «Атрибуты для поиска записей шаблона».
Примеры использования
Ознакомьтесь с перечисленными ниже подробными статьями, а также простейшим примером настройки атрибутов типа «Документ».
- Клонирование записи вместе с прикреплёнными файлами
- Скачивание архива с файлами из всех строк таблицы с прикреплением архива к атрибуту;
- Скачивание архива с файлами из выбранных строк таблицы и записи
- Скачивание файлов в папку на сервере
Прикрепление к записи актов, приложений и документов на подпись
Конфигурация приложения
Атрибут | Формат отображения | Хранить несколько значений |
---|---|---|
Акты | Без предпросмотра | Флажок установлен |
Приложение | С предпросмотром | Флажок снят |
Документы на подпись | Документ с цифровой подписью | Флажок установлен |
Результирующее поведение
Эта статья была полезна 2 чел.