Платформа 3V/Формы/Источники данных/Справочник/Фильтрация/От другого справочника
Фильтр 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 | Условия, при которых применяется фильтр |
Пример:
Справочник "Контрагенты" содержит связный атрибут "Виды контрагентов". Можно создать клиентскую карточку в которой, при выборе из выпадающего списка "Вида контрагентов", элементы следующего выпадающего списка "Контрагенты" будут только выбранного виду.
Два контрола (uiSources): Вид контрагента (id=1) и Контрагенты (id=2). Три источника (entryDataSources): Справочник, куда данные будут записываться (id=1), справочник видов контроля (id=2, "dictionaryId": 10754,) и справочник Контрагентов (id=3, "dictionaryId": 10755).
В источник "Контрагенты" добавлен фильтр, в котором указан "dictionaryEntrySourceId": 2 - справочник видов контроля от значений которого идет фильтрация, далее указан номер атрибута справочника Контрагенты (id=1), в данном случае мы сравниваем по первому атрибуту - идентификатору. Далее обозначен атрибут текущего источника, справочника "Контрагенты", с которым мы сравниваем и в котором указан вид (id=21).
1 "filter": {
2 "dictionaryEntrySourceId": 2,
3 "sourceAttribute": {
4 "id": 1,
5 "discriminator": "OwnAttributeDefinitionDto"
6 },
7 "attribute": {
8 "id": 21,
9 "discriminator": "OwnAttributeDefinitionDto"
10 },
11 "conditionType": "AttributeInCollection",
12 "inversion": false,
13 "conditionId": null,
14 "discriminator": "EntryFilterDto"
15 },