Вопрос

Фильтрация при выборе в детали Конфигурационные единицы (по колонке Обращение)

Доброго дня!

Прошу помощи с проблемой.

Требуется создать фильтр в детали Конфигурационные единицы (по колонке Обращение), который бы работал следующим образом:

У обращения есть текстовая колонка "textCase". У Конфигурационной единицы есть текстовая колонка "textConfItem". Нужно, чтобы при выборе в детали Конфигурационные единицы (по колонке Обращение) выбирались лишь те КЕ, у которых это значение колонки "textConfItem" равно значению колонки "textCase" связанного обращения.

 

В ConfItemCaseEditPage поместил следующий код:

        attributes: {
            "ConfItem": {
                "dataValueType": Terrasoft.DataValueType.LOOKUP,
                "lookupListConfig": {
                    "filters": [
                        function() {
                            var textCase = this.get("[Case:Id].textCase");
                            var serviceFiltersGroup = Terrasoft.createFilterGroup();
                            serviceFiltersGroup.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.OR;
                            serviceFiltersGroup.addItem(Terrasoft.createColumnFilterWithParameter(
                                Terrasoft.ComparisonType.EQUAL,"[ConfItem:Id].textConfItem", textCase));
                            return serviceFiltersGroup;
                            

                            
                        }
                    ]
                }
            }

        },

 

но это не помогло, возможно в коде что-то не так, а возможно из-за коробочного изменения механизма добавления в деталь (при нажатии на + сразу открывается карточка выбора, а не ConfItemCaseEditPage)

Нравится

4 комментария

А как именно не работает, предлагает выбрать все записи?

А почему у Вас группа фильтров serviceFiltersGroup связана условием  OR? Вам нужно объединить с каким-то другим условием?

Не смотрели, при открытии окна выбора запрос к веб-серверу идёт с Вашим фильтром?

Зверев Александр,

Да, предлагает выбрать все записи.

OR здесь просто на будущее, условия да, будут.

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

Фильтры смотреть у запроса к методу SelectQuerry у DataService примерно тут:

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

У Вас, по идее, должен быть один Ваш фильтр вместо него.

 

А почему бы просто не настроить деталь и связь с разделом в мастере стандартными средствами? Там можно указать и текстовые поля:

Александр, спасибо.

Изначально, наверно, неправильно объяснил.

Суть в том, что фильтр этот нужно ставить не в саму деталь, а на справочник выбора в эту деталь (lookupListConfig)

Но фильтр этот нужно поставить как бы ЧЕРЕЗ объект.

Узнал, что скорее всего здесь надо использовать sandbox, буду копаться там пока.

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