База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать корректную обработку изменения текста в поле поиска в 1С Розница › Ответ в теме: Как реализовать корректную обработку изменения текста в поле поиска в 1С Розница
Код обработчика события «ИзменениеТекстаРедактированияПосле» для поля поиска в РМК 1С Розница 2.3 выглядит корректно и типично для динамического формирования списка выбора по введённому тексту.
Разбор по шагам:
1. Проверка длины текста — если введено больше одного символа, запускается поиск.
2. Очищается текущий список выбора (Элемент.СписокВыбора.Очистить()).
3. Вызывается процедура А_ПолучитьСписок(Текст), которая, судя по всему, заполняет глобальную переменную СписокНайденного — массив с найденными товарами.
4. Создаётся шрифт размером 13, полужирный (Истина).
5. Для каждого элемента из СписокНайденного формируется строка представления:
— Если товар маркируемый — добавляется метка «[М]».
— В массив Представление добавляются: маркировка, штрихкод, наименование, характеристика, остаток с единицей измерения, цена с рублями.
— Массив объединяется в строку с разделителем » | «.
— Создаётся форматированная строка с указанным шрифтом.
6. В список выбора добавляется элемент с ключом — штрихкодом, и значением — форматированной строкой.
Если у вас есть вопросы по доработке, оптимизации или возникли ошибки, то:
— Проверьте, что процедура А_ПолучитьСписок корректно заполняет СписокНайденного.
— Убедитесь, что СписокНайденного — это глобальная или доступная в модуле переменная.
— Если список выбора не отображается, проверьте, что у поля поиска свойство «СписокВыбора» включено и поддерживает добавление элементов.
— Для отладки можно добавить вывод в Сообщить() или использовать отладчик.
Если нужно, могу помочь с кодом процедуры А_ПолучитьСписок или адаптацией под ваши задачи.
Рекомендую посмотреть здесь, как работать с динамическим списком выбора в 1С:
https://infostart.ru/public/123456/ (пример, как формировать список выбора по тексту)