Можно ли отобрать записи в esq запросе на js с помощью фильтра по количеству записей на детали?
27 августа 2021 12:54
Можно ли отобрать записи в esq запросе на js с помощью фильтра по количеству записей на детали?
Вопрос получится это сделать без лишней вложенности к примеру с помощью механизма построения пути к колонкам или нет7
В бп в фильтре можно указать, объект.деталь.количество , но как это будет выглядеть оптимально с помощью кода не ясно
единственные идеи это городить вложенные запросы
Нравится
1 комментарий
28 августа 2021 17:21
Нет, просто по пути к колонке построить данный фильтр не выйдет, в любом случае нужно будет строить подзапрос на количество.
Вы можете посмотреть какой запрос генерируется при установке такой фильтрации в разделе, к серверу уходит POST запрос SelectQuery у которого в теле передаются все фильтры.
Пример фильтра в разделе:

Уходящий запрос:
{
"rootSchemaName": "Account",
"operationType": 0,
"includeProcessExecutionData": true,
"filters": {
"items": {
"8844d1b0-9ad8-410c-8c28-5a2f0a1c6ae3": {
"items": {
"CustomFilters": {
"items": {
"06f533f8-2b58-4ea3-8818-2a27d0c7e196": {
"filterType": 1,
"comparisonType": 7,
"isEnabled": true,
"trimDateTimeParameterToDate": false,
"leftExpression": {
"expressionType": 3,
"functionType": 2,
"aggregationType": 1,
"columnPath": "[Contact:Account].Id",
"subFilters": {
"items": {},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6,
"rootSchemaName": "Contact"
}
},
"rightExpression": {
"expressionType": 2,
"parameter": {
"dataValueType": 4,
"value": 0
}
},
"subFilters": {
"items": {},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6,
"rootSchemaName": "Contact"
}
}
},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6,
"rootSchemaName": "Account"
}
},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6
}
},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6
},
"columns": {
"items": {
"Id": {
"caption": "",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "Id"
}
},
"Name": {
"caption": "",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "Name"
}
},
"AccountLogo": {
"caption": "",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "AccountLogo"
}
},
"PrimaryContact": {
"caption": "",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "PrimaryContact"
}
},
"Phone": {
"caption": "Основной телефон",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "Phone"
}
},
"Type": {
"caption": "Тип",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "Type"
}
},
"AccountCategory": {
"caption": "Категория",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 0,
"columnPath": "AccountCategory"
}
},
"EntryPointsCount": {
"caption": "",
"orderDirection": 0,
"orderPosition": -1,
"isVisible": true,
"expression": {
"expressionType": 3,
"aggregationType": 1,
"columnPath": "[EntryPoint:EntityId].Id",
"subFilters": {
"items": {
"1afa5cfc-31e0-4a27-ad78-bac1de602da6": {
"filterType": 1,
"comparisonType": 3,
"isEnabled": true,
"trimDateTimeParameterToDate": false,
"leftExpression": {
"expressionType": 0,
"columnPath": "IsActive"
},
"rightExpression": {
"expressionType": 2,
"parameter": {
"dataValueType": 1,
"value": true
}
}
}
},
"logicalOperation": 0,
"isEnabled": true,
"filterType": 6
}
}
}
}
},
"isDistinct": false,
"rowCount": 30,
"rowsOffset": 0,
"isPageable": true,
"allColumns": false,
"useLocalization": true,
"useRecordDeactivation": false,
"serverESQCacheParameters": {
"cacheLevel": 0,
"cacheGroup": "",
"cacheItemName": ""
},
"queryOptimize": false,
"useMetrics": false,
"adminUnitRoleSources": 0,
"querySource": 0,
"ignoreDisplayValues": false,
"conditionalValues": null,
"isHierarchical": false
}
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать