Вопрос

Поиск в детали по нескольким полям

Добрый день! Коллеги, помоги с решением проблемы. 



Есть функционал работы со счетами (правда от базового там мало что осталось).

При формировании счета можно выбрать продукты. У продукта есть Название и Артикул, при этом по Названию можно искать (lookup), а по Артикулу нет (текстовое поле).



Хочу, что бы поиск о​​​​​​можно было осуществлять не только по Названию, но и по Артикулу. Что для этого нужно сделать? 



 

Изображение удалено.

 

Нравится

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

Здравствуйте, Андрей

Базовыми средствами приложения можно только изменить отображаемое значение в объекте и использовать другое поле, так у Вас появится возможность изменить колонку по которой проводиться поиск (но это будет только замена колонки по которой проводиться поиск, а не добавление дополнительной).

Также передал данное обращение разработчикам поддержки для дальнейшего анализа и предоставления решения.

Denys Diachenko,

Спасибо! 



Правильно ли я понимаю, что в логике BPM у сущности не может быть две колонки с типом lookup? Или тут сложность в чем-то другом? 

Andrey Aleksandrov пишет:

Или тут сложность в чем-то другом

По-умолчанию поиск работает по "главной" колонке, которая указывается в объекте.

Если вам надо переделать поиск по конкретно в том элементе, который у вас на скриншоте - то в принципе это сделать легко (откопать getLookupQuery, да и изменить фильтрацию)

Варфоломеев Данила,

мне нужно реализовать поиск по двум колонкам - Название и Артикул.

Если искали по названию, то автоматически заполняется артикул и наоборот

Andrey Aleksandrov пишет:

мне нужно реализовать поиск по двум колонкам - Название и Артикул.

Ох уж эти неявные описания задач...

Перефразирую (поправьте, если что не так): У вас есть деталь. На делали 2 поля: 1-lookup, ссылка на продукт, 2 - Артикул, текстовое. Задача: из текстового поля "артикул" сделать справочное (со ссылкой на продукты, но фильтрация по артикулу), и сделать заполняемость полей (артикул - продукт).

Если всё так, то вот решения:

1) Дабы не дублировать одно и то же поле, убрать поле артикул, перегрузить функцию getLookupQuery, настроить там фильтр по 2 полям.

2) Если всё-таки нужно видеть поле, то тип поля "артикул" меняем на справочник со ссылкой на продукт. Опять же перегружаем getLookupQuery, настраиваем нужную фильтрацию и список выдаваемых значений. Плюс потом надо событийные функции (через attributes) доделать, чтобы поля заполнялись по зависимостям. Или через бизнес правила.

3) Если надо оставить "артикул" в текстовом виде - то придётся дописывать подгружаемый list для элемента и кучу других обработчиков. Где-то в конфигурации уже есть SearchableTextEdit... Вообщем, лучше не стоит.

Ну и во всех вариантах придётся писать гору кода и логики. 

Варфоломеев Данила пишет:

Ох уж эти неявные описания задач...

:-) давайте со стороны пользователя пойдем.



Я, как пользователь системы,  должен сформировать счет (или заказ поставщику) добавив туда определенный перечень товаров. Бывает, что названия товаров отличаются в одну букву\цифру:

Сервер HP HPE DL20 Gen9 E3-1240v6 SFF 900WPerf Svr

Сервер HP HPE DL20 Gen9 ES3-1240v6 SFF 900WPerf Svr



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



Но в целом вы все и так правильно поняли. 



 

Варфоломеев Данила пишет:

Ну и во всех вариантах придётся писать гору кода и логики. 

Я долек от разработки, но даже у меня возникает резонный вопрос -  в чем проблема искать по двум разным столбцам? У нас есть сущность Продукт, у нее несколько параметров - название, артикул, цена и тд. Для в любой БД можно это сделать. 

Andrey Aleksandrov пишет:

в чем проблема искать по двум разным столбцам?

 ¯\_(ツ)_/¯

Я так понимаю официально это можно охарактеризовать как: "Возможность не была запланирована изначально, поэтому программно не реализована".

В одном проекте нам партнеры реализовали в поле lookup поиск контактов не только по имени, но и по его средствам связи, например.



То есть, вводим телефон, а система нам отфильтровывает список контактов с такими номерами



Потому и поиск продукта по двум полям можно сделать

Владимир Соколов, вот и я в это верю :-)

Andrey Aleksandrov,

Данила правильно ответил. Нужно переопределить метод "getLookupQuery" в странице редактирования детали. Базовый метод находится в "BasePageV2", так что можно отладится и посмотреть как все работает.

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