Отбор в Динамическом списке

1. SmokMfx 03.05.24 00:19 Сейчас в теме
Добрый вечер, подскажите пожалуйста почему отбор не срабатывает ? не судите строго только учусь (((

&НаКлиенте
Процедура ПоНаим_СтрокаПоискаНоменклатураПриИзмененииПосле(Элемент)

ЗначениеПоиска = СтрокаПоиска();

ПолеОтбора = Новый ПолеКомпоновкиДанных("Наименование");

ЭлементОтбора = Неопределено;
Для Каждого Отбор Из СписокНоменклатура.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если Отбор.ЛевоеЗначение = ПолеОтбора Тогда
ЭлементОтбора = Отбор;
Прервать
КонецЕсли;
КонецЦикла;

Если ЭлементОтбора = Неопределено Тогда
ЭлементОтбора = СписокНоменклатура.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
КонецЕсли;

Если ЗначениеЗаполнено(ЗначениеПоиска) Тогда
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Подобно;
ЭлементОтбора.ПравоеЗначение = "%" + ЗначениеПоиска + "%";
Иначе
ЭлементОтбора.Использование = Ложь;
КонецЕсли;

КонецПроцедуры

Функция СтрокаПоиска()
СтрокаПоиска = СтрокаПоискаНоменклатура;
МассивСловПоиска = СтрРазделить(СтрокаПоиска, " ", Ложь);
Для Каждого Сч из МассивСловПоиска Цикл

ДлинаСч = СтрДлина(Сч);

Если ДлинаСч <= 1 Тогда

Индекс = МассивСловПоиска.Найти(Сч);
МассивСловПоиска.Удалить(Индекс);
КонецЕсли;

КонецЦикла;
Наименование = СтрСоединить(МассивСловПоиска, "%");
Возврат Наименование;

КонецФункции
По теме из базы знаний
Найденные решения
4. SlavaKron 03.05.24 08:55 Сейчас в теме
(2) Откуда такая информация?
(3) Наверно потому, что динамический список умеет делать это "из коробки" без колхоза.
(1)
СписокНоменклатура.КомпоновщикНастроек.Настройки.Отбор

Используйте СписокНоменклатура.Отбор.
Прикрепленные файлы:
9. SlavaKron 06.05.24 15:44 Сейчас в теме
(8) Видимо, вы доработали событие ПриИзменении типового поля ввода для поиска с аннотацией "После". Вы не отменили отбор, который установился в типовом коде, а лишь добавили к нему свой. Тут либо своё поле нужно, либо аннотация "Вместо".
13. spacecraft 07.05.24 12:48 Сейчас в теме
(12) смотрите 4 и 5 посты. В 8 это не сделано.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. glek 120 03.05.24 08:36 Сейчас в теме
(1) Насколько вижу, значение отбора получается в лучшем случае %мама%, в худшем, если слов несколько %папа%курит%сигареты%.
в подобно учитываются только первый и последний символы %. В последнем случае будет искаться вхождение строки папа%курит%сигареты в наименовании.
4. SlavaKron 03.05.24 08:55 Сейчас в теме
(2) Откуда такая информация?
(3) Наверно потому, что динамический список умеет делать это "из коробки" без колхоза.
(1)
СписокНоменклатура.КомпоновщикНастроек.Настройки.Отбор

Используйте СписокНоменклатура.Отбор.
Прикрепленные файлы:
5. SmokMfx 03.05.24 23:46 Сейчас в теме
(4) Не срабатывает (( может за из за расширение ?
6. spacecraft 04.05.24 00:09 Сейчас в теме
(5) как не срабатывает? Может просто не то ожидаете от кода?
Для примера:
%1%12%
будут найдены значения Наименования которые содержат и 1 и 12 в такой именно последовательности, но которые могут иметь еще символы вначале конце и между ними. Наименование просто 12 не попадает в такой отбор.Наименование 121 так же не попадает в отбор.
7. SmokMfx 05.05.24 21:25 Сейчас в теме
(6) Ожидание от кода: переделать поиск в подборе товара в УТ 11.5, сделать по сокращенным наименованиям, например (вен. ок.), а в список должен вывести «Вентиляция оконная».
Код срабатывает, в откладке ошибок не показывает, отбор создается, но по факту он не применяется, вот и прошу помочь понять, где я ошибаюсь.
3. FUXEARA 03.05.24 08:50 Сейчас в теме
А почему бы сначала не найти в справочнике список номенклатур подобных по вводимым словам и потом , уже сформированный список впихнуть в отбор? Зачем выполнять поиск подобных в самом отборе? Если я правильно понял задачу!
Sashares; +1 Ответить
8. SmokMfx 05.05.24 21:47 Сейчас в теме
Хотя одно сокращение работает, два — нет.
Прикрепленные файлы:
9. SlavaKron 06.05.24 15:44 Сейчас в теме
(8) Видимо, вы доработали событие ПриИзменении типового поля ввода для поиска с аннотацией "После". Вы не отменили отбор, который установился в типовом коде, а лишь добавили к нему свой. Тут либо своё поле нужно, либо аннотация "Вместо".
10. SmokMfx 07.05.24 11:20 Сейчас в теме
(9) если c аннотацией «Вместо» то динамический список перестает вопще реагировать 🥲, я вот думаю может запрос изменить 🧐 сказывается слабое знание платформы подскажите книги 📚
11. spacecraft 07.05.24 12:07 Сейчас в теме
(8) и где выполнено: "Используйте СписокНоменклатура.Отбор"?
12. SmokMfx 07.05.24 12:44 Сейчас в теме
13. spacecraft 07.05.24 12:48 Сейчас в теме
(12) смотрите 4 и 5 посты. В 8 это не сделано.
14. SmokMfx 07.05.24 23:56 Сейчас в теме
(13) Получилось спасибо большое )))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот