Пример 2: Поиск клиента по фамилии ИЛИ имени "Сидоров Андрей"
Запрос (Request):
{
"boCode": "CLIENT", // Код БО (Как получить? Смотрите ниже)
"headCodes": ["SURNAME", "NAME"], // Коды полей которые будут отображены в результате
"orderingFieldCode": "NAME", // Сортировка по имени
"orderState": "ASC", // По возрастанию
"paging": {
"offset": 0, // Начиная с 0
"limit": 10, // Получить только 10 элементов
},
"state": "ALL", // Записи в работе (Не REMOVED или ARCHIVED)
"touchedFilter": "ALL", // И новые и старые записи будут видны нам
"brackets" : [
{
"id": "DTb445uu", // Рандомный уникальный идентификатор бракета
"parentId": null,
"parentTreeIds": [],
"connectionType": "OR", // Поменяли на OR (ИЛИ) связь со следующим бракетом
// OR - значит что совпадение по фамилии ИЛИ по имени
"brackets": [], // дочерние бракеты (позже при сложных фильтрах)
"dynamicFilters": [
{
"id": "nl4Fcy3Z", // Рандомный идентификатор фильтра
"fieldId": "xQK11@uul08penSM", // Идентификатор поля (Как получить? Смотрите ниже)
"type": "INPUT_TEXT", // Тип поля (Как получить? Смотрите ниже)
"value": "Сидоров" // Значение поля (Как получить? Смотрите ниже)
}]
},
{
"id": "DTb445ui", // Идентификатор бракета
"parentId": null, // Пусто так как родителя нет
"parentTreeIds": [], // Пусто так как нет родителей
"connectionType": "AND", // Связь со следующим будущим фильтром
"brackets": [],
"dynamicFilters":[
{
"id": "nl4Fcy3Z", // Рандомный идентификатор фильтра
"fieldId": "oDZwyNuzRXrACu7w", // Идентификатор поля (Как получить? Смотрите ниже)
"type": "INPUT_TEXT", // Тип поля (Как получить? Смотрите ниже)
"value": "Андрей" // Значение поля (Как получить? Смотрите ниже)
}
]
}
]
}
Предусловия для запроса:
Создадим БО "Клиент" с текстовыми полями "Фамилия" и "Имя"
Изменим код бизнес-объекта на CLIENT (Как изменить код бизнес-объекта?)
Также изменим коды полей: у поля Фамилия будет
SURNAME
, у поля Имя будетNAME
. Как изменить коды полей?У данного БО создадим следующих клиентов:
Предусловия для составления бракетов:
Как вы видели в запросе для бракетов нам нужно получить id и type полей по которым мы будем фильтровать:
Нажимаем на иконку шестеренки у поля Фамилия:
- Видим что id равен
xQK11@uul08penSM
, а type равенINPUT_TEXT
(тут нужно убрать префиксValue_
) - И тоже, самое получаем у поля "Имя": id =
oDZwyNuzRXrACu7w
, type =INPUT_TEXT
(тут нужно убрать префиксValue_
).
Ответ (Response):
Запрос сработал успешно и нашёл клиентов, у которого имя "Андрей" ИЛИ фамилия "Сидоров".
{
"boCode": "CLIENT",
"businessObjectId": "7x9hWxwZ@xa2D3gB",
"heads": [
{
"fieldId": "xQK11@uul08penSM",
"name": "Фамилия",
"code": "SURNAME"
},
{
"fieldId": "oDZwyNuzRXrACu7w",
"name": "Имя",
"code": "NAME"
}
],
"records": [
{
"boId": null,
"instanceId": "3fdhTt7wmbEtEKda", // Первая запись нашлась совпадение по фамилии и имени
"values": [
{
"coFieldId": null,
"fieldId": "xQK11@uul08penSM",
"value": "Сидоров",
"displayValue": "Сидоров",
"isReadOnly": false,
"readOnly": false
},
{
"coFieldId": null,
"fieldId": "oDZwyNuzRXrACu7w",
"value": "Андрей",
"displayValue": "Андрей",
"isReadOnly": false,
"readOnly": false
}
]
},
{
"boId": null,
"instanceId": "fPhK6xoFo4CmU~IU", // Вторая запись нашлась совпадение по имени
"values": [
{
"coFieldId": null,
"fieldId": "xQK11@uul08penSM",
"value": "Малахов",
"displayValue": "Малахов",
"isReadOnly": false,
"readOnly": false
},
{
"coFieldId": null,
"fieldId": "oDZwyNuzRXrACu7w",
"value": "Андрей",
"displayValue": "Андрей",
"isReadOnly": false,
"readOnly": false
}
]
}
],
"hasNext": false,
"totalHits": 2,
"totalHitsMore": false,
"tookInMillis": 2
}