Платформа 3V/Формы/Источники данных/Справочник/Фильтрация/От другого справочника: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 54: Строка 54:
 
   "entrySettings": null,
 
   "entrySettings": null,
 
   "uiSources": [
 
   "uiSources": [
    {
 
      "actionConfirmation": {
 
        "message": null,
 
        "conditionId": null
 
      },
 
      "controlsValueCalculateRulesIds": [],
 
      "conditionalActions": [],
 
      "onBeforeClickConditionalActions": [],
 
      "submitRuleIds": [],
 
      "id": 100,
 
      "caption": "Сохранить",
 
      "enable": true,
 
      "visible": true,
 
      "hint": null,
 
      "uiDataSource": null,
 
      "doActionOnChangeValue": true,
 
      "onAfterChangeValueConditionalActions": null,
 
      "onAfterChangeValueByClientConditionalActions": null,
 
      "rebuildDependentsObjectOnChange": false,
 
      "enableRuleIds": [],
 
      "visibleRuleIds": [],
 
      "access": null,
 
      "isValueChanged": false,
 
      "expressionId": null,
 
      "discriminator": "ButtonSubmitSourceEntry"
 
    },
 
 
     {
 
     {
 
       "dataSourceId": 2,
 
       "dataSourceId": 2,
Строка 135: Строка 109:
 
       "id": 2,
 
       "id": 2,
 
       "caption": "Контрагенты",
 
       "caption": "Контрагенты",
      "enable": true,
 
      "visible": true,
 
      "hint": null,
 
      "doActionOnChangeValue": false,
 
      "onAfterChangeValueConditionalActions": null,
 
      "onAfterChangeValueByClientConditionalActions": null,
 
      "rebuildDependentsObjectOnChange": true,
 
      "enableRuleIds": [],
 
      "visibleRuleIds": [],
 
      "access": null,
 
      "isValueChanged": false,
 
      "expressionId": null,
 
      "discriminator": "DictionarySourceEntry"
 
    },
 
    {
 
      "trimSpaces": false,
 
      "defaultValue": null,
 
      "value": null,
 
      "id": 4,
 
      "caption": "Технический",
 
 
       "enable": true,
 
       "enable": true,
 
       "visible": true,
 
       "visible": true,
Строка 167: Строка 121:
 
         "discriminator": "UiDataSourceDictionary"
 
         "discriminator": "UiDataSourceDictionary"
 
       },
 
       },
       "doActionOnChangeValue": true,
+
       "doActionOnChangeValue": false,
 
       "onAfterChangeValueConditionalActions": null,
 
       "onAfterChangeValueConditionalActions": null,
 
       "onAfterChangeValueByClientConditionalActions": null,
 
       "onAfterChangeValueByClientConditionalActions": null,
       "rebuildDependentsObjectOnChange": false,
+
       "rebuildDependentsObjectOnChange": true,
 
       "enableRuleIds": [],
 
       "enableRuleIds": [],
 
       "visibleRuleIds": [],
 
       "visibleRuleIds": [],
 
       "access": null,
 
       "access": null,
 
       "isValueChanged": false,
 
       "isValueChanged": false,
       "expressionId": 1,
+
       "expressionId": null,
       "discriminator": "StringSourceEntry"
+
       "discriminator": "DictionarySourceEntry"
 
     }
 
     }
 
   ],
 
   ],
Строка 196: Строка 150:
 
       "defaultNewElementSettings": null,
 
       "defaultNewElementSettings": null,
 
       "id": 1,
 
       "id": 1,
       "name": "Справочник. Пример фильтра от справочника",
+
       "name": "Справочник",
 
       "isReadOnly": false,
 
       "isReadOnly": false,
 
       "dataEditRuleIds": [],
 
       "dataEditRuleIds": [],
Строка 267: Строка 221:
 
   "binaryConditionsRules": [],
 
   "binaryConditionsRules": [],
 
   "submitValidateRules": [],
 
   "submitValidateRules": [],
   "expressions": [
+
   "expressions": [],
    {
 
      "id": 1,
 
      "expression": "[1]",
 
      "returnFirstParameterValue": false,
 
      "parameters": [
 
        {
 
          "id": 1,
 
          "allowMultipleValues": false,
 
          "discriminator": "EntryExpressionDictionarySourceParameterDto",
 
          "dictionarySourceId": 3,
 
          "attributeId": 2,
 
          "getFirstElementValue": false,
 
          "useAllInstanceElements": false
 
        }
 
      ],
 
      "comment": null
 
    }
 
  ],
 
 
   "controlsValueCalculateRules": [],
 
   "controlsValueCalculateRules": [],
 
   "actions": [],
 
   "actions": [],

Версия 06:58, 15 апреля 2021

СТРАНИЦА НАХОДИТСЯ В РАЗРАБОТКЕ

Фильтр EntryFilterDto позволяет выбрать данные в справочнике относительно другого связного справочника. Элементы одного справочника будут отображаться в зависимости от выбранных элементов другого справочника. Элемент "filter" добавляется в источник, который необходимо отфильтровать. Фильтр имеет следующую структуру:

 1 "filter": {
 2         "dictionaryEntrySourceId": 2,
 3         "sourceAttribute": {
 4           "id": 21,
 5           "discriminator": "OwnAttributeDefinitionDto"
 6         },
 7         "attribute": {
 8           "id": 1,
 9           "discriminator": "OwnAttributeDefinitionDto"
10         },
11         "conditionType": "AttributeInCollection",
12         "inversion": false,
13         "conditionId": null,
14         "discriminator": "EntryFilterDto"
15           }

Описание свойств фильтра

Свойство Описание
dictionaryEntrySourceId Id источника - справочника, от значений которого будут фильтроваться данные
sourceAttribute Атрибут справочника, от значений которого будут фильтроваться данные
attribute Атрибут текущего источника, с которым связано значение справочника от которого идет фильтрация. Указывается номер Id и тип атрибута в данном случае собственный (OwnAttributeDefinitionDto), так как используются данные текущего справочника.
discriminator EntryFilterDto
conditionType Тип условий
inversion В значении "false" фильтр отберет удовлетворяющие ему значения, в значении "true" - все значения, которые наоборот не удовлетворяют ему
conditionId Условия, при которых применяется фильтр

Пример:

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

JSON серверной карточки