Тип данных
Элемент представляет собой пользовательский тип данных с настроенным набором полей.
Рабочая область типа данных содержит вкладки Основные, Структура, Базовые модели, Объекты интерфейса, Портал.
Основные настройки
Вкладка Основные содержит следующие поля:
Название: название типа данных, обязательно для заполнения.
Имя: имя типа данных, необязательно для заполнения (заполняется автоматически из значения поля Название).
Комментарий: описание типа данных, необязательно для заполнения.
Параметр Сохраняемый тип данных. При включении параметра отображаются дополнительные вкладки Параметры объекта, Категории и Шаблоны наименований.
Структура
Вкладка Структура предназначена для работы с полями типа данных. Содержит панель функциональных кнопок и таблицу для отображения параметров полей:
Наименование: наименование поля. Наименование поля должно начинаться с буквы или символа нижнего подчеркивания (_). Наименование может содержать только буквы, цифры, символ подчеркивания. Поддерживается использование алиасов со спецсимволами. Пример: ВнутреннееИмяПоля(АлиасПоля-100%).
Внимание
В качестве наименования полей не следует использовать следующие значения: local, __value, LastException, CurrentProcessId, Count, Message, LinkType, BaseClass, Message_DataType, Message_Process, Message_Module, Message_Algorithm, Message_Source, OwnDictionary, OwnList, MessageBaseField, BaseClassUtils, Blob, ExpressionsUtils, IBankType, target, abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long, namespace, new, null, object,*operator*, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, using static, virtual, void, volatile, while.
Тип: тип поля:
Массив: установите флажок, если предполагается использование массива.
Внимание
В типе данных допускается не более пяти полей-массивов. При попытке сохранить тип данных с большим количеством полей-массивов отобразится соответствующая ошибка.
Разрешить NULL: установите флажок, если предполагается использование нулевых значений.
Проверка заполнения: проверка на заполненность значений отмеченных полей. Проверяется, что значение поля отличается от значения по умолчанию для типа данных этого поля.
Внимание
Если для поля включена опция Разрешить NULL, то значением по умолчанию будет считаться NULL.
Примечание
В зависимости от типа данных выбранного поля сравнение идёт с различными значениями по умолчанию:
для типов Int и Decimal незаполненным считается значение 0.
для типа DateTime незаполненными считаются значения 01-Jan-0001 00:00:00 и 01-Jan-1900 00:00:00.
для типа Guid незаполненным считается значение 00000000-0000-0000-0000-000000000000.
для типа String независимо от включения Разрешить NULL незаполненными считаются значения NULL, пустая строка или значение, состоящее только из пробелов.
Примечание
Проверка заполнения не доступна для булевых полей.
Проверка: флажок устанавливается автоматически в отношении полей, для которых выбрана функция проверки корректности введенного значения. Для получения списка доступных функций выделите необходимое поле и нажмите на кнопку Выбор функции для проверки.
Примечание
Проверка не доступна для полей, вложенных в сложное поле.
Примечание
Проверка не выполняется автоматически, ее следует вызывать методом Check. Для проверки полей вложенных типов данных необходимо запускать Check корневого объекта.
Примечание
Функция проверки должна содержать один входящий параметр того же типа данных, как и у проверяемого поля. В коде функции необходимо предусмотреть генерацию исключения в случае неуспешной проверки. Пример:
If (Инт > 5) { throw new ArgumentException("Инт должно быть =<5"); }
Комментарий: описание поля, необязательно для заполнения.
Для создания новой структуры нажмите на кнопку + (Добавить поле). В таблице структуры будет добавлена строка нового поля.
Также можно импортировать структуру путем импорта метаданных из внешних источников.
Для этого нажмите на кнопку меню Импорт метаданных:

В открывшемся всплывающем окне укажите внешний источник импорта данных:

Для загрузки файлов swagger, wsdl, xml и json нажмите на кнопку Импорт метаданных:

После нажатия на кнопку Далее система произведет загрузку структуры из внешнего источника. Выберите требуемую структуру и нажмите на кнопку Ок.
Примечание
Если в поле типа данных размерность меняется в меньшую сторону, это поле будет удалено и создано заново.
Базовые модели
Вкладка Базовые модели предназначена для работы с базовыми моделями типа данных. Вкладка содержит панель функциональных кнопок и таблицу для отображения выбранных базовых моделей. Для успешного сохранения типа данных необходимо наличие в структуре всех полей его базовых моделей.
Для добавления новой базовой модели нажмите на функциональную кнопку Добавить поле. В результате таблице будет добавлена новая строка. В колонке Тип нажмите на кнопку выбора, чтобы выбрать базовую модель.
Для копирования поля базовой модели в тип данных выберите базовую модель и нажмите на кнопку Обновить поле.
Объекты интерфейса
Вкладка Объекты интерфейса содержит список объектов интерфейса Портала, связанных с типом данных. Вкладка используется для создания конфигураций объектов и их быстрого размещения на Портале.
Рабочая область вкладки содержит панель функциональных кнопок и таблицу конфигураций объектов, у которых значение параметра refId совпадает со значением EntityId выбранного типа данных.
Добавление форм списка и записи
С помощью кнопки + можно быстро создать стандартные формы для типов полей.
Примечание
При генерации форм поддерживаются следующие типы полей:
Все простые типы.
Типы данных.
Перечисления.
Группы.
Ссылки.

Добавление форм включает в себя Форму списка и Форму записи.

Форма списка - таблица всех данных этого типа.
Форма записи - форма открытия конкретного элемента (записи), форма открывает 1 запись.
Форму списка и Форму записи не обязательно создавать совместно, будут использоваться по умолчанию.
При выборе Формы списка или Формы записи, если не сохранены изменения, выведется предупреждение.
Выберите Да или предварительно сохраните изменения.

После сохранения внесённых изменений кнопка позволяет добавить форму.
Форма списка
Для добавления Формы списка необходимо выбрать соответствующий Портал - выводятся все Порталы.
Если портал единственный, то добавляется на него.
Если выбрано Не добавлять меню на портал, то Форма списка будет только в Центре настройки.

В интерфейс добавляется 2 объекта конфигурации: Страница (BlazorMenu) и Форма списка (GridElementContent).

В Обслуживание → Изменения отражаются другие добавленные типы объектов.

При добавлении высвечивается соответствующее оповещение о создании объекта.

В Параметрах у каждого объекта генерируется JSON.

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

При попытке создать дополнительную Форму списка выводится ошибка.

Создание новой страницы доступно через копирование и редактирование уже добавленной.
Форма записи
Если нет созданной Формы записи, то объект будет открываться автоматически. Если требуется редактирование объекта, то необходимо создать Форму записи.
При выборе Формы записи в интерфейс добавляется 1 Объект конфигурации FormElementContent

В Обслуживание → Изменения отражаются другие добавленные типы объектов.

При добавлении высвечивается соответствующее оповещение о создании объекта.

В Параметрах генерируется соответствующий JSON.

При попытке создать дополнительно Форму записи выводится ошибка.

Создание новой формы доступно через копирование и редактирование уже добавленной.
После добавления формы доступны функции Копирования, Редактирования, Удаления. В комментарии сгенерированного списка указывается: Автоматически сгенерированный объект конфигурации.

Функциональность кнопок Добавить, Копировать, Редактировать, Удалить и Обновить совпадает с аналогичными кнопками в разделе Конфигурации объектов.
Для отображения форм на Портале необходимо Сохранить изменения и Применить конфигурацию.
На вкладке Портал указываются созданные формы.
При отсутствии готового объекта BlazorMenu соответствующий объект будет создан. При этом в соответствующий пункт меню будет подставлен табличный объект интерфейса, либо будет подставлен созданный объект типа GridElementContent. Итоговый пункт меню будет добавлен на Портал.
При отсутствии объекта конфигураций типа BlazorMenu будет создан соответствующий объект с выбранной конфигурацией и добавлен на Портал. Если конфигурация типа BlazorMenu присутствует, конфигурация объекта будет заменена на выбранную, после чего объект будет добавлен на Портал.
Примечание
При генерации меню Портала для типа используются привязанные к типу конфигурации объектов.
Параметры объекта
Вкладка Параметры объекта отображается только при установленном флажке Сохраняемый тип данных. Вкладка предназначена для настройки параметров хранения записей типа в банке данных.
Категории
Вкладка Категории отображается только при установленном флажке Сохраняемый тип данных. Вкладка предназначена для работы с категориями типа данных и содержит список категорий, доступных для добавления. После добавления категории выберите экземпляр категории и заполните значения включенных атрибутов.
Пример использования:
Создана категория КатегорияЧаи с атрибутами Вид, Форма, КолВоПакетиков, СтранаПроизводитель. Записано 2 экземпляра КатегорияЧаи с разным набором включенных атрибутов.
Создан тип данных Чай с полями Название и ВидУпаковки, для типа добавлена категория КатегорияЧаи. Таким образом, при записи экземпляра типа Чай есть возможность заполнить значения атрибутов выбранного экземпляра категории. В данном случае это Вид и СтранаПроизводитель.
Структура записи экземпляра типа Чай (без сервисных параметров) будет иметь следующий вид:
{
"Название": "GREENFIELD Flying Dragon",
"ВидУпаковки": "коробка",
"Категории": {
"КатегорияЧаи": {
"Вид": "зеленый",
"Форма": "",
"КолВоПакетиков": 0,
"СтранаПроизводитель": "Россия",
"Коммент": "",
"Атрибуты": {
"Items": []
}
}
}
}
Шаблоны наименований
Вкладка Шаблоны наименований отображается только при установленном флажке Сохраняемый тип данных и позволяет настроить автозаполнение значений для выбранных полей.
В шаблоне типа могут использоваться его простые поля, для которых не настроен собственный шаблон, шаблоны его категорий и статичные вставки (буквы, цифры, спецсимволы).
Правила заполнения шаблонов типа:
при добавлении значения из поля простого типа используется формат %ИмяПоля1%;
при добавлении значения из поля типа ссылка используется формат %ИмяПоля2.ИмяПоляИзВложенногоТипа%, где поле ИмяПоляИзВложенногоТипа имеет простой тип и не является массивом;
при добавлении значения из шаблона категории используется формат %ИмяКатегории.ИмяШаблонаКатегории%;
при использовании спецсимвола % его необходимо экранировать с помощью символа ^. Остальные статичные вставки не требуют экранирования.
Пример использования:
В конфигурации категории, представленной в прошлом примере, добавлены шаблоны наименований ШаблонКраткий и ШаблонПолный. При создании нового экземпляра категории КатегорияЧаи значения шаблонов заполнены.
В структуре типа Чай добавлены поля НаименованиеКраткое и НаименованиеПолное, для которых в дальнейшем будут применяться шаблоны наименований. На вкладке Шаблоны наименований типа заполнены шаблоны, в соответствии с которыми будут заполняться значения этих полей.
В результате при записи экземпляра типа Чай значения полей НаименованиеКраткое и НаименованиеПолное заполнятся автоматически с использованием значения из полей типа и атрибутов выбранной категории.
Шаблон применяется в момент записи экземпляра типа данных. Если полю, для которого заполнен шаблон, на момент отправки в банк данных уже присвоено значение, оно будет переопределено в соответствии с настроенным шаблоном.
Для полей типа dateTime и boolean при использовании в шаблоне заполняются значения в формате local и true/false соответственно.
Внимание
Для корректной работы шаблонов наименований тип данных и связанные с ним типы данных и категории должны храниться в одном банке данных.
Портал
Вкладка Портал позволяет работать с конфигурацией типа данных на Портале.

На вкладке доступны следующие поля и элементы настройки:
Имя типа для отображения: DisplayName - наименование типа данных, отображаемое на портале.
Шаблон представления записи: Description - шаблон-описание. Названия полей вводятся в фигурных скобках.
Шаблон расширенного представления записи: FullDescription - шаблон полного описания. Названия полей вводятся в фигурных скобках.
Группировать по дате при просмотре истории: DoGroupHistoryChangeData - флажок устанавливается для соответствующей группировки при просмотре.
Форма списка: таблица всех данных этого типа, формируется во вкладке Объекты интерфейса.
Форма записи: FormElementViewerId, идентификатор objectConfig - конфигурация UI элемента, открывающегося по двойному щелчку по строке, типизированной данным типом таблицы. Формируется во вкладке Объекты интерфейса.
Форма просмотра истории: GridHistoryChangesId: идентификатор объекта конфигурации - таблицы, содержащей историю изменений полей выбранной записи.
Таблица представления имен полей (словарь наименования полей типа данных, отображаемого на Портале - наименования полей форм, колонок таблиц):
Имя поля: наименование поля типа данных.
Отображаемое имя: псевдоним, используемый на Портале.
Настройка индексов
Доступно только для Объектов банка. Система предоставляет возможность создания составных и нечетких индексов.