Структура Схемы данных#

Для создания форм и работы с остальными элементами системы вы должны знать и понимать формат JSON.

Примечание

JSON — текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми.

Шаблон схемы данных#

Ниже представлен основной шаблон JSON-схемы для форм со всеми присущими атрибутами. Порядок атрибутов может быть любым.

"scheme": {
    "title": "Hello World Form",
    "required": [ "FIELDNAME" ],
    "order": [ "FIELDNAME" ],
    "dependencies": {
        "FIELDNAME_0": "[OTHER_FIELDNAMES]"
        }
    "tabs": [ "OBJECTS" ],
    "properties": [
       {
        "type": "FIELDTYPE",
        "name": "FIELDNAME"
        "..."
       }
     ]
}

Наименование поля

Определение

title

заголовок формы.

required

список полей, обязательных к заполнению.

order

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

dependencies

список полей, зависящих друг от друга. Если заполнено поле FIELDNAME_0, то поля OTHER_FIELDNAMES тоже должны быть заполнены.

tabs

вкладки для отображения формы по частям. Подробнее о них можно читать в соответствующей статье.

properties

список полей формы.

type

поле, в котором указывается тип поля.

name

поле, в котором пользователь указывает название поля. Повторяющихся название в одной scheme быть не должно.

Основным атрибутом формы является properties и всё, что внутри него находится. Все остальные атрибуты можно не добавлять, если такой необходимости нет.

Но форма не будет работать, если не добавить в properties хотя бы один компонент формы. Подробнее о компонентах в разделе Компоненты формы.

Пример формы#

Эта форма начинается с атрибутов, в которых:

  • задаётся название — title,

  • порядок отображения компонентов — order,

  • список обязательных компонентов — required.

"order": [
    "Hello World!"
],
"title": "Hello World Form",
"required": [
    "Hello World!"
]

Далее в properties прописываются компоненты с необходимыми атрибутами:

"properties": [
    {
        "name": "Hello World!",
        "order": [
            "textField",
            "dateField"
        ],
        "required": [
            "textField",
            "dateField"
        ],
        "type": "object",
        "title": "Привет, мир!",
        "properties": [
            {
                "type": "text",
                "title": "Приветствие в текстовом виде",
                "description": "Введите приветствие",
                "name": "textField"
            },
            {
                "type": "date",
                "title": "Дата приветствия",
                "description": "Выберите дату приветствия",
                "helperText": "Советуем приветствовать мир в течение рабочего дня, иначе есть шанс, что вам не ответят.",
                "name": "dateField"
            }

В клиентском приложении эта форма будет выглядеть следующим образом:

Форма в конфигураторе

Подробнее о компонентах, которые использовались в этой форме:

  1. Краткий текст — text

  2. Дата — date

  3. Разделы в форме — object