Элемент представляет собой пользовательский тип данных с настроенным набором полей.
Рабочая область типа данных содержит вкладки: Основные, Структура, Базовые модели, Объекты интерфейса, Портал и при включенном параметре Сохраняемый тип данных: Индексы, Категории, Шаблоны наименований.
Название: название типа данных, обязательно для заполнения.
Имя: имя типа данных, необязательно для заполнения (заполняется автоматически из значения поля Название). При присвоении имени необходимо учитывать перечень зарезервированных имен.
Комментарий: описание типа данных, необязательно для заполнения, поддерживается многострочный ввод.
Сохраняемый тип данных: будет ли Платформа хранить экземпляры этого типа данных в выбранном далее Банке данных. При включении флага становятся доступны параметры хранения: Банк данных, Сохранять историю изменений в данных. Также при включении флага отображаются дополнительные вкладки: Индексы, Категории и Шаблоны наименований.
Банк данных: выбор Банка данных, в базе данных которого будут созданы таблицы для хранения экземпляров типа данных. Параметр доступен, если установлен флаг Сохраняемый тип данных. Если в конфигурации только 1 Банк данных, то он заполнится в поле автоматически.
Сохранять историю изменений в данных: при включении флага в Банке данных сохраняются не только текущие экземпляры типа данных, но и их предыдущие версии. Параметр доступен, если установлен флаг Сохраняемый тип данных.
Вкладка Структура предназначена для работы с полями типа данных. Содержит панель функциональных кнопок и таблицу для отображения параметров полей:
Наименование: наименование поля. Наименование поля должно начинаться с буквы или символа нижнего подчеркивания (_). Наименование может содержать только буквы, цифры, символ подчеркивания. Поддерживается использование псевдонимов (алиасов) со спецсимволами. Пример: ВнутреннееИмяПоля(ПсевдонимПоля-100%). При присвоении наименования необходимо учитывать перечень зарезервированных имен.
Для типов полей String, Decimal и DateTime доступны дополнительные параметры типа.
Примечание
В настройках кластера есть возможность включить конвертер формата DateTime образца 3.1.1 версии Платформы - параметр useOldDateConverter блока deprecatedParams.
Примечание
Иерархия типа поля допускает не более 10 уровней вложенности.
Массив: установите флаг, если предполагается использование массива.
Внимание
В типе данных допускается не более пяти полей-массивов. При попытке сохранить тип данных с большим количеством полей-массивов отобразится соответствующая ошибка.
Разрешить 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 выбранного типа данных.
С помощью кнопки + можно быстро создать стандартные формы и объекты для типов полей. Добавление форм включает в себя Форму списка и Форму записи.
Примечание
При генерации форм поддерживаются следующие типы полей:
Все простые типы.
Типы данных.
Перечисления.
Сложное поле.
Ссылки.
После добавления формы доступны функции Копирования, Редактирования, Удаления. В комментарии сгенерированного списка указывается: Автоматически сгенерированный объект конфигурации.
Функциональность кнопок Добавить, Копировать, Редактировать, Удалить и Обновить совпадает с аналогичными кнопками в разделе Конфигурации объектов.
Для отображения форм на Портале необходимо Сохранить изменения и Применить конфигурацию.
Форма списка представляет собой страницу с таблицей, отображающей записи типа данных и кнопки Создания и Удаления.
Особенности:
создается на основе структуры типа данных;
автоматически формирует колонки по полям типа данных;
при изменении структуры типа данных (добавление/удаление полей) форма списка обновляется автоматически (при использовании настроек по умолчанию);
Для создания Формы списка:
На вкладке Объекты интерфейса нажмите кнопку + и выберите Форму списка
Если не сохранены изменения типа данных, выведется предупреждение. Выберите Да или предварительно сохраните изменения.
После сохранения типа данных выведется окно Выбора портала со всеми созданными Порталами. Для добавления Формы списка необходимо выбрать соответствующий Портал. Если Портал единственный, то форма и объекты добавляются на него.
Если выбрано Не добавлять меню на портал, то Форма списка будет только в Центре настройки.
В интерфейс добавляется 2 объекта конфигурации: Страница (BlazorMenu) и Форма списка (GridElementContent).
Если параметры Процесс создания/обновления, Процесс удаления на вкладке Портал не заданы, соответствующие бизнес-процессы формируются автоматически. При заданных параметрах используются указанные процессы.
В Обслуживание → Изменения отражаются другие добавленные типы объектов.
При добавлении высвечивается соответствующее оповещение о создании объекта.
После сохранения и применения конфигурации на Портал добавляются:
страница (меню).
на странице таблица с записями этого типа данных (загружаются из Банка данных).
кнопки для создания и удаления записей.
При двойном щелчке по созданному объекту (Страница или Форма списка) он открывается в разделе ЦН Публикация данных → Конфигурации объектов. В Параметрах у каждого объекта генерируется JSON.
При попытке создать дополнительную Форму списка выводится ошибка.
Создание новой страницы доступно через копирование и редактирование уже добавленной.
При отсутствии готового объекта BlazorMenu соответствующий объект будет создан. При этом в соответствующий пункт меню будет подставлен табличный объект интерфейса, либо будет подставлен созданный объект типа GridElementContent. Итоговый пункт меню будет добавлен на Портал.
При отсутствии объекта конфигураций типа BlazorMenu будет создан соответствующий объект с выбранной конфигурацией и добавлен на Портал. Если конфигурация типа BlazorMenu присутствует, конфигурация объекта будет заменена на выбранную, после чего объект будет добавлен на Портал.
При генерации страницы (меню) Портала для типа используются привязанные к типу конфигурации объектов.
На вкладке Портал указывается форма в поле Форма списка.
Форма записи - форма для создания и редактирования записи типа данных, открываемая в виде диалогового окна. Форма открывает 1 выбранную запись.
Особенности:
форма содержит поля, соответствующие структуре типа данных;
если нет созданной Формы записи, то объект будет открываться автоматически (Портал генерит форму автоматически на основе структуры типа данных) с возможностью редактирования;
при изменении структуры типа данных поля формы обновляются автоматически (при использовании настроек по умолчанию).
Для создания Формы записи:
На вкладке Объекты интерфейса нажмите кнопку + и выберите Форму записи
Если не сохранены изменения типа данных, выведется предупреждение. Выберите Да или предварительно сохраните изменения.
При выборе Формы записи в интерфейс добавляется 1 Объект конфигурации FormElementContent. Бизнес-процесс создается автоматически, если в параметре Процесс создания/обновления вкладки Портал ничего не задано. Если параметр заполнен, то новый бизнес процесс не создается, на Портале используется форма, указанная в параметре Процесс создания/обновления.
В Обслуживание → Изменения отражаются другие добавленные типы объектов.
При добавлении высвечивается соответствующее оповещение о создании объекта.
При двойном щелчке по созданному объекту он открывается в разделе ЦН Публикация данных → Конфигурации объектов. В Параметрах генерируется соответствующий JSON.
При попытке создать дополнительно Форму записи выводится ошибка.
Создание новой формы доступно через копирование и редактирование уже добавленной.
Вкладка Индексы отображается только при установленном флаге Сохраняемый тип данных. Вкладка предназначена для настройки индексов. С помощью кнопки + можно создать составные и нечеткие индексы.
Вкладка Категории отображается только при установленном флаге Сохраняемый тип данных.
Для того, чтобы во вкладке Категории появились значения, необходимо создать тип данных Категория. После добавления категории выберите экземпляр категории и заполните значения включенных атрибутов. Вкладка Категории предназначена для работы с категориями типа данных и содержит список категорий, доступных для добавления.
Пример использования:
Создана категория КатегорияЧаи с атрибутами Вид, Форма, КолВоПакетиков, СтранаПроизводитель. Записано 2 экземпляра КатегорияЧаи с разным набором включенных атрибутов.
Создан тип данных Чай с полями Название и ВидУпаковки, для типа добавлена категория КатегорияЧаи.
Таким образом, при записи экземпляра типа Чай есть возможность заполнить значения атрибутов выбранного экземпляра категории. В данном случае это Вид и СтранаПроизводитель.
Структура записи экземпляра типа Чай (без сервисных параметров) будет иметь следующий вид:
Вкладка Шаблоны наименований отображается только при установленном флаге Сохраняемый тип данных и позволяет настроить автозаполнение значений для выбранных полей.
В шаблоне типа могут использоваться его простые поля, для которых не настроен собственный шаблон, шаблоны его категорий и статичные вставки (буквы, цифры, спецсимволы).
Правила заполнения шаблонов типа:
при добавлении значения из поля простого типа используется формат %ИмяПоля1%;
при добавлении значения из поля типа ссылка используется формат %ИмяПоля2.ИмяПоляИзВложенногоТипа%, где поле ИмяПоляИзВложенногоТипа имеет простой тип и не является массивом;
при добавлении значения из шаблона категории используется формат %ИмяКатегории.ИмяШаблонаКатегории%;
при использовании спецсимвола % его необходимо экранировать с помощью символа ^. Остальные статичные вставки не требуют экранирования.
Пример использования:
В конфигурации категории, представленной в прошлом примере, добавлены шаблоны наименований ШаблонКраткий и ШаблонПолный. При создании нового экземпляра категории КатегорияЧаи значения шаблонов заполнены.
В структуре типа Чай добавлены поля НаименованиеКраткое и НаименованиеПолное, для которых в дальнейшем будут применяться шаблоны наименований. На вкладке Шаблоны наименований типа заполнены шаблоны, в соответствии с которыми будут заполняться значения этих полей.
В результате при записи экземпляра типа Чай значения полей НаименованиеКраткое и НаименованиеПолное заполнятся автоматически с использованием значения из полей типа и атрибутов выбранной категории.
Шаблон применяется в момент записи экземпляра типа данных. Если полю, для которого заполнен шаблон, на момент отправки в банк данных уже присвоено значение, оно будет переопределено в соответствии с настроенным шаблоном.
Для полей типа dateTime и boolean при использовании в шаблоне заполняются значения в формате local и true/false соответственно.
Внимание
Для корректной работы шаблонов наименований тип данных и связанные с ним типы данных и категории должны храниться в одном банке данных.
Вкладка Портал позволяет работать с конфигурацией типа данных на Портале.
На вкладке доступны следующие поля и элементы настройки:
Имя типа для отображения: DisplayName - наименование типа данных, отображаемое на портале.
Шаблон представления записи: Description - шаблон-описание. Названия полей вводятся в фигурных скобках.
Шаблон расширенного представления записи: FullDescription - шаблон полного описания. Названия полей вводятся в фигурных скобках.
Группировать по дате при просмотре истории: DoGroupHistoryChangeData - флаг устанавливается для соответствующей группировки при просмотре.
Форма списка: таблица всех данных этого типа, формируется во вкладке Объекты интерфейса.
Форма записи: FormElementViewerId - идентификатор objectConfig - конфигурация UI элемента, открывающегося по двойному щелчку по строке, типизированной данным типом таблицы. Формируется во вкладке Объекты интерфейса.
Форма просмотра истории: GridHistoryChangesId - идентификатор объекта конфигурации - таблицы, содержащей историю изменений полей выбранной записи. Если параметр не задан, то для типов данных с включенным параметром Сохранять историю изменений в данных форма просмотра истории изменений записи формируется Порталом автоматически. На Портале на форме редактирования записи будет отображаться кнопка перехода в форму просмотра истории.
Процесс создания/обновления: CreateAndEditProcessId - процесс, который выполняется при создании и изменении записи соответствующего типа на Портале.
Процесс удаления: DeleteProcessId - процесс, который выполняется при удалении записи соответствующего типа.
Таблица представления имен полей (словарь наименования полей типа данных, отображаемого на Портале - наименования полей форм, колонок таблиц):
Имя поля: наименование поля типа данных.
Отображаемое имя: псевдоним, используемый на Портале.