Категория
Категория представляет из себя тип данных с набором полей, атрибутов и шаблонов наименований. Поддерживается иерархическая структура категорий, при которой атрибуты родительской категории наследуются дочерними категориями.
Категория, присвоенная типу данных, позволяет динамически менять список заполняемых атрибутов в зависимости от выбранного экземпляра категории.
Рабочая область категории содержит вкладки Основные, Структура, Атрибуты, Объекты интерфейса, Портал. При установке флага Сохраняемый тип данных отображаются дополнительные вкладки Индексы и Шаблоны наименований.
Основные настройки
Вкладка Основные содержит следующие поля:
Название: название категории, обязательно для заполнения.
Имя: имя категории, необязательно для заполнения (заполняется автоматически из значения поля Название).
Комментарий: описание категории, необязательно для заполнения, поддерживается многострочный ввод.
Сохраняемый тип данных: будет ли Платформа хранить экземпляры этой категории в выбранном далее Банке данных. При включении флага становятся доступны параметры хранения: Банк данных, Включить журнал изменений (хранится в банке данных), Сохранять состояние. Также при включении флага отображаются дополнительные вкладки: Индексы и Шаблоны наименований.
Параметр Иерархический. При включении параметра добавляется возможность указать родительские категории, атрибуты которых будут наследоваться данной категорией.
Банк данных: выбор Банка данных, в базе данных которого будут созданы таблицы для хранения экземпляров категорий. Параметр доступен, если установлен флаг Сохраняемый тип данных.
Включить журнал изменений (хранится в банке данных): при включении флага Платформа записывает в Банк данных историю изменений каждого экземпляра категорий. Параметр доступен, если установлен флаг Сохраняемый тип данных.
Сохранять состояние: при включении флага в Банке данных сохраняются не только текущие экземпляры категорий, но и их предыдущие версии. Параметр доступен, если установлен флаг Сохраняемый тип данных.
Структура
Вкладка Структура предназначена для работы с полями категории. Содержит панель функциональных кнопок и таблицу для отображения параметров полей аналогично типам данных. При добавлении категории типу данных собственные поля категории недоступны типу.
Примечание
У каждой категории есть предопределенное системное поле Наименование, не отраженное в ЦН.
Наименование: наименование поля. Наименование поля должно начинаться с буквы или символа нижнего подчеркивания (_). Наименование может содержать только буквы, цифры, символ подчеркивания. Поддерживается использование псевдонимов (алиасов) со спецсимволами. Пример: ВнутреннееИмяПоля(ПсевдонимПоля-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.
В противном случае сохранение категории завершится ошибкой формата «Не удалось сохранить: Имя [local] является системным и не может использоваться в качестве имени пользовательского объекта».
Если бизнес-логика требует использовать одно из перечисленных наименований, есть возможность задать его с помощью псевдонима.
Например, недопустимо использовать наименование поля count, но можно использовать наименование поля countDP(count). В этом случае для внешних систем это поле будет восприниматься как count, а при обработке Платформой расшифровываться как countDP. Это позволит избежать конфликта с зарезервированными именами.
Тип: тип поля:
Для типов полей String, Decimal и DateTime доступны дополнительные параметры типа.
Параметры типа String:
Длина (integer): указывается максимально допустимое количество символов в строке. По умолчанию 50.
Max (boolean): при установке флага Платформа позволит хранить длинные строки (больше 50 из примера настройки). По умолчанию флаг не установлен (действует значение из параметра Длина).
Обрезать автоматически (boolean): если флаг установлен, то строка автоматически обрезается до допустимого числа символов (параметр Длина). По умолчанию флаг не установлен (если фактическая длина превышает значение настройки Длина, выведется ошибка).
Параметры типа Decimal:
Точность (integer): указывается общее количество цифр, которые могут храниться в числе — как до запятой, так и после нее. По умолчанию 5, то есть число может содержать максимум 5 цифр.
Масштаб (integer): указывается количество знаков после запятой, которые допускаются в числе (например, если в настройке 2 = 123.12). По умолчанию 0, то есть число хранится как целое (без значений после запятой).
Округлять автоматически (boolean): флаг определяет, что делать, если значение имеет больше знаков после запятой, чем указано в масштабе. Если включен, то значение автоматически округляется (например, Масштаб 2, значение пришло 123.126, то будет округлено - 123.13; если Масштаб 0 - 124). По умолчанию флаг не установлен (значение не будет округляться).
Параметры типа DateTime:
Тип данных (enum): настройка формата вывода времени, если не выбран Тип данных, то выводятся все значения.
Без часового пояса: указываются дата и время с локальным часовым поясом (то есть время будет указываться, но без учета принадлежности к UTC).
UTC: дата и время приводятся к универсальному координированному времени.
Локальное: указываются дата и время с локальным часовым поясом.
Обрезать автоматически (boolean): если установлен флаг, Платформа сама приводит значение к допустимому формату, если во входящих данных были дополнения. По умолчанию флаг не установлен (сохраняет входные данные без изменения).
Примечание
Иерархия типа поля допускает не более 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.
Комментарий: комментарий к полю.
Для создания новой структуры нажмите на кнопку + (Добавить поле). В таблице структуры будет добавлена строка нового поля.
На вкладке присутствует функциональность импорта метаданных из внешних источников (из систем 1С, СУБД, а также файлов swagger, wsdl, xml и json). Для этого нажмите на кнопку меню Импорт.
В открывшемся всплывающем окне укажите внешний источник импорта данных и нажмите на кнопку Далее.
Система произведет загрузку структуры из внешнего источника. Выберите требуемую структуру и нажмите на кнопку Ок.
Атрибуты
Вкладка Атрибуты предназначена для работы с атрибутами категории. Содержит панель функциональных кнопок и таблицу для отображения атрибутов аналогично вкладке Структура.
При заполнении экземпляра категории есть возможность указать для его атрибутов параметр необходимости заполнения (enabled). В зависимости от значения этого параметра у записей типа данных с этим экземпляром категории будет доступен или не доступен данный атрибут.
Также есть возможность указать значение для атрибутов экземпляра категории. В дальнейшем при заполнении типа с этой категорией указанное значение будет предлагаться в качестве значения по умолчанию, но может быть перезаписано для конкретного экземпляра типа.
Объекты интерфейса
Вкладка Объекты интерфейса содержит список объектов интерфейса Портала, связанных с категорией. Вкладка используется для создания конфигураций объектов и их быстрого размещения на Портале.
Рабочая область вкладки содержит панель функциональных кнопок и таблицу конфигураций объектов, у которых значение параметра refId совпадает со значением EntityId выбранного типа данных.
Функциональность кнопок Добавить, Редактировать, Удалить и Обновить совпадает с аналогичными кнопками в разделе Конфигурации объектов.
С помощью кнопки Добавить меню на портал объект типа BlazorMenu будет размещен на Портале. При отсутствии готового объекта BlazorMenu соответствующий объект будет создан. При этом в соответствующий пункт меню будет подставлен табличный объект интерфейса либо будет подставлен созданный объект типа GridElementContent. Итоговый пункт меню будет добавлен на Портал.
С помощью кнопки Добавить выбранный объект конфигурации на портал размещается готовое представление на Портале. При отсутствии объекта конфигураций типа BlazorMenu будет создан соответствующий объект с выбранной конфигурацией и добавлен на Портал. Если конфигурация типа BlazorMenu присутствует, конфигурация объекта будет заменена на выбранную, после чего объект будет добавлен на Портал.
Примечание
При генерации меню Портала для типа используются привязанные к типу конфигурации объектов.
Индексы
Вкладка Индексы доступна только для сохраняемых категорий (установлен флаг Сохраняемый тип данных). Содержит настройки хранения, аналогичные типам данных. С помощью кнопки + можно создать составные и нечеткие индексы.
Примечание
Категория и связанные с ней сохраняемые типы данных и категории должны храниться в одном банке данных.
Шаблоны наименований
Вкладка Шаблоны наименований доступна только для сохраняемых категорий. Позволяет настроить шаблоны, использующие в своем составе атрибуты категории. Значения шаблонов категории могут использоваться в шаблонах наименований типов с данной категорией.
Шаблон категории хранится в банке данных в экземпляре категории аналогично значениям собственных полей, имеет тип String и размерность 150. В шаблоне категории могут использоваться только атрибуты самой категории и статичные вставки (буквы, цифры, спецсимволы).
Правила заполнения шаблонов категорий:
При добавлении значения из атрибута простого типа используется формат %ИмяКатегории.ИмяАтрибутаПростого%.
При добавлении значения из атрибута типа ссылка используется формат %ИмяКатегории.ИмяАтрибутаСсылки.ИмяПоля% , где поле ИмяПоля имеет простой тип и не является массивом.
При использовании спецсимвола % его необходимо экранировать с помощью символа ^. Остальные статичные вставки не требуют экранирования.
Пример значения шаблона категории:
%ИмяКатегории.ИмяПоля1% %ИмяКатегории.ИмяАтрибутаСсылки.ИмяПоля% 100^% качество
Портал
Вкладка Портал позволяет работать с конфигурацией типа данных на Портале. Описание вкладки доступно в разделе Тип данных.