Тип мастер-данных

Тип данных, который будет использован в дальнейшем в платформе для ведения мастер-данных можно создать вручную или загрузить соответствующую шаблонную конфигурацию. Ниже приводятся оба варианта.

Создание типа данных в ручном режиме

Для создания типа мастер-данных в ручном режиме:

  1. В ЦН перейдите в раздел Типы данных.

  2. Нажмите на кнопку +.

  3. В открывшемся окне введите Название и Имя нового типа данных.

  4. Установите флажок Сохраняемый тип данных, что в дальнейшем обеспечит сохранение экземпляров данного типа мастер-данных в Банке данных.

  5. Перейдите на вкладку Структура, и с помощью кнопки + добавьте требуемое количество полей типа, указав название, тип и размерность типа (при необходимости) для каждого поля. Для каждого поля можно указать функцию проверки, которая будет вызвана при заполнении данных на Портале. Для этого:

    1. Выберите поле типа данных.

    2. Нажмите на кнопку Выбор функции для проверки.

    3. Выберите нужную функцию проверки и нажмите на кнопку Выбрать (если функции проверки не существует, ее можно создать отдельно и отредактировать тип мастер-данных, добавив требуемую функцию).

    У поля появится значок в столбце Проверка.

  6. При необходимости можно указать категории, привязываемые к данному типу данных, на вкладке Категории (выбор категорий осуществляется простой установкой галочек в чек-боксах).

  7. Сохраните тип данных и применить конфигурацию.

С этого момента тип мастер-данных можно использовать для работы.

Создание типа мастер-данных в автоматизированном режиме

Для данного примера используется специальный шаблон. Данный шаблон можно использовать согласно описанию, представленному в разделе Загрузка шаблона.

Просмотр типа данных

Для просмотра типа данных откройте раздел ЦН Типы данных и произведите либо визуальный поиск, либо поиск посредством фильтров таблицы с типами данных.

../../../../_images/port19.png
../../../../_images/port17.png

Таблица с данными

В рамках добавления объекта конфигурации в меню указано как добавить в раздел на Портале таблицу с данными.

В данном разделе показаны приемы настройки таблицы.

Изменение количества столбцов таблицы

Как и все настройки объектов, настройка таблицы располагается в соответствующем объекте конфигурации в разделе Конфигурации объектов в ЦН.

Важно

По умолчанию в таблице отображаются все поля типа данных, включая категории. Необходимо найти и открыть требуемый объект конфигурации (см. раздел Просмотр объекта конфигурации по Guid).

Таблицы с типом мастер-данных

Если необходимо скорректировать отображение столбцов для типа мастер-данных, в конфигурации с отображением таблицы для данного типа данных (например, ТаблицаСКнопкой_МойОбъект_), в разделе columnModel->columns указываются все столбцы, необходимые для отображения.

Например:

../../../../_images/port14.png

В этом случае на Портале будет отображена таблица со следующим составом:

../../../../_images/port5.png

Прочие таблицы

Например, требуется добавить столбцы в таблице раздела Задачи.

Для добавления столбцов:

  1. Откройте требуемую конфигурацию.

  2. Найдите массив по адресу contentOptions->layouts->columns->elements->columnModel->columns.

  3. Добавьте в него новый элемент:

    {
    
    "$type": "DT.ClusterConfiguration.GridColumn, DT_Core",
    
    "path": "EntityId",
    
    "name": "EntityId",
    
    "orderNumber": 3,
    
    "callStepWithId": "00000000-0000-0000-0000-000000000000"
    
    }
    
  4. Удалите элемент Created.

  5. Сохраните изменения и примените конфигурацию.

После изменения:

../../../../_images/port23.png

Форма просмотра данных

В инструкции Добавление объекта конфигурации в меню указано как добавить в раздел на Портале кнопку добавления данных, а кроме того таблицы для просмотра данных (по двойному щелчку левой кнопки мыши откроется форма просмотра добавленных данных).

В данном разделе представлены приемы настройки форм просмотра данных.

Изменение полей формы просмотра создания данных

Форма просмотра создания данных может быть сконфигурирована в отдельном объекте или в том же объекте конфигурации, в котором сконфигурирована функциональность создания редактирования данных, вызывающий форму просмотра создания данных.

Поля на форме могут быть сгруппированы.

Добавление данных на Портале

Добавление данных на Портале осуществляется, как правило, с использованием кнопки добавления данных, которая размещается в соответствующем разделе. Автоматическое размещение кнопки описано в разделе Добавление объекта конфигурации в меню.

Кнопка создания данных представляет собой настраиваемый объект конфигурации, описанный в конфигурации вместе с таблицей, отображающей информацию о сущностях, которые создаются с использованием данной кнопки.

Основной настройкой для данного объекта является указание процесса, который будет вызван при нажатии на данную кнопку.

../../../../_images/port16.png

На верхнем уровне описана непосредственно таблица сущностей.

Кнопки, доступные для отображения рядом с таблицей размещаются в ItemsToolBar:

"ItemsToolBar": [

  {

    "$type": "DT.ClusterConfiguration.ToolbarItemOption, DT_Core",

    "ButtonId": "8044be48-cc99-42af-a69b-6a7ef1cab004",

    "Text": "Создать",

    "IconName": "Add",

    "Items": [],

    "IsVisible": true

  }

],

-ButtonId – идентификатор объекта, который описывает саму кнопку.

  • Text – текст кнопки.

  • IconName – описание стиля кнопки.

  • IsVisible - флаг, позволяющий включить отключить отображение кнопки, не удаляя ее описание из ItemsToolBar.

Сама кнопка добавления данных размещается внутри объекта InnerElements. В примере видно несколько созданных кнопок. Нужную кнопку можно найти по Guid, который размещается в ItemsToolBar.ButtonId. По данному Guid будет найден объект, у которого EntityId совпадает с ItemsToolBar.ButtonId.

В найденном объекте есть ProcessIdGuid, указывающий на Guid процесса, который следует запустить по нажатию данной кнопки, либо который будет запущен по завершению ввода данных.

Конфигурация внешнего вида формы добавления данных зависит от типа элемента, описывающего форму создания данных. Как правило, это или FormElementContent, или SmartFormPlayerContent; размещается внутри InnerElements[n]. InnerElements.

В конфигурации кнопки и формы можно сконфигурировать маппинг переменных в процесс. Маппинг переменных в процесс осуществляется посредством блока MappingToProcess, в котором указывается режим маппинга FillOptionAutoMapping или Manual, SourceId, TargetId, которые являются наименованиями (наименованиями, но не идентификаторами) смаппливаемых переменных.

  • SourceId - имя переменной, содержащей данные поступающие из Портала.

  • TargetId - имя переменной в которую должны быть скопированы данные.

  • Type – тип связи, по умолчанию Basic (связь 1 к 1). Для MappingToProcess использование иных типов не предусмотрено.

Источник данных (dataSource)

Пример конфигурации источника данных:

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "",

"OutDataTypeId": null,

"ProcessIssueTypeId": null,

"AutoRefreshSec": 0,

"SourceType": "Sql",

"ColumnModel": null,

"UsingPagging": false, // вкл/выкл пагинации

"PaggingPageSize": 25,//размер порции данных на одной странице

"OnInitRefresh": true,

"PostProcessingByFunc": null,

"SourceElementId": null,

"ElementDataPath": null,

"SqlText": "SELECT ОПФ.Object FROM ОПФ",

"ElementParameters": [],

"ProcessId": null,

"MappingToProcess": [],

"MappingFromProcess": [],

"EnumMapper": null,

"CredentialType": null,

"EntityId": "20dc4a1a-6467-4752-9a8b-03e5f96b3645",

"Name": "Получение ОПФ"

"GroupingKey":"Наименование_поля"

},

Вид источника определяется в SourceType. Доступны следующие варианты:

  • Element

  • Sql

  • ProcessData

  • Credential

  • MessageStorage

  • ProcessIssue

  • Category

Пагинация данных

Пагинация данных для указанного источника данных конфигурируется в источнике данных путем указания значений в следующих полях:

  • UsingPagging - вкл/выкл пагинации.

  • PaggingPageSize - размер порции данных на одной странице.

  • Поле GroupingKey - группировка данных по полю. Результат группировки объединяется в один объект путем объединения полей объекта в группе.

Генерация источника данных по типу данных

Некоторые элементы Портала (такие как GridColumn и UI элементы) имеют поле PlatformTypeId - идентификатор ассоциируемый с типом данных платформы.

Если для них указан PlatformTypeId и не указан DataSourceId, будет автоматически сгенерирован источник данных.

Если PlatformTypeId это:

  • тип данных, то генерируется выбор записей типа данных из банка;

  • категория, то генерируется выборка записей категории из банка;

  • задача (processIssue), то генерируется выборка задач с узла;

  • бизнес процесс, то генерируется выборка задач с узла;

  • модуль: если Хранилище сообщений, генерируется выборка сообщений.

Также есть специальные PlatformTypeId:

  • 11111112-dba6-42a9-97ab-519a8212ae16 - выборка пользователей.

  • 11111113-dba6-42a9-97ab-519a8212ae16 - роли, привязанные к пользователю (пользователь указывается параметрах источника данных в ParentEntityId - id UI-элемента, из которого берем пользователя, Name = «entityId», Path = «entityId», Type = Guid).

  • 11111114-dba6-42a9-97ab-519a8212ae16 - выборка всех ролей.

Источник данных SQL-запрос

Пример конфигурации:

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "КоличествоМастерЗаписей",

"OutDataTypeId": null,

"ProcessIssueTypeId": null,

"AutoRefreshSec": 0,

"SourceType": "SQL",

"ColumnModel": null,

"OnInitRefresh": true,

"PostProcessingByFunc": null,

"SourceElementId": null,

"ElementDataPath": null,

"SqlText": "SELECT COUNT(*) AS Количество FROM Контрагент WHERE Created
>= @Yesterday and Created < @TomorrowDay",

"ElementParameters": [

{

"$type": "DT.ClusterConfiguration.FuncElementParameter, DT_Core",

"Name": "Yesterday",

"Value": "$DATEADD()",

"Parameters": [

"Day",

"-2",

"$GETDATE()"

]

},

{

"$type": "DT.ClusterConfiguration.FuncElementParameter, DT_Core",

"Name": "CurrentDay",

"Value": "$GETDATE()"

},

{

"$type": "DT.ClusterConfiguration.FuncElementParameter, DT_Core",

"Name": "TomorrowDay",

"Value": "$DATEADD()",

"Parameters": [

"Day",

"1",

"2024.05.16 00:00:00"

]

}

],

"ProcessId": null,

"MappingToProcess": [],

"MappingFromProcess": [],

"EnumMapper": null,

"CredentialType": null,

"ProcessIssuesShow": "Opened",

"ProcessIssueCaseInsensitiveSearch": false,

"SearchInClosedStorageOn": false,

"GroupingKey": null,

"TimeoutMSec": 60000,

"EntityId": "1fba14c7-5b36-4918-bf8c-e66004e449b9",

"Name": "Количество мастер-записей за настоящий день"

}

JSON

Параметризация через ссылки на данные UI Элементов: Параметризация источника данных посредством LinkElementParameter.

Параметризация запроса через функции, выполняемые Платформой, перед выполнением запроса БД:

Тип таких параметров - DT.ClusterConfiguration.FuncElementParameter, DT_Core.

Допустимые функции:

  • $DATEADD() - увеличение времени на заданное значение.

  • $GETDATE() - текущая дата (вернет 20240516 00:00:00).

  • $GETDATETIME() - текущая дата и время (20240516 14:25:31).

Функция $DATEADD() параметризируемая. Параметры указываются в массиве Parameters. Последовательность учитывается. Параметры:

  • Тип увеличения даты. Допустимые значения:

    • Year

    • Quarter - квартал (3 месяца)

    • Month

    • Day

    • Week - неделя (7 дней)

    • Hour

    • Minute

    • Second

    • Millisecond

  • Целочисленное значение увеличения даты по указанному типу.

  • Дата к которой прибавляется время (не обязательный параметр). Если значение не передать, то будет браться сегодняшняя дата (время будет 00:00:00). Можно передать функции $GETDATE() или $GETDATETIME(). Пример значения параметра - 2024.05.16 00:00:00.

SourceType = ProcessIssue Источник задач.

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "Источник данных задачи",

"OutDataTypeId": "ИДЕНТИФИКАТОР_ТИПА_ДАННЫХ",

"ProcessIssueTypeId": "ИДЕНТИФИКАТОР_ТИПА_ЗАДАЧИ",

"AutoRefreshSec": 0,

"SourceType": "ProcessIssue",

"ColumnModel": null,

"UsingPagging": false,

"PaggingPageSize": 100,

"OnInitRefresh": true,

"PostProcessingByFunc": null,

"SourceElementId": null,

"ElementDataPath": null,

"SqlText": "",

"ElementParameters": [],

"ProcessId": null,

"MappingToProcess": [],

"MappingFromProcess": [],

"EnumMapper": null,

"CredentialType": null,

"processIssuesShow": "All",

"EntityId": "5c039e91-5b1c-47bb-ab4e-734095418922",

"Name": "Все остальные партнеры"

}

Самый простой случай, в котором не указаны параметры источников данных задачи. Указан только тип «SourceType»: «ProcessIssue». В этом случае выбираются все задачи. Это обязательный параметр, параметры 2 и 3 опциональные.

OutDataTypeId - идентификатор типа данных, которые хранятся в задаче. Будут выбираться все задачи с указанным типом данных. Если указан бизнес-процесс, будет браться переменная обработки и из нее будет браться тип данных.

ProcessIssueTypeId - идентификатор типа задачи. Если он указан, будут браться задачи, которые соответствуют указанному типу.

processIssuesShow

Доступны 3 режима:

  • All - отображаются задачи из открытого и закрытого хранилищ.

  • Opened - отображаются только задачи из открытого хранилища.

  • Closed - отображаются только задачи из закрытого хранилища.

Доступные поля задач:

  • MessageId - Идентификатор сообщения, для которого предоставляются данные превью. Используется в дальнейшем для запроса полных данных сообщения.

  • CreatorUserId - Данные авторизованного пользователя, создавшего задачу.

  • UpdaterUserId - Данные авторизованного пользователя, обновившего задачу.

  • ProcessInstanceId - уникальный идентификатор экземпляра исполняемого процесса, в рамках которого выполнялись задачи. Совпадает для задач исполняемых в рамках одного экземпляра бизнес-процесса.

  • QueueId - Идентификатор очереди для которой сформирована запись. Системное поле.

  • EntityId - Идентификатор задачи.

  • Content - Бизнес-данные записи.

  • TableId - системное поле, фактически ИД бизнес-процесса (самого бизнес-процесса, не конкретного экземпляра исполнения).

  • Created - дата-время создания задачи

  • Updated - дата-время обновления задачи

  • Statuses - Возможные статусы. Системное поле.

  • Status - Текущий статус. Фактически статус фигурирует в поле StatusName.

  • StatusName - статус.

  • AdditionalData - Дополнительная информация с Портала. Системное поле, пока не используется.

  • ProcessStepId - системное поле. Идентификатор текущего шага процесса.

  • ProcessData - системное поле. Всегда будет пустым на Портале.

  • Change - системное поле. маркер - изменяет ли какой-либо процесс данную задачу прямо сейчас.

Параметризация источника данных через LinkElementParameter

В поле можно добавить ссылочный параметр. Он будет ссылаться на данные существующего UI элемента.

Пример конфигурации:

{

"$type": "DT.ClusterConfiguration.LinkElementParameter, DT_Core",

"ParentEntityId": "Идентификатор UI элемента, откуда нужно выбрать
данные",

"Path": "Путь к данным",

"Name": "Имя параметра",

"Value": null,

"Type": "Тип данных"

}

JSON

Доступные типы:

  • Int

  • Boolean

  • String

  • Decimal

  • DateTime

  • Guid

  • None

  • Enum

C#

Для SQL запросов используется тип String.

Далее параметр можно использовать в запросе через знак @.

Пример параметризации источника данных для SQL:

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "Дубли выбранного пациента через sql",

"AutoRefreshSec": 0,

"SourceType": "Sql",

"UsingPagging": true,

"PaggingPageSize": 100,

"OnInitRefresh": true,

"SqlText": "SELECT Пациенты.Object from Пациенты where Пациенты.ФИО =
@ФИО",

"ElementParameters": [

{

"$type": "DT.ClusterConfiguration.LinkElementParameter, DT_Core",

"ParentEntityId": "64b2593b-2744-42f5-9237-c9864dddc9a8",

"Path": "Пациенты.ФИО",

"Name": "ФИО",

"Value": null,

"Type": "String"

}

],

"ProcessId": null,

"MappingToProcess": [],

"MappingFromProcess": [],

"ProcessIssuesShow": "All",

"СustomizableSearchInClosedStorageOnPages": [],

"EntityId": "5c039e91-5b1c-47bb-ab4e-734095418922",

"Name": "Дубли пациентов"

}

JSON

Пример параметризации источника данных бизнес-процесса:

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "Дубли выбранного пациента через БП",

"AutoRefreshSec": 0,

"SourceType": "ProcessData",

"UsingPagging": false,

"PaggingPageSize": 100,

"OnInitRefresh": true,

"SqlText": null,

"ElementParameters": [

{

"$type": "DT.ClusterConfiguration.LinkElementParameter, DT_Core",

"ParentEntityId": "64b2593b-2744-42f5-9237-c9864dddc9a8",

"Path": "Пациенты",

"Name": "Пациент",

"Value": null,

"Type": "String"

}

],

"ProcessId": "701f4d19-0649-4ce8-be7d-5f8e32c59af5",

"MappingToProcess": [

{

"$type": "DT.MdmMetadata.Common.LinkData, DT_TypeBuilder.Entities",

"Id": "4001ba78-5804-48b8-a4ca-61237fbf13a2",

"SourceId": "@Пациент",

"TargetId": "ПациентВход",

"Expression": null,

"Type": "Basic",

"Aliases": [],

"AddOption": "Replace",

"FillOption": "AutoMapping",

"HasExpression": false

}

],

"MappingFromProcess": [

{

"$type": "DT.MdmMetadata.Common.LinkData, DT_TypeBuilder.Entities",

"Id": "feaa1dcb-bf4e-441d-8faf-4363c48fd028",

"SourceId": "b8b61214-c46b-4bd3-9ca0-87a9d205eb8b",

"TargetId": null,

"Expression": null,

"Type": "Basic",

"Aliases": [],

"AddOption": "Replace",

"FillOption": "AutoMapping",

"HasExpression": false

}

],

"CredentialType": null,

"ProcessIssuesShow": "All",

"СustomizableSearchInClosedStorageOnPages": [],

"EntityId": "2d45e85b-f460-433b-9532-81a53b6a8511",

"Name": "Получение из процесса дублей пациента"

},

Источник данных задач (ProcessIssue)

Пример источника данных задач:

{

"$type": "DT.ClusterConfiguration.MdmDataSource, DT_Core",

"Description": "КоличествоКонтрагентов",

"OutDataTypeId": null,

"ProcessIssueTypeId": null,

"AutoRefreshSec": 0,

"SourceType": "ProcessIssue",

"ColumnModel": null,

"OnInitRefresh": true,

"PostProcessingByFunc": null,

"SourceElementId": null,

"ElementDataPath": null,

"SqlText": "SELECT 'Количество задач' as Объект, COUNT(*) as Количество FROM ProcessIssue",

"ElementParameters": [],

"ProcessId": null,

"MappingToProcess": [],

"MappingFromProcess": [],

"EnumMapper": null,

"CredentialType": null,

"ProcessIssuesShow": "Opened",

"ProcessIssueCaseInsensitiveSearch": false,

"SearchInClosedStorageOn": false,

"GroupingKey": null,

"DuplicateModeOn": false,

"EntityId": "58d9397e-b9ec-4cdd-b94a-847c5bdb547d",

"Name": "Источник количества контрагентов"

}

Поле SqlText:

Запрос на выборку задач. В FROM указывается ProcessIssue. Возможен select. Применяется к данным ProcessIssueDto.

Поле ProcessIssuesShow:

Определение типа задач, к которым производится обращение. Доступные значения: All, Opened, Closed.

Поле ProcessIssueCaseInsensitiveSearch:

Флаг, определяющий учет регистра при поиске.

Структура ProcessIssueDto.

/// <summary>

/// Идентификатор сообщения, для которого предоставляются данные превью. Используется в дальнейшем для запроса полных данных сообщения.

/// </summary>

[MessagePackMember(0)]

public Guid MessageId { get; set; }

/// <summary>

/// Данные авторизованного пользователя, создавшего задачу.

/// </summary>

[MessagePackMember(1)]

public Guid CreatorUserId { get; set; }

/// <summary>

/// Уникальный идентификатор экземпляра исполняемого процесса, в рамках которого выполнялись задачи.

/// </summary>

[MessagePackMember(2)]

public Guid ProcessInstanceId { get; set; }

/// <summary>

/// Идентификатор очереди для которой сформирована запись.

/// </summary>

[MessagePackMember(3)]

public Guid QueueId { get; set; }

/// <summary>

/// Идентификатор записи.

/// </summary>

[MessagePackMember(4)]

public Guid EntityId { get; set; }

/// <summary>

/// Содержание мастер записи. Если null - запись удалена.

/// </summary>

[MessagePackMember(5)]

public string Content { get; set; }

/// <summary>

/// Идентификатор бизнес-процесса (в целом).

/// </summary>

[MessagePackMember(6)]

public Guid TableId { get; set; }

[MessagePackMember(7)]

public DateTime Created { get; set; }

[MessagePackMember(8)]

public DateTime Updated { get; set; }

/// <summary>

/// Возможные статусы

/// </summary>

[MessagePackMember(9)]

public string Statuses { get; set; }

/// <summary>

/// Текущий статус

/// </summary>

[MessagePackMember(10)]

public int Status { get; set; }

/// <summary>

/// Дополнительная информация с Портала.

/// Представлена в виде обычного json.

/// </summary>

[MessagePackMember(11)]

public string AdditionalData { get; set; }

/// <summary>

/// Идентификатор текущего шага процесса

/// </summary>

[MessagePackMember(12)]

public Guid ProcessStepId { get; set; }

/// <summary>

/// Идентификатор задачи - для состояний

/// </summary>

[MessagePackMember(14)]

public byte[] ProcessData { get; set; }

[MessagePackMember(15)]

public bool Change { get; set; } = false;

/// <summary>

/// Данные авторизованного пользователя, обновившего задачу.

/// </summary>

[MessagePackMember(16)]

public Guid UpdaterUserId { get; set; }

/// <summary>

/// Роль пользователя-исполнителя, на которого назначена задача

/// </summary>

[MessagePackMember(17)]

public Guid ExecutorUserRole { get; set; }

/// <summary>

/// Пользователь-исполнитель на которого назначена задача

/// </summary>

[MessagePackMember(18)]

public Guid ExecutorUserId { get; set; }

/// <summary>

/// Id шага в котором создана задача

/// </summary>

[MessagePackMember(19)]

public Guid StepId { get; set; }

/// <summary>

/// Id initMessage

/// </summary>

[MessagePackMember(20)]

public Guid InitMessageId { get; set; }

/// <summary>

/// Значения свойств(полей) типа данных. Список отображаемых свойств можно настроить в конфигурации типа -> PortalSettings -> Description

/// </summary>

[MessagePackMember(21)]

public string ContentDescription { get; set; }

[MessagePackMember(22)]

public string ProcessVariablesWatch { get; set; }

/// <summary>

/// Id типа данных нашего контента

/// </summary>

[MessagePackMember(23)]

public Guid DataTypeId { get; set; }

Дашборд

Конфигурация пустого дашборда:

"dashBoardContent": {

"$type": "DT.ClusterConfiguration.ContentOption, DT_Core",

"layouts": [],

"layoutOrientation": "Vertical",

"singleSwitcherSettings": true,

"contentType": "SolidLayout",

"entityId": "9d496661-980e-4ab6-9ccf-03d5c7930cc9",

"name": ""

}
../../../../_images/port3.png

layouts - слои. Представляет собой массив слоев.

"layouts":

[

{

"$type": "DT.ClusterConfiguration.ContentLayout, DT_Core",

"entityId": "a992ada4-1947-45fb-8b7f-d333b4ed03f6",

"name": "",

"isVisible": true,

"hideSplitter": false,

"columns": [

{

"$type": "DT.ClusterConfiguration.ContentLayoutColumn, DT_Core",

"entityId": "909310df-b721-43b0-bf15-89f1c2dbafc4",

"name": "Ntcn56",

"vScroll": true,

"gScroll": false,

"elements": [],

"roles": [],

"visibilityContextNames": [],

"size": ""

}

],

"roles": [],

"visibilityContextNames": [],

"layoutOrientation": "Vertical",

"size": "100px"

}

]
../../../../_images/port24.png

Добавлена функциональность, позволяющая скрывать управление панелями, для конфигурации ContentLayout свойство hideSplitter, при значении true управление скрыто:

../../../../_images/port22.png

В конфигурации добавлена возможность ручного указания палитры. Применяется заданная палитра, иначе берется палитра из списка и применяется для диаграммы.

../../../../_images/port9.png

Типы диаграмм

Column - вертикальные столбики,

Bar - горизонтальные столбики,

Line - линейные графики,

Pie - круговые диаграммы,

Donat - круговые, «бублик».