<< Click to Display Table of Contents >> Разработка > Элементы разработки > Разработка задач и заданий > Работа с вложениями Добавление и удаление вложений |
![]() ![]() |
По умолчанию сотрудники могут добавлять или удалять вложения только до старта задачи или до выполнения задания. При этом сотрудник может удалять только свои вложения, хотя видит чужие. Если вложения поделены на группы и изменять их состав разрешено разработчиком, то удалять вложения других сотрудников и добавлять свои можно в любой отображаемой группе.
Важно. Тип задания, задания на приемку и уведомления наследует группы вложений типа задачи, в которой он создан. Группы, полученные при наследовании, отображаются серым цветом в редакторе форм. Их можно скрыть или изменить доступность. Тип задания или тип уведомления, реализованный в рамках модуля, не может получить группу вложений, созданную для конкретного типа задачи.
Рассмотрим, как добавить вложения в задачу на свободное согласование. Вложения в задания добавляются аналогичным образом. Предположим, нужно выделить группы вложений:
•«На согласование». В группе будет один документ для согласования типа ElectronicDocument;
•«Приложения». В группе будут документы, которые связаны с согласуемым документом типом связи Приложение. Группа недоступна для изменения;
•«Дополнительно». В группе будут ссылки на любые объекты системы.
Чтобы добавить вложения:
1.В дереве типа задачи выделите узел «Форма» и перейдите на вкладку «Панель элементов».
2.Добавьте на форму элемент Группа вложений.
3.Задайте свойства для группы вложений:
*Имя. Должно быть уникальным в рамках типа сущности, состоять из букв латинского алфавита и цифр.
*Идентификатор. Используется для настройки прав доступа на вложения при разработке схемы в блоке «Задача». Поле доступно только для просмотра. Чтобы скопировать идентификатор, нажмите на кнопку Скопировать.
*Отображаемое имя. Заголовок группы вложений в карточке задачи.
Подсказка, которая отображается, если в группе нет вложений. Чтобы в подсказке отображался текст «Вложений нет», оставьте поле незаполненным.
Для локализации отображаемого имени и подсказки нажмите на кнопку Локализовать.
Обязательная. Пользователям обязательно нужно добавить вложения в группу. Например, установите флажок для группы «На согласование», чтобы в задачу обязательно вложили согласуемый документ.
Доступная. Пользователи смогут изменять состав вложений в группе. Например, снимите флажок для группы «Приложения», чтобы пользователи вручную не меняли состав вложений в группе, которая заполняется автоматически.
Разрешить удаление вложений. Можно изменить, если установлен флажок в поле Доступная. Пользователи смогут удалять лишние или случайно добавленные вложения. Параметр доступен в задачах, если в область вложений добавлены группы. В заданиях отображается для групп, унаследованных от типа «Задача». Например, в процессе согласования документа дополнительно добавлены ссылки на другие документы. Если флажок установлен, инициатор задачи или участники согласования могут удалять любые лишние ссылки в задании до его выполнения или в прекращенной задаче до ее рестарта. При этом вложения удаляются и из задачи. Для этого у участников должны быть права на изменение. Если флажок не установлен, удалять можно только свои вложения. Удаление вложений записывается в историю. По умолчанию флажок не установлен.
Особенности:
•при установке флажка в типе задачи он автоматически устанавливается в связанных заданиях. При снятии в задаче аналогично снимается в задании;
•при установке в типе задания флажок в задаче не ставится;
•если в базовом решении в типе задачи установлен флажок, то при перекрытии его можно снять. При этом автоматически снимется флажок и в связанном типе задания. Если в базовом решении в типе задачи флажок не установлен, то его можно установить. В этом случае в типе задания флажок автоматически не подставится;
•в перекрытом типе задания можно снимать и устанавливать флажки;
•если вложение добавлено в задаче и удаляется из задания, то событие удаления генерируется только после сохранения карточки задания;
•флажок не отображается, если задано событие Заполнение вложений, так как в нем разрешено удаление вложений.
Учитывать вложения от родительских сущностей. Если флажок установлен, при создании из задания подзадачи того же типа, в ней автоматически отображаются те же вложения. Например, установите флажок для группы «Дополнительно», чтобы в ней при создании подчиненного поручения отображались вложения из поручения.
Использование флажка позволяет оптимизировать заполнение групп вложений, так как разработчику не нужно писать код для их копирования из задания в подзадачу. В результате снижается нагрузка на базу данных, так как в ней не создаются дубли вложений.
ВАЖНО. Если флажок установлен, то вложения группы привязываются к родительской задаче, а в подзадачах – вычисляются. Из-за этого при поиске задач, в которые вложен документ, в результатах родительские задачи отображаются, а подзадачи – нет.
4.Чтобы пользователи добавляли в группу «На согласование» ссылки только на определенный тип сущности, добавьте в группу элемент Тип сущности:
5.Задайте свойства:
Наименование. Недоступно для изменения. Задается автоматически при указании типа сущности.
Тип сущности. Пользователи смогут добавлять в группу ссылки на сущности указанного типа. Для группы «На согласование» укажите тип ElectronicDocument.
Количество ссылок, которое должно быть в группе. Если значение не указано, в группу можно добавить любое количество ссылок. Для группы «На согласование» укажите значение «1», чтобы пользователи добавляли в группу только один согласуемый документ.
Отключить. Установите флажок, если группа получена при перекрытии задачи и нужно снять все ограничения на вложения в группе. Флажок можно установить для типов сущностей, которые добавлены в группу вложений на рабочем слое. Для типов сущностей, добавленных на базовом слое, флажок недоступен.
6.Добавьте обработчики для событий создания, добавления, удаления и заполнения вложений. Например, задайте обработчик, чтобы в группу «Приложения» автоматически попадали ссылки на документы, которые связаны с согласуемым документом типом связи Приложение.
Для этого в дереве выделите группу «На согласование». В свойствах группы установите флажок рядом с событием Добавление вложения и нажмите на ссылку Перейти к коду. В открывшемся редакторе добавьте код обработчика:
public virtual void ForApprovalGroupAdded(Sungero.Workflow.Interfaces.AttachmentAddedEventArgs e)
{
var document = _obj.ForApprovalGroup.ElectronicDocuments.First();
// Убрать лишние кавычки и переносы строк в имени документа.
using (TenantInfo.Culture.SwitchTo())
_obj.Subject = Functions.Module.TrimSpecialSymbols(FreeApprovalTasks.Resources.TaskSubject, document.Name);
if (!_obj.State.IsCopied)
{
// Синхронизировать приложения документа и группы вложения.
// AddendaGroup - группа вложений "Приложения".
Functions.Module.SynchronizeAddendaAndAttachmentsGroup(_obj.AddendaGroup, document);
if (OfficialDocuments.Is(document))
// Добавить связанные документы в группу вложения.
Functions.OfficialDocument.AddRelatedDocumentsToAttachmentGroup(OfficialDocuments.As(document), _obj.OtherGroup);
}
// Обработать добавление документа как основного вложения в задачу.
if (OfficialDocuments.Is(document))
Functions.OfficialDocument.DocumentAttachedInMainGroup(OfficialDocuments.As(document), _obj);
}
7.Добавьте нужное количество групп вложений и задайте их свойства.
Совет. Чтобы изменить расположение группы в области вложений, перетащите ее в нужное место.
В результате в карточке задачи появятся группы вложений «На согласовании», «Приложения» и «Дополнительно».
© Компания Directum, 2024 |