Проблема с фильтрацией выпадающего списка в CallMessagePublisherPage

Здравствуйте.
Версия 7.9.2

Необходимо в карточке CallMessagePublisherPage отфильтровать поле Contact по Контрагенту и изменить тип поля на ENUM

Фильтр реализовал в lookupListConfig атрибута Contact:

"Contact": {
   "isLookup": true,
   "lookupListConfig": {
     "columns": ["Account"],
     "filter":  function() {
       var filters = Ext.create("Terrasoft.FilterGroup");
       var listenerInfo = this.getListenerRecordData();
       if (listenerInfo.relationSchemaName === "Account" &&
          !Ext.isEmpty(listenerInfo.relationSchemaRecordId)) {
            var accountFilter = this.Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL,
                "Account",
                listenerInfo.relationSchemaRecordId);
            filters.add("AccountFilter", accountFilter);
        }
       return filters;
     }
   }
}

При нажатии на "лупу" (Открытие окна выбора из справочника) справочник контактов отфильтрован корректно.
Однако, при смене contentType на ENUM или при нажатии клавиши "Вниз" стандартного справочного поля фильтрация значений не происходит, хотя указанный выше код так же отрабатывает.

В чем причина такого поведения?

Нравится

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

"Коновалов Игорь" написал:В чем причина такого поведения?

Попробовал на тестовой 7.9.1 - всё воспроизводится, проверил на 7.8.0 у клиента (мы там ему enum поле фильтровали в активности) - там всё идеально работает, фильтруется через lookupConfig.

Помнится когда начинал изучать bpm, то столкнулся с подобной проблемой. Спросил у ТП, ребята говорят: "переопределяйте change и prepareListConfig" при описании контрола (что дико неудобно)

Вывод: хрен знает как оно вообще работает ¯\_(ツ)_/¯

Вам стоит смотреть в сторону добавления свойства orders в lookupListConfig. К примеру:

"EmployeesNumber": {
	lookupListConfig: {
		orders: [{columnPath: "Position"}]
	}
}

"Мотков Илья" написал:

Вам стоит смотреть в сторону добавления свойства orders в lookupListConfig. К примеру:

"EmployeesNumber": {

        lookupListConfig: {

                orders: [{columnPath: "Position"}]

        }

}

Илья, здравствуйте.
Мне не нужна сортировка. Нужна фильтрация выпадающего списка.
Я использую стандартное свойство filter в lookupListConfig.

Прошу прощения. Неправильно прочитал. Как вариант, есть возможность заполнять выпадающий список значениями вручную при помощи свойства prepareList.

"Мотков Илья" написал:

Прошу прощения. Неправильно прочитал. Как вариант, есть возможность заполнять выпадающий список значениями вручную при помощи свойства prepareList.


Т.е. стандартная фильтрация для справочных полей при использовании выпадающих списков, начиная с 7.9, не работает?

Игорь, фильтрация выпадающих списков через lookupListConfig отрабатывает в 7.9.2. Проблема заключается в том, что логика работы с свойством filters прописана в BasePageV2(NUI). Схема CallMessagePublisherPage не наследуется от BasePageV2.

Вам стоит смотреть в сторону копирования части логики из BasePagev2 в Вашу схему.

Да, спасибо. Уже реализовал через prepareList

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