ITaskService.AddChildCopyField — метод (Task)
Добавляет в настройки задания параметры копирования поля из родительского задания в дочернее.
-
Пространство имён:
DocsVision.BackOffice.ObjectModel.Services
-
Сборка:
DocsVision.BackOffice.ObjectModel.dll
Синтаксис
TaskPresetChildCopyField AddChildCopyField(Task task)
- Параметры
-
- task
-
Тип:
Task
Задание, для которого выполняется настройка
- Возвращаемое значение
-
Объектная модель копируемого поля
Заметки
Данный метод позволяет добавить настройку копирования полей из родительского задания в подчиненное для отдельной карточки Задания. Указанные поля (дополнительно к тем, что определённы в Справочнике видов карточек) будут скопированы в подчиненное задание при создании из родительской карточки.
Примеры
В приведенном примере демонстрируется использование метода AddChildCopyField
при добавлении полей, копируемых в подчиненное задание.
(1)
IMetadataProvider metadataProvider = objectContext.GetService<IMetadataProvider>();
ITaskService taskService = objectContext.GetService<ITaskService>(); (2)
Task task = objectContext.GetObject<Task>(new Guid("00000000-0000-0000-0000-000000000000")); (3)
TaskPresetChildCopyField taskPresetChildCopyField = taskService.AddChildCopyField(task); (4)
DocsVision.Platform.Data.Metadata.CardModel.SectionField sectionField = metadataProvider.GetField(new Guid("F5C843C0-5CE1-4727-81BF-0C764A43243B"));
DocsVision.Platform.Data.Metadata.CardModel.CardSection section = sectionField.GetParent<DocsVision.Platform.Data.Metadata.CardModel.CardSection>(); (5)
taskPresetChildCopyField.SectionName = section.Name;
taskPresetChildCopyField.FieldId = sectionField.Id;
taskPresetChildCopyField.FieldName = sectionField.DisplayName.GetLocalization(System.Globalization.CultureInfo.CurrentCulture);
taskPresetChildCopyField.FieldAlias = sectionField.Name; (6)
Stack<Guid> sections = new Stack<Guid>(); (7)
while (section != null)
{
sections.Push(section.Id);
section = section.GetParent<DocsVision.Platform.Data.Metadata.CardModel.CardSection>();
}
taskPresetChildCopyField.SectionPath = CardFieldSetting.BuildSectionPath(sections);
objectContext.SaveObject<Task>(task);
1 | Инициализация контекста объектов. |
2 | Получение необходимых сервисов. |
3 | Получение задания. |
4 | Добавление настройки копирования поля. |
5 | Получение поля "Название" из секции "Задание". |
6 | Определение значений копируемого поля. |
7 | Формирование пути к секции. |