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

Доброго дня!

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

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

У обращения есть текстовая колонка "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, буду копаться там пока.

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