Загрузка структуры бизнес-объекта (БО) по коду
Предусловие:
- У вас должно иметься БО (Что это такое и как создать?)
Запрос (Request):
POST /api/v1/metadata/load-bo-structure
Content-Type: application/json
API-TOKEN/TOKEN: your_token
- Метод: POST
- URL: http://your-domain.kz/api/v1/metadata/load-bo-structure
- Headers:
Content-Type: application/json API-TOKEN/TOKEN: your_token
- Как получить API_TOKEN или TOKEN?
Входные данные:
{
"boCode": "Код бизнес-объекта",
}
Ответ (Response)
{
"boId": "Идентификатор БО (бизнес-объекта)",
"boCode": "Код БО",
"name": "Название БО на русском языке",
"nameEng": "Название БО на английском языке",
"nameKaz": "Название БО на казахском языке(кириллица)",
"nameQaz": "Название БО на казахском языке(латиница)",
"recordName": "Название БО в списочных контекстах на русском",
"recordNameEng": "Название БО в списочных контекстах на английском",
"recordNameKaz": "Название БО в списочных контекстах на казахском (кириллица)",
"recordNameQaz": "Название БО в списочных контекстах на казахском (латиница)",
"actual": "Актуальность БО: true/false",
"boType": "Тип БО: PROCESS, DICTIONARY, PANEL, CO, BO",
"fields": { // Справочник всех полей данного БО
"UoRFk8Qlb1kCDRWW": { // Идентификатор поля 1 "Вложенное БО"
"id": "UoRFk8Qlb1kCDRWW", // Идентификатор поля 1 "Вложенное БО"
"code": "STUDENTS_FLD", // Код поля 1 "Вложенное БО"
"label": "Школьники", // Наименование на русском языке
"labelEng": "Students", // Наименование на английском языке
"labelKaz": "Оқушылар", // Наименование на казахском языке(кириллица)
"labelQaz": "Oqushilar", // Наименование на казахском языке(латиница)
"type": "BO", // Тип поля 1: Вложенный БО
"refBoCode": "STUDENTS", // Код БО на которое ссылается поле. Обязателен если тип: BO или CO
"isRefMultiple": "true", // Если true значит отображать много записей, иначе только одну
"fieldRefs": [ // Массив кодов полей БО Школьники, отображаемых в данном БО
"FULL_NAME",
"CLASS"
],
"isClickable": "true", // Если true, можно будет открыть карточку инстанции БО школьники
"isUnique": "false", // Если true, то данное поле уникальное
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "[\"UoRFk8Qlb1kCDRWW\"]" // Значение по умолчанию: массив идентификаторов инстанции БО
},
"OPOFk8Qlb1kCDRSA": { // Идентификатор поля 2 "Единичный выбор"
"id": "OPOFk8Qlb1kCDRSA", // Идентификатор поля 2 "Единичный выбор"
"code": "CATEGORY_FLD", // Код поля 2 "Единичный выбор"
"label": "Категория", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "RADIO_BUTTON_GROUP", // Тип поля 2 "Единичный выбор"
"options": { // Тип изменился: Единичный выбор уже содержит опций (Не ссылки)
"UoRFk8Qlb1kCDRWW": { // Идентификатор опций
"label": "Лицей", // Название опций на русском
"labelEng": "Lyceum", // Название на английском
"labelKaz": "Лицей", // Название на казахском (кириллица)
"labelQaz": "Lycei", // Название на казахском (латиница)
"code": "LYCEUM", // Код опций
"color": "#123321", // Цвет опций
"hiddenInKanban": false // Если true, то не показывать данную опцию в канбане
}
// Другие options... (На остальных языках)
},
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "\"hbVCdy5ApbZK3YGo\"" // Значение по умолчанию: Идентификатор опций
},
"kLRFk8Qlb1kCDRSA": { // Идентификатор поля 3 "Выпадающий список"
"id": "kLRFk8Qlb1kCDRSA", // Идентификатор поля 3 "Выпадающий список"
"code": "CITY_FLD", // Код поля 3 "Выпадающий список"
"label": "Город", // Наименование поля 3 на русском языке
// другие labels... (На остальных языках)
"type": "DROPDOWN_SINGLE", // Тип поля 3 "Выпадающий список" на основе справочника
"optionsFromDic": [ // Опции данного поля на основе справочника
{
"code": "ALMATY", // Код опций
"label": "02", // Значени опций на русском
"labelEng": "", // на английском
"labelKaz": "", // на казахском (кириллица)
"labelQaz": "", // на казахском (латиница)
"color": "#312022", // Цвет опций, если null, значит он ещё не выбран
"hiddenInKanban": "false" // Скрыто ли данная оцпия в канбане
},...
],
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue: \"32\"" // Значение по умолчанию: Код поля из справночника
},
"zxcFk8Qlb1kCDRSA": { // Идентификатор поля 4 "Опросник"
"id": "zxcFk8Qlb1kCDRSA", // Идентификатор поля 4 "Опросник"
"code": "QUESTIONNAIRE_FLD", // Код поля 4 "Опросник"
"label": "Анкета", // Наименование поля 4 на русском языке
// Другие labels... (На остальных языках)
"type": "QUESTIONNAIRE", // Тип поля 4: "Опросник"
"questionnaires": { // Список элементов в опроснике
"6KG4AcbAEAF6LV6C": { // Уникальный идентификатор элемента 1
"code": "QUESTION1", // Код элемента 1
"label": "Новая Школа?", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "false", // Если true - элемент является колонкой, иначе строкой в опроснике
"orderIndex": 0 // Порядок в строках с нуля: 0-ой, 1-ый, 2-ой и т.д
},
"eUBtKXfhzHNuf9Ho": { // Уникальный идентификатор элемента 2
"code": "ANSWER1", // Код элемента 2
"label": "ДА!", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "true", // True значит элемент является колонкой
"orderIndex": 0 // Порядок в колонках с нуля: 0-ой, 1-ый, 2-ой и т.д
},
"eUBtKXfhzHNuf9Ho": { // Уникальный идентификатора элмента 3
"code": "ANSWER2", // Код элемента 3
"label": "НЕТ!", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "true", // True значит элемент является колонкой
"orderIndex": 1 // Порядок в колонках с нуля: 0-ой, 1-ый, 2-ой и т.д
}
},
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "[{\"columnId\":\"QpOr3T~C6X5K2Xtg\",\"rowId\":\"7YkWBGfLoZXXENz9\"}]",
},
"dewFk8Qlb1kCDRSA": { // Идентификатор поля 5 "Вложенный СО"
"id": "dewFk8Qlb1kCDRSA", // Идентификатор поля 5 "Вложенный СО"
"code": "TEACHERS_FLD", // Код поля 5 "Вложенный СО"
"label": "Учители", // Наименования поля 5 на русском
// Дургие labels... (На остальных языках)
"type": "CO", // Тип поля 5: Вложенный СО
"refBoCode": "TEACHERS", // Код СО на которое ссылается данное поле
"isRefMultiple": "true", // Если true значит отображать много записей, иначе только одну
"fieldRefs": [ // Массив кодов полей БО Школьники, отображаемых в данном БО
"FULL_NAME",
"CLASS"
],
"isClickable": "true", // Если true, можно будет открыть карточку инстанции БО школьники
"isUnique": "false", // Если true, то данное поле уникальное
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "[\"LKRFk8Qlb1kCDRSA-UoRFk8Qlb1kCDRWW\"]" // Значение по умолчанию для СО
},
"asdFk8Qlb1kCDRSA": { // Идентификаторп поля 6 "Чек лист"
"id": "asdFk8Qlb1kCDRSA", // Идентификаторп поля 6 "Чек лист"
"code": "CHECKLIST_FLD", // Код поля 6 "Чек лист"
"label": "Задачи", // Наименование поля 6 на русском
// Дургие labels... (На остальных языках)
"type": "CHECKLIST", // Тип поля 6: "Чек лист"
"isRequired": "true", // Если true, то обязателен хотя бы один пункт
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"isSelectOnly": "false", // Если true, то разрешается только ставить галочки
"isAppendable": "true", // Если true, можно дополнять и удалять опции, иначе только изменять
"defaultValue":
"[{\"label\":\"Нанять физрука\",\"checked\":true},{\"label\":\"Купить новые мячи\",\"checked\":false}]",
},
"CREATED_BY": { // "Автор" - системное поле, поэтому не имеет идентфикиатор или кода
"label": "Атвор", // Наименование поля на русском
// Дургие labels... (На остальных языках)
"type": "BO",
"refBoCode": "Person", // Код БО на которое ссылается поле. Обязателен если тип: BO или CO
"isRefMultiple": "true", // Если true значит отображать много записей, иначе только одну
"fieldRefs": [ // Массив кодов полей БО Пользователи, отображаемых в данном БО
"surname", // Поле Фамилия Пользователя
"name" // Поле Имя Пользователя
]
}, // defaultValue: У системных полей нет значения по умолчанию
"IN_MIGRATION_UPDATED_AT": { // "Дата обновления IN миграции" - системное поле
"label": "Дата обновления IN миграции",
// Дургие labels... (На остальных языках)
"type": "FULL_DATE"
}, // defaultValue: У системных полей нет значения по умолчанию
"OPEN_COUNT": { // "Счетчик открытий" - системное поле
"label": 'Счетчик открытий',
// Дургие labels... (На остальных языках)
"type": "INPUT_NUMBER"
}, // defaultValue: У системных полей нет значения по умолчанию
"1DTrW6AVSuOhqHyw": { // Идентификаторп поля 7 "Мультиязычное текстовое поле"
"id": "1DTrW6AVSuOhqHyw", // Идентификаторп поля 7 "Мультиязычное текстовое поле"
"code": "Multiyazychnoe_pole", // Код поля 7 "Мультиязычное текстовое поле"
"label": "Мультиязычное поле", // Наименование поля 7 на русском
// Дургие labels... (На остальных языках)
"type": "INPUT_TEXT_LANG", // Тип поля 7
"isRefMultiple": false,
"isClickable": false,
"isUnique": false,
"isRequired": false,
"isReadonly": false,
"unacceptableValue": false,
"isAppendable": false,
"isSelectOnly": false,
"isSystem": false,
"defaultValue": "Школа", // Значение по умолчанию на русском
"defaultValueEng": "School", // Значение по умолчанию на английском
"defaultValueKaz": "Мектеп", // Значение по умолчанию на казахском (кириллица)
"defaultValueQaz": "Mektep", // Значение по умолчанию на казахском (латиница)
},
}
ВНИМАНИЕ! Другие не системные поля имеют следующую структуру:
{
"asdFk8Qlb1kCDRSA": { // Идентификаторп поля
"id": "asdFk8Qlb1kCDRSA", // Идентификаторп поля
"code": "CHECKLIST_FLD", // Код поля
"label": "Задачи", // Наименование поля на русском
// Дургие labels... (Наименования на остальных языках)
"type": "???", // Специфичный тип поля
"isRequired": "true", // Если true, то обязателен хотя бы один пункт
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "???" // Соответсвующее значение типу поля
}
}
У них нет каких-то дополнительных полей, отличаются лишь типом (type) и хранимым значением по умолчанию (defaultValue). Здесь вы можете узнать какие типы есть и какие значение они хранят:
- Какие есть типы полей и какие значения они хранят?
- Какие есть типы системных полей и какие значения они хранят?
Примечание: Поля виджетов не отображаются
Примеры Ответов для разных БО:
Есть следующие типы бизнес-объектов:
Бизнес-объект (BO)
На примере, у нас есть обычная БО с названием "Школа" с кодом "SCHOOL" и со следующими полями:
- Школьники (Вложенное БО) с полями: ФИО и Класс
- Категория (Единичный список): Лицей, Гимназия или Обычная школа
- Город (Выпадающий список на основе справочника): 02 Алматы, 01 Астана и т.д
- Простая анкета (Опросник) с одним вопросом "Новая Школа?" и двумя ответами "Да!", "Нет!"
- Учители (Вложенный Составной Объект) с отображаемыми полями: ФИО и Класс
- Задачи (Чек лист) с одной выполненной задачей "Нанять физрука" и одной не выполненной задачей "Купить футбольный мяч"
{
"boId": "bMll2qpWTyJOlgtK", // Идентификатор БО (бизнес-объекта)
"boCode": "SCHOOL", // Код БО
"name": "Школа", // Название БО на русском языке
"nameEng": "School", // Название БО на английском языке
"nameKaz": "Мектеп", // Название БО на казахском языке(кириллица)
"nameQaz": "Mektep", // Название БО на казахском языке(латиница)
"recordName": "Школа", // Название БО в списочных контекстах на русском
"recordNameEng": "School", // Название БО в списочных контекстах на английском
"recordNameKaz": "Мектеп", // Название БО в списочных контекстах на казахском (кириллица)
"recordNameQaz": "Mektep", // Название БО в списочных контекстах на казахском (латиница)
"actual": true, // Актуальность БО
"boType": "BO", // Тип БО: PROCESS, DICTIONARY, PANEL, CO, BO
"fields": { // Справочник всех полей БО
"UoRFk8Qlb1kCDRWW": { // Идентификатор поля 1
"id": "UoRFk8Qlb1kCDRWW", // Идентификатор поля 1
"code": "STUDENTS_FLD", // Код поля 1
"label": "Школьники", // Наименование на русском языке
"labelEng": "Students", // Наименование на английском языке
"labelKaz": "Оқушылар", // Наименование на казахском языке(кириллица)
"labelQaz": "Oqushilar", // Наименование на казахском языке(латиница)
"type": "BO", // Тип поля 1: Вложенный БО
"refBoCode": "STUDENTS", // Код БО на которое ссылается поле. Обязателен если тип: BO или CO
"isRefMultiple": "true", // Если true значит отображать много записей, иначе только одну
"fieldRefs": [ // Массив кодов полей БО Школьники, отображаемых в БО Школа
"FULL_NAME",
"CLASS"
],
"isClickable": "true", // Если true, можно будет открыть карточку инстанции БО школьники
"isUnique": "false", // Если true, то данное поле уникальное
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "[\"UoRFk8Qlb1kCDRWW\"]" // Значение по умолчанию: массив идентификаторов инстанции БО
},
"OPOFk8Qlb1kCDRSA": { // Идентификатор поля 2
"id": "OPOFk8Qlb1kCDRSA", // Идентификатор поля 2
"code": "CATEGORY_FLD", // Код поля 2
"label": "Категория", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "RADIO_BUTTON_GROUP", // Тип поля 2 "Единичный выбор"
"options": { // Тип изменился: Единичный выбор уже содержит опций (Не ссылки)
"UoRFk8Qlb1kCDRWW": { // Идентификатор опций
"label": "Лицей", // Название опций на русском
"labelEng": "Lyceum", // Название на английском
"labelKaz": "Лицей", // Название на казахском (кириллица)
"labelQaz": "Lycei", // Название на казахском (латиница)
"code": "LYCEUM", // Код опций
"color": "#123321", // Цвет опций
"hiddenInKanban": false // Если true, то не показывать данную опцию в канбане
}
// Другие options... (На остальных языках)
},
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "\"hbVCdy5ApbZK3YGo\"" // Значение по умолчанию: Идентификатор опций
},
"kLRFk8Qlb1kCDRSA": { // Идентификатор поля 3
"id": "kLRFk8Qlb1kCDRSA", // Идентификатор поля 3
"code": "CITY_FLD", // Код поля 3
"label": "Город", // Наименование поля 3 на русском языке
// другие labels... (На остальных языках)
"type": "DROPDOWN_SINGLE", // Тип поля 3 "Выпадающий список" на основе справочника
"optionsFromDic": [ // Опции данного поля на основе справочника
{
"code": "ALMATY", // Код опций
"label": "02", // Значени опций на русском
"labelEng": "", // на английском
"labelKaz": "", // на казахском (кириллица)
"labelQaz": "", // на казахском (латиница)
"color": "#312022", // Цвет опций, если null, значит он ещё не выбран
"hiddenInKanban": "false" // Скрыто ли данная оцпия в канбане
},...
],
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue: \"32\"" // Значение по умолчанию: Код поля из справночника
},
"zxcFk8Qlb1kCDRSA": { // Идентификатор поля 4
"id": "zxcFk8Qlb1kCDRSA", // Идентификатор поля 4
"code": "QUESTIONNAIRE_FLD", // Код поля 4
"label": "Анкета", // Наименование поля 4 на русском языке
// Другие labels... (На остальных языках)
"type": "QUESTIONNAIRE", // Тип поля 4
"questionnaires": { // Список элементов в опроснике
"6KG4AcbAEAF6LV6C": { // Уникальный идентификатор элемента 1
"code": "QUESTION1", // Код элемента 1
"label": "Новая Школа?", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "false", // Если true - элемент является колонкой, иначе строкой в опроснике
"orderIndex": 0 // Порядок в строках с нуля: 0-ой, 1-ый, 2-ой и т.д
},
"eUBtKXfhzHNuf9Ho": { // Уникальный идентификатор элемента 2
"code": "ANSWER1", // Код элемента 2
"label": "ДА!", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "true", // True значит элемент является колонкой
"orderIndex": 0 // Порядок в колонках с нуля: 0-ой, 1-ый, 2-ой и т.д
},
"eUBtKXfhzHNuf9Ho": { // Уникальный идентификатора элмента 3
"code": "ANSWER2", // Код элемента 3
"label": "НЕТ!", // Наименование на русском языке
// Другие labels... (На остальных языках)
"isColumn": "true", // True значит элемент является колонкой
"orderIndex": 1 // Порядок в колонках с нуля: 0-ой, 1-ый, 2-ой и т.д
}
},
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": ""[{"columnId":"QpOr3T~C6X5K2Xtg","rowId":"7YkWBGfLoZXXENz9"}]"" // Значенип по умолчанию
},
"dewFk8Qlb1kCDRSA": { // Идентификатор поля 5
"id": "dewFk8Qlb1kCDRSA", // Идентификатор поля 5
"code": "TEACHERS_FLD", // Код поля 5
"label": "Учители", // Наименования поля 5 на русском
// Дургие labels... (На остальных языках)
"type": "CO", // Тип поля 5
"refBoCode": "TEACHERS", // Код СО на которое ссылается данное поле
"isRefMultiple": "true", // Если true значит отображать много записей, иначе только одну
"fieldRefs": [ // Массив кодов полей БО Школьники, отображаемых в БО Школа
"FULL_NAME",
"CLASS"
],
"isClickable": "true", // Если true, можно будет открыть карточку инстанции БО школьники
"isUnique": "false", // Если true, то данное поле уникальное
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "[\"LKRFk8Qlb1kCDRSA-UoRFk8Qlb1kCDRWW\"]" // Значение по умолчанию для СО
},
"asdFk8Qlb1kCDRSA": { // Идентификаторп поля 6
"id": "asdFk8Qlb1kCDRSA", // Идентификаторп поля 6
"code": "CHECKLIST_FLD", // Код поля 6
"label": "Задачи", // Наименование поля 6 на русском
// Дургие labels... (На остальных языках)
"type": "CHECKLIST", // Тип поля 6
"isRequired": "true", // Если true, то обязателен хотя бы один пункт
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"isSelectOnly": "false", // Если true, то разрешается только ставить галочки
"isAppendable": "true", // Если true, можно дополнять и удалять опции, иначе только изменять
"defaultValue":
"[{\"label\":\"Нанять физрука\",\"checked\":true},{\"label\":\"Купить новые мячи\",\"checked\":false}]",
},
}
}
Составной объект (CO)
На примере, у нас есть 2 бизнес-объекта: "Клиенты А" и "Клиенты Б". Из которых составляется СО "Клиенты А и Б" со следующими полями:
- Телефон А как простой атрибут из БО "Клиенты А"
- ФИО Б как простой атрибут из БО "Клиенты Б"
- Общий Email как составной атрибут, объединенный из полей email обеих БО
Данный тип CO в отличий от BO будет обязательно иметь новые поля: boCodes для СО и boFieldIds для каждого поля CO.
{
"boId": "bMll2qpWTyJOlgtK", // Идентификатор БО (бизнес-объекта)
"boCode": "CLIENT_A_AND_B", // Код БО
"name": "Клиенты А и Б", // Название БО на русском языке
// Другие name... (На остальных языках)
"recordName": "Клиенты А и Б", // Название БО в списочных контекстах на русском
// Другие recordName... (На остальных языках)
"actual": true, // Актуальность БО
"boType": "CO", // Выбранный тип CO (Составной объект)
"boCodes": "CLIENT_A, CLIENT_B", // Список кодов бизнес-объектов, входящих в составной объект (CO)
"fields": {
"h~7F7mw0~207K1~A": { // Идентификатор поля 1
"id": "h~7F7mw0~207K1~A", // Идентификатор поля 1
"code": "CLIENT_A", // Код поля 1
"label": "Телефон А", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "INPUT_PHONE", // Тип поля 1
"boFieldIds": [ // Массив используемых полей. В данном поле Phone A только один:
"usgabWw4FFwkhMzx-30vrQut1eRZiS9Ve" // Идентификатор БО - Идентификатор Поля
],
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false" // Если true, поле не сохраняет значение, оставляет его по умолчанию
},
"nqFfMpmoETaQyyMh": { // Идентификатор поля 2
"id": "nqFfMpmoETaQyyMh", // Идентификатор поля 2
"code": "FULL_NAME_B", // Код поля 2
"label": "ФИО Б", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "INPUT_TEXT", // Тип поля 2
"boFieldIds": [ // Массив используемых полей. В данном поле FULL_NAME_B только один:
"usgabWw4FFwkhMzx-30vrQut1eRZiS9Ve" // Идентификатор БО - Идентификатор Поля
],
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false" // Если true, поле не сохраняет значение, оставляет его по умолчанию
},
"nqFfMpmoETaQyyMh": { // Идентификатор поля 3
"id": "nqFfMpmoETaQyyMh", // Идентификатор поля 3
"code": "GENERAL_EMAIL", // Код поля 3
"label": "Общий Email", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "INPUT_EMAIL", // Тип поля 3
"boFieldIds": [ // Массив используемых полей. В данном поле FULL_NAME_B два:
"usgabWw4FFwkhMzx-30vrQut1eRZiS9Ve", // Идентификатор БО - Идентификатор Поля
"usgabWw4FFwkhMzx-iG1IX2PJ9VS1P7i5" // Идентификатор БО - Идентификатор Поля
],
"isRequired": "true", // Если true, то необходимо заполнять это поле
"isReadonly": "false", // Если true, то поле только для чтения
"unacceptableValue": "false" // Если true, поле не сохраняет значение, оставляет его по умолчанию
}
}
}
Панель (PANEL)
Панель кроме типа по своей структуре ни чем не отличается от обычного БО, её главное отличие в поведении, так как у вас нет возможности создавать её инстанции, поэтому она нужно в основном для удобного просмотра.
{
"boId": "bMll2qpWTyJOlgtK", // Идентификатор БО (бизнес-объекта)
"boCode": "PANEL_USERS", // Код БО
"name": "Панель Пользователей", // Название БО на русском языке
// Другие name... (На остальных языках)
"recordName": "Клиенты А и Б", // Название БО в списочных контекстах на русском
// Другие recordName... (На остальных языках)
"actual": true, // Актуальность БО
"boType": "PANEL", // Выбранный тип PANEL (Панель)
"fields": {
// Поля панеля
}
Справочник (DICTIONARY)
На примере, у нас есть справочник "Города" со следующими полями:
- Код Города как уникальный код
- Название Города как значение
Данный тип DIC отличатеся от BO, тем что имеет новые поля boCodes для СО и boFieldIds для каждого поля СО
{
"boId": "bMll2qpWTyJOlgtK", // Идентификатор БО (бизнес-объекта)
"boCode": "CITY", // Код БО
"name": "Города", // Название БО на русском языке
// Другие name... (На остальных языках)
"recordName": "Клиенты А и Б", // Название БО в списочных контекстах на русском
// Другие recordName... (На остальных языках)
"actual": true, // Актуальность БО
"boType": "DIC", // Выбранный тип DIC (Справочник)
"dictionaryFields": { // Обязательные поля справочника:
"CODE": "CITY_CODE", // Код поля который является кодом справочника
"LABEL": "CITY_NAME" // Код поля котоырй является значением справочника
},
"fields": {
"rTF8MsbJ3seduNfJ": { // Идентификатор поля 1
"id": "rTF8MsbJ3seduNfJ", // Идентификатор поля 1
"code": "CITY_CODE", // Код поля 1
"label": "Код Города", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "INPUT_TEXT", // Тип поля 1
"isSystem": "true", // Значит некоторые свойства назначенные системой не могут меняться
"isUnqiue": "true", // Данное поле всегда уникальное, так как isSystem true
"isRequired": "true", // Данное поле всегда необходимо заполнять, так как isSystem true
"isReadonly": "false", // И соответственно, данное поле никогда не будет для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "02asd" // Значение по умолчанию
},
"zR5tx0fRRPs3yriV": { // Идентификатор поля 2
"id": "zR5tx0fRRPs3yriV", // Идентификатор поля 2
"code": "CITY_NAME", // Код поля 2
"label": "Название Города", // Наименование на русском языке
// другие labels... (На остальных языках)
"type": "INPUT_TEXT_LANG", // Тип поля 2
"isSystem": "true", // Значит некоторые свойства назначенные системой не могут меняться
"isUnqiue": "false", // Данное поле никогда не уникальное, так как isSystem true
"isRequired": "true", // Данное поле всегда необходимо заполнять, так как isSystem true
"isReadonly": "false", // И соответственно, данное поле никогда не будет для чтения
"unacceptableValue": "false", // Если true, поле не сохраняет значение, оставляет его по умолчанию
"defaultValue": "Алматы" // Значение по умолчанию
}
}
}
Бизнес-процесс (PROCESS)
Бизнес-процесс также, как и Панель кроме типа по своей структуре не отличается от обычного БО, её главное отличие в поведении, в том что внутри неё есть скрипты и процессы, которые могут динамически изменять БО.
{
"boId": "bMll2qpWTyJOlgtK", // Идентификатор БО (бизнес-объекта)
"boCode": "PANEL_USERS", // Код БО
"name": "Панель Пользователей", // Название БО на русском языке
// Другие name... (На остальных языках)
"recordName": "Клиенты А и Б", // Название БО в списочных контекстах на русском
// Другие recordName... (На остальных языках)
"actual": true, // Актуальность БО
"boType": "PROCESS", // Выбранный тип PROCESS (Бизнес-процесс)
"fields": {
// Поля панеля
}
Другие типы бизнес-объектов:
Справочник Панель Составной объект Бизнес-объект