При работе в программе «1С:Розница» одной из самых критичных функций является скорость и точность поиска товара в Рабочем месте кассира (РМК). Ситуация, когда после обновления конфигурации (например, на релиз 2.2.8.24) привычный поиск по частям слов перестает работать, является довольно распространенной. Кассиры привыкают находить «Трубку термоусадочную» по запросу «труб терм», и если система начинает требовать только полное соответствие, это существенно замедляет обслуживание покупателей. Разберем подробно, почему это происходит и как вернуть удобный функционал поиска.
Для начала проанализируем, как именно платформа 1С и конфигурация «Розница» обрабатывают поисковые запросы. В системе существует два принципиально разных механизма:
Наименование ПОДОБНО "%ТекстЗапроса%".В новых релизах (начиная с 2.2.8) разработчики изменили приоритеты этих механизмов в РМК, что и привело к жалобам пользователей на «испорченный» поиск. Выясним, какие шаги помогут исправить ситуацию.
Одной из самых частых причин отказа поиска по фрагментам является некорректное состояние индекса полнотекстового поиска. Рассмотрим по шагам, как привести его в порядок:
Перейдем в раздел Администрирование — Поддержка и обслуживание — Управление полнотекстовым поиском. Убедимся, что флажок «Полнотекстовый поиск данных» установлен. Если он был выключен, это и есть причина перехода системы на медленный и неточный поиск через ПОДОБНО.
Если поиск включен, но работает плохо, выполним процедуру очистки индекса. Простое обновление (доиндексация) часто не помогает, если в индексе накопились ошибки после обновления конфигурации. Нажмем кнопку «Очистить индекс», а затем — «Обновить индекс». Система заново просканирует справочник Номенклатура и создаст чистую базу поисковых ссылок.
Помним, что для работы ППС в автоматическом режиме должны быть настроены регламентные задания ОбновлениеИндексаППС и СлияниеИндексаППС. Проверим их состояние в консоли регламентных заданий.
В релизах 2.2.8 и выше появилась важная настройка, влияющая на поведение формы поиска. Разберем, как ее проверить:
Зайдем в раздел Администрирование — Продажи — Настройки РМК. Выберем используемую настройку для конкретного рабочего места. В открывшейся форме найдем опцию «Упрощенный поиск номенклатуры». Если этот флаг установлен, система в первую очередь пытается найти точное совпадение по штрихкоду или артикулу. Попробуем отключить эту опцию и проверить, вернулось ли прежнее поведение строки поиска при нажатии Insert.
Если программная логика настроена на поиск по вхождению, мы можем помочь системе, используя специальные символы. Рассмотрим два основных способа:
ПОДОБНО) символ % заменяет любую последовательность символов. Если ввести в поле поиска %труб%терм%, система найдет все позиции, где встречаются обе части слова в указанном порядке.труб* терм*) принудительно включает поиск по началам слов, что крайне эффективно для быстрого подбора.Проанализируем ситуацию с конкретным релизом 2.2.8.24. В этом обновлении действительно была зафиксирована ошибка в обработчике события «Автоподбор» на формах РМК. Если стандартные настройки не помогают, велика вероятность, что вы столкнулись с программным багом.
Рекомендуется проверить наличие установленных патчей в разделе Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Если в списке нет исправлений, связанных с поиском или РМК, следует загрузить их через интернет-поддержку. Фирма «1С» часто выпускает оперативные исправления для таких критических узлов, как интерфейс кассира, без выпуска полного релиза конфигурации.
Для разработчиков, желающих кастомизировать поиск через расширение, разберем пример логики фильтрации. В типовых решениях запрос часто строится динамически. Посмотрим на упрощенный пример того, как система формирует отбор для компоновщика данных или запроса:
// Пример формирования условия для динамического списка
ТекстПоиска = "труб терм";
МассивСлов = СтрРазделить(ТекстПоиска, " ", Ложь);
УсловиеЗапроса = "";
Для Каждого Слово Из МассивСлов Цикл
Если ПустаяСтрока(Слово) Тогда Продолжить; КонецЕсли;
УсловиеЗапроса = УсловиеЗапроса + " И Номенклатура.Наименование ПОДОБНО ""%" + Слово + "%""";
КонецЦикла;
// В итоге получится:
// И Номенклатура.Наименование ПОДОБНО "%труб%" И Номенклатура.Наименование ПОДОБНО "%терм%"
Если в вашем релизе поиск работает только по полному совпадению, значит, в коде используется оператор = вместо ПОДОБНО, либо отсутствует добавление символов процента. В этом случае использование расширения для модификации метода ОбработкаПолученияДанныхВыбора в модуле менеджера справочника Номенклатура будет самым эффективным решением.
Подводя итог, если в вашей «1С:Розница» пропал привычный поиск номенклатуры, выполните следующие действия:
Эти шаги позволят вернуть комфортную работу в РМК и избавят от необходимости искать товар по полному наименованию или артикулу.