ITaskService.AddChildCopyField — метод (Task)

Добавляет в настройки задания параметры копирования поля из родительского задания в дочернее.

Синтаксис

TaskPresetChildCopyField AddChildCopyField(Task task)
Параметры
task

Тип: Task

Задание, для которого выполняется настройка

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

Тип: TaskPresetChildCopyField

Объектная модель копируемого поля

Заметки

Данный метод позволяет добавить настройку копирования полей из родительского задания в подчиненное для отдельной карточки Задания. Указанные поля (дополнительно к тем, что определённы в Справочнике видов карточек) будут скопированы в подчиненное задание при создании из родительской карточки.

Примеры

В приведенном примере демонстрируется использование метода 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 Формирование пути к секции.