Уважаемые форумчане, подскажите плиз, можно ли вклиниться в результат поиска на форме списка номенклатуры, и дополнить результат уже по своему алгоритму?
Распишу по подробнее.
Есть типовая форма списка справочника номенклатуры, коих куча во всех конфигурациях. УТ, ЕРП и прочие, платформа на 8.3.11 и далее. Наверное не суть.

И вот на этой форме есть типовое поле поиск, куда вводишь данные Наименование, артикул, код , и так далее.
Отбор отлично отрабатывает, всё суппер.
Но вот охото, что бы в результат поиска включалась номенклатура из аналогов.
Пример: Нашли номенклатуру с артикулом 2345, а ниже вывели ещё и аналоги её, для аналогов параметры поиска естественно не применяются, кроме как по владельцу.

Не могу придумать как красиво это реализовать...
Направьте на путь истинный
---
Можно сделать вот, только вместо Штрихкодов, вывести аналоги, заполнять по Событию ПриАктивизацииСтроки
---
перехватывать обработчики списка при вводе текста и писать там свои запросы, хотя врядли они будут оптимальнее чем их делает платформа - это раз

можно под списком поиска расположить список аналогов и при активизации строки или при срабатывании другого события изменения данных в первом списке - обновлять второй список.

вроде все - остальные варианты, при всем уважении, можно охарактеризовать великой тройкой:
костыль, велик, шаманство
---
перехватывать обработчики списка при вводе текста и писать там свои запросы, хотя врядли они будут оптимальнее чем их делает платформа - это раз

А что это за события? Я в конфигураторе таковых не нашел.
---
У поля ввода есть события "ОкончаниеВводаТекста" и "ИзменениеТекстаРедактирования"
---
да, у обычного поля. Но поле поиск является службным
---
то что хотите делать вы это через расширение править форму и писать свой Динамический список (ДС) под нее, текущий вас явно не устроит, и отдельную команду на поле поиска, который будет вызывать соответствующее изменение отборов ДС, причем этот ДС будет как минимум из объединения двух запросов, как мне кажется
---
либо чтобы не городить такое глобальное изменение, через расширение подсунуть команду по которой будет открывать своя форма с нужным ДС и уже там проводить описанное в (6), в любом случае не знаю стоит ли оно того
---
Для случая поиска аналогов по артикулу могу предложить идею добавить реквизит, где будет храниться строка из своего артикула и артикулов всех аналогов. И добавить его в поля поиска. Но будет проблема актуализации этого реквизита при изменении состава аналогов.
---
тогда уже лучше добавление поля в ДС которое будет конкатенацией всех возможных артикулов аналогов и самой номенклатуры
---
ну да (9) вариант вполне себе нормален, минимальные изменения, в форме списка дополняем ДС запросом к аналогам и в новое поле подсовываем все возможные артикулы аналогов одной строкой, тогда вставая на колонку с этим полем поиск нам даст то что надо
---
Я тут понял, что не могу придумать такой запрос? Можете подсказать, как в 1 поле, засунуть артикулы всех аналогов? Их же разделять надо, получается. Например запятой.
---
инетереснейшая мысль
---
выбрать первые 100
нмк.код+ ","+ нмк.наименование
из
справочник.номенклатура как нмк

но отделять запятой не обязательно
---
Я так понял способ решения. Добавляем поле у строки с номенклатурой "является аналогом для" и в этом поле перечисляем артикулы номенклатур, у которых текущая позиция аналог. Тогда, проводя поиск по артикулу номенклатуры, у нас будет как сама номенклатура, так и все номенклатуры, у которых этот артикул присутствует в поле "Является аналогом для". Вот только засада в том, что сгенерировать такое поле запросом я не могу.Есть вариант это поле генерировать при записи записей в РС аналоги номенклатуры, и просто его выбирать. Но тогда у нас будет происходить фоном перезапись справочника номенклатуры. Или создать отдельный РС для хранения такого поля.
---
да действительно, так сразу на ум и не приходит вариант как это в запросе обыграть, тогда можно рассмотреть вариант из (15)

не понял только почему должна в фоне происходить перезапись номенклатуры, она вроде только косвенно связана с РС аналоги номенклатуры.
---
Если мы не можем запросом ДС собрать поле из артикулов всех номенклатур, для которых аналогами является текущая, значит это поле надо где то хранить. Самое простое хранить это поле реквизитом у номенклатуры. Вот, что бы его обновлять, при изменении аналогов, и придётся перезаписывать саму номенклатуру.
---
если хранить в РС аналогов, то не надо перезаписывать номенклатуру. добавить в ДС поле с аналогом соединив с РС аналоги и сгруппировать по Номеклатуре и взяв Максимум (там не принципильано ) по вновь добавленному полю в РС аналоги
---
Я не совсем понял, но явно будет ситуация когда 1строке ДС будет соответсвовать 2 строки из регистра аналогов. например когда одна и таже номенклатура является аналогом у 2х других.
---
это просто пример конкатенации строк, а какие у вас метаданные для аналогов, скажите соберу запрос
---
Можно сделать вот, только вместо Штрихкодов, вывести аналоги, заполнять по Событию ПриАктивизацииСтроки
---
так речь идет о поиске по строке в динамическом списке, как тут поможет событие при активации строки для поиска?
а глянув на верный принтскрин, понял, да тоже вариант, выводить все аналоги в другом окне
---
Нашли номенклатуру с артикулом 2345, а ниже вывели ещё и аналоги
---
да, только есть недостаток, если вдруг найдется несколько строк общей картины не получишь, надо будет пройтись по всем позициям из найденного списка
---
не такой уж большой недостаток, получить массив из ссылок номенклатуры по списку
---
Если хочется в динамическом списке увидеть артикулы аналогов номенклатуры, можно сделать так Вывод произвольных данных в дин.списках
Только увы поиск по такому полю не работает
---
Есть процедура ОбработкаПолученияДанныхВыбора, доступная в модуле менеджера. Очень удобно запросом формировать результат отбора по вводу по строке
---
Да, но ввод по строке, немного не то.