Предыдущая статья курса: Хранение данных. Классы
Общая информация
Свойства, или поля определяют структуру данных класса.
Конечный набор полей класса определяется несколькими коллекциями:
- data - основные свойства, определяющие структуру класса в хранилище
- calculated - вычислимые в реальном времени свойства, доступные только в приложениях и обертках
- joined - присоединенные свойства, содержащие информацию из других классов (детали/табличные части)
- override - переопределенные свойства, позволяющие скорректировать некоторые настройки унаследованных от родителей свойств
Коллекция свойств data
Основная работа при создании классов будет сосредоточена на коллекции data, которая и определяет основную структуру данных класса. Например, при хранении данных класса в Postgres, состав колонок таблицы будет в первую очередь определяться коллекцией data (а также наследованными колонками, если указан родительский класс).
Каждое свойство определяется, в первую очередь, типом данных, которые будут в нем храниться.
Существует три вида типов данных:
- Базовое значение (base/) - значимые типы данных, в конечной структуре будут храниться значения данных свойств (например, строка/число/бинарные данные/дата)
- Перечисление - тип данных, позволяющий выбирать значение из заданного в пакете списка констант (например, статусы обращения - новое, в работе, отменено, завершено и т.д.)
- Класс - ссылочный тип данных, позволяющий связывать различные классы между собой. В конечной структуре будут храниться ссылки на данные других классов (например, ссылка на контакт, организацию или другие вспомогательные данные)
Параметры свойств коллекции data
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
name | Системное название. Используется для формирования колонок в хранилище, а также при работе с API | |
caption | Заголовок. Используется при выводе данных пользователю | |
dataType | Тип данных. Опрееделяет тип хранимых свойством данных. Формируется динамически исходя из списка доступных в конкретной системе пакетов | |
required | False | Признак обязательного свойства. Если установлен в True, то объект класса не может быть сохранен, если данное свойство не заполнено (проверка на стороне back-end) |
multi | False | |
defaultValue | Код (TypeScript), задающий значение по-умолчанию | |
unique | False | Признак уникального значения. При установленном значении True, требует соблюдения уникальности значений данного свойства среди всех объектов данного класса |
lookup | False | |
indexed | False | Признак, позволяющий настроить индексирование данных объекта по данному свойству |
unmodifiable | False | Признак, запрещающий изменение данного свойства |
weakLink | ||
autoCalcExpression | Код (TypeScript), задающий алгоритм расчета данного свойства | |
beforeSetCode | Код (TypeScript), выполняющийся перед изменением значения свойства | |
afterSetCode | Код (TypeScript), выполняющийся после изменения значения свойства |
Ограниение доступа к свойствам
Для каждого свойства могут быть заданы фильтры для ограничения доступа к данным по ролям. Праметры фильтров указываются в соотсветствии с документацией на портале вендора.
Параметры отображения свойств (вкладка UI)
Параметры на вкладке UI не влияют на логику хранения и использования свойств, они задают параметры отображения данных свойств в различных интерфейсах системы.
Большая часть данных параметров будет рассмотрена отдельно в статье, посвещенной Control'ам.
В данной статье рассмотрим только основные параметры, влияющие на отображение свойств.
Общие параметры отображения
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
showInTable | True | Отображать ли данное свойство в реестре данных класса |
showInCard | True | Отображать ли данное свойство в карточке редактирования |
showInGroupModify | False | Включать ли данное свойство в интерфейс группового изменения объектов |
editor | Ссылка на редактор данного свойства (создаются в разделе Editors приложения Builder) | |
required | False | Признак обязательности данного свойства (проверка на стороне front-end) |
readOnly | False | Значение свойства доступно только для чтения (проверка на стороне front-end) |
orderIndex | Порядковый номер для сортировки |
Параметры отображения в карточке редактирования
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
tabCaption | Имя вкладки, в которой будет отображаться данное свойство | |
groupCaption | Имя группы, в которой будет отображаться данное свойство | |
colSpan | Ширина в колонках, которую будет занимать данное свойство | |
actionButtons | JSON, описывающий кнопки действия с данным свойством | |
cardContents | ||
control_fullName | Полное имя Control'а, который отвечает за вывод данного свойства (опционально, для переопределения отображения) | |
controlOptions | Значение параметров контрола (опционально, для переопределения отображения) |
Параметры отображения в таблице реестра данных
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
width | Ширина колонки | |
wordWrap | False | Переносить ли текст значения, если он не влезает в ширину колонки |
allowShowHide | True | Разрешить скрытие и отображение колонки данного свойства |
allowSorting | True | Разрешить сортировку по данному свойству |
allowFiltering | True | Разрешить фильтрацию по данному свойству |
allowHeaderFiltering | True | |
allowSearch | True | Разрешить поиск по значениям в колонке данного свойства |
showCellHint | Отображать подсказку в ячейке таблицы | |
exportMode | auto | Доступность экспорта данных:
|
Параметры валидации данных
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
maxLength | Максимальная длина содержимого (строки) | |
mask | Маска содержимого
Пример: L000LL – госномер автомобиля Доступные элементы:
| |
validationPattern | Шаблон содержимого (регулярное выражение) | |
validationMessage | Сообщение о неудачной валидации | |
validationCode | Код (JavaScript) валидации.
Пример:
|
Справочные данные
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
description | Описание поля, для включения в справку по классу | |
hint | Подсказка к полю, отображается в карточке редактирования по нажатию на иконку со знаком вопроса, в таблице реестра данных при наведении на ячейку со значением (если включено в настройках) |
Установка значений по-умолчанию
Значения свойств по-умолчанию могут быть заданы кодом (TypeScript) с помощью параметра defaultValue в параметрах свойства.
Также, существует специальная коллекция defaultValues, в которой в виде пары "имя свойства":[код установки значения] можно централизовано задать значения по-умолчанию.
Коллекция свойств calculated
Коллекция calculated определяет набор свойств, значения которых не будут помещаться в хранилище, а будут расчитываться, согласно указанному алгоритму.
В настройках класса можно установить признак, чтобы все расчетные свойства обновлялись автоматически.
Такие свойства определяются следующим набором параметров:
Имя | Значение по-умолчанию | Комментарий |
---|---|---|
name | Системное название. Используется для формирования колонок в хранилище, а также при работе с API | |
caption | Заголовок. Используется при выводе данных пользователю | |
dataType | Тип данных. Опрееделяет тип хранимых свойством данных. Формируется динамически исходя из списка доступных в конкретной системе пакетов | |
required | Признак обязательного свойства. Если установлен в True, то объект класса не может быть сохранен, если данное свойство не заполнено (проверка на стороне back-end) | |
multi | ||
getCode | Код (TypeScript), который задает алгоритм получения значения свойства | |
setCode | Код (TypeScript), который задает алгоритм установки значения свойства |
Настройки на вкладке UI аналогичны настройкам для базовой коллекции свойств data.