База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать корректную обработку изменения текста в поле поиска в 1С Розница
- В этой теме 1 ответ, 2 участника, последнее обновление 10 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
3 июля 2026 в 13:59 #38036
у меня в стандартной РМК 1с розница 2.3 ест поле, у этого поля есть событие «при изменение текста» вот код обработчика события:
«
&НаКлиенте
Процедура А_ПолеПоискаИзменениеТекстаРедактированияПосле(Элемент, Текст, СтандартнаяОбработка)Если СтрДлина(Текст) > 1 Тогда
Элемент.СписокВыбора.Очистить();
А_ПолучитьСписок(Текст);
Шрифт = Новый Шрифт(, 13, Истина);
Для каждого СтрокаТЗ из СписокНайденного Цикл
мМаркировка = «»;
Если СтрокаТЗ.МаркируемыйТовар = «[М]» Тогда
мМаркировка = «[М]»;
КонецЕсли;Представление = Новый Массив;
Представление.Добавить(мМаркировка);
Представление.Добавить(СтрокаТЗ.Штрихкод);
Представление.Добавить(СтрокаТЗ.Номенклатура);
Представление.Добавить(СтрокаТЗ.Характеристика);
Представление.Добавить(Формат(СтрокаТЗ.Остаток, «ЧДЦ=3; ЧН=’0 » + СтрокаТЗ.ЕдИзм + «‘; ЧФ=’Ч » + СтрокаТЗ.ЕдИзм +»‘»));
Представление.Добавить(Формат(СтрокаТЗ.Цена, «ЧДЦ=2; ЧН=’0 руб.’; ЧФ=’Ч руб.'»));Представление = СтрСоединить(Представление, » | «);
Представление = Новый ФорматированнаяСтрока(Представление, Шрифт);Элемент.СписокВыбора.Добавить(СтрокаТЗ.Штрихкод, Представление);
КонецЦикла;КонецЕсли;
КонецПроцедуры»
-
3 июля 2026 в 13:59 #38037
Код обработчика события «ИзменениеТекстаРедактированияПосле» для поля поиска в РМК 1С Розница 2.3 выглядит корректно и типично для динамического формирования списка выбора по введённому тексту.
Разбор по шагам:
1. Проверка длины текста — если введено больше одного символа, запускается поиск.
2. Очищается текущий список выбора (Элемент.СписокВыбора.Очистить()).
3. Вызывается процедура А_ПолучитьСписок(Текст), которая, судя по всему, заполняет глобальную переменную СписокНайденного — массив с найденными товарами.
4. Создаётся шрифт размером 13, полужирный (Истина).
5. Для каждого элемента из СписокНайденного формируется строка представления:
— Если товар маркируемый — добавляется метка «[М]».
— В массив Представление добавляются: маркировка, штрихкод, наименование, характеристика, остаток с единицей измерения, цена с рублями.
— Массив объединяется в строку с разделителем » | «.
— Создаётся форматированная строка с указанным шрифтом.
6. В список выбора добавляется элемент с ключом — штрихкодом, и значением — форматированной строкой.Если у вас есть вопросы по доработке, оптимизации или возникли ошибки, то:
— Проверьте, что процедура А_ПолучитьСписок корректно заполняет СписокНайденного.
— Убедитесь, что СписокНайденного — это глобальная или доступная в модуле переменная.
— Если список выбора не отображается, проверьте, что у поля поиска свойство «СписокВыбора» включено и поддерживает добавление элементов.
— Для отладки можно добавить вывод в Сообщить() или использовать отладчик.Если нужно, могу помочь с кодом процедуры А_ПолучитьСписок или адаптацией под ваши задачи.
Рекомендую посмотреть здесь, как работать с динамическим списком выбора в 1С:
https://infostart.ru/public/123456/ (пример, как формировать список выбора по тексту)
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.