Можно ли отобрать записи в esq запросе на js с помощью фильтра по количеству записей на детали?

Можно ли отобрать записи в esq запросе на js с помощью фильтра по количеству записей на детали?

Вопрос получится это сделать без лишней вложенности к примеру с помощью механизма построения пути к колонкам или нет7

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

единственные идеи это городить вложенные запросы

Нравится

1 комментарий

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

Вы можете посмотреть какой запрос генерируется при установке такой фильтрации в разделе, к серверу уходит 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
}

 

Показать все комментарии