Вопрос

Фильтрация справочного поля

Помогите пожалуйста отфильтровать справочное поле на клиенте,

У меня есть объект CreditCard у которого есть деталь [залоговое обеспечение] они связаны между собой через колонку  [залоговое обеспечение].CCId(идентификатор кредитной карты).

Так же в объекте [залоговое обеспечение] есть справочное поле [Контакт] собственно именно его я и хочу отфильтровать. Чтобы в нем появлялись только те контакты которые присутствуют в другой детали в CreditCard - CC_TxParticipant(деталь) которые связаны так же как и [залоговое обеспечение] через колонку CCId(идентификатор кредитной карты).

 

В детали CC_TxParticipant есть два справочных поля - 1. Контакт 2. Тип контакта, так вот я не совсем понимаю как сделать так чтобы во время фильтра отсеивались контакты с определенным типом.

 

Сейчас для фильтрации только [Контактов] из CC_TxParticipant я делаю так:

"lookupListConfig": {
"filters": [
function() {
...
var allParticipantsFilter = this.Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "[CC_TxParticipant:Participant:Id].CC", master.value);
...
    }
]

где master.value = идентификатор CreditCard, потом добавляю фильтр в общий фильтр и так далее, таким образом я получаю только тех контактов которые присутствуют в детали CC_TxParticipant именно этого CreditCard

-----------------

Попробую объяснить подробнее

Есть следующие объекты:

 

0.[CreditCard] - к нему относятся 2 детали:

1.[CC_TxParticipant] - связана с [CreditCard] через колонку CCId(идентификатор [CreditCard])

2.[CC_CollateralData] - связана с [CreditCard] через колонку CCId(идентификатор [CreditCard])

 

В объекте [CC_TxParticipant] есть справочное поле Контакт, и справочное поле с типом участника.

В объекте [CC_CollateralData] есть справочное поле Контакт которое требуется отфильтровать таким образом, чтобы появлялись только те контакты которые находятся в детали объекта [CC_TxParticipant], кроме тех у которых скажем Тип участника не равен *какой то айди*.

На данный момент у меня получилось только отфильтровать таким образом чтобы отображались только те контакты которые находятся в объекте [CC_TxParticipant] без учета их типа.

master.value  в коде выше как раз является идентификатором [CreditCard]

Понимаю что объяснение получилось запутанное, поэтому заранее прошу прощения

Нравится

6 комментариев

Добрый вечер.

Что бы отсеять контакты по типу нужно добавить фильтр где в качестве сравнения будет конфигурационная константа или id «типа контакта» (таблица ContactType). Например:

filterGroup.add("IsEmployeeType", Terrasoft.createColumnFilterWithParameter(                            Terrasoft.ComparisonType.EQUAL, "Contact.Type", ConfigurationConstants.ContactType.Employee));

При этом нужно не забыть указать зависимость на «ConfigurationConstants»:

define("ContactPageV2", ["ConfigurationConstants"],
function(ConfigurationConstants) {

Все типы констант вы можете посмотреть при отладке.

Или же можно сделать запрос используя id из таблицы ContactType:

 filterGroup.add("IsEmployeeType", Terrasoft.createColumnFilterWithParameter(                           Terrasoft.ComparisonType.EQUAL, "Contact.Type",” 806732EE-F36B-1410-A883-16D83CAB0980”));

 

VladKapitanchyk,

Добрый день,

Спасибо за совет, к сожалению построение обычного фильтра не составляет проблемы, мой вопрос несколько сложнее

Сериков Асхат Кайратович пишет:

VladKapitanchyk,

 мой вопрос несколько сложнее

Добрбый день! Если мы не правильно поняли, то просьба переформулировать запрос либо объяснить "на пальцах" . Мы ради будем помочь.

Вильшанский Дмитрий,

Добрый день,

прошу прощения за такой запутанный вопрос, переформулировал, надеюсь получилось

Добрый день.

Спасибо за совет, к сожалению построение обычного фильтра не составляет проблемы

Вам нужно составить фильтр из 2 условий. Т.е. добавить в фильтр группу 2 фильтра(фильтр контактов которые находятся в детали объекта [CC_TxParticipant], и фильтр контактов у которых Тип участника не равен *какой то айди*). На академии можно посмотреть. https://academy.terrasoft.ua/documents/technic-sdk/7-11/primenenie-filt…

VladKapitanchyk,

День добрый,

Разобрался, пытался перемудрить зачем то.

Спасибо большое

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