При работе в конфигурации 1С:Розница 2.3 (а также в 1С:Управление торговлей 11, 1С:УНФ и других решениях на управляемых формах) пользователи часто сталкиваются с проблемой резкого замедления поиска в справочнике Номенклатура. Особенно остро эта проблема проявляется после обновления конфигураций, связанных с внедрением обязательной маркировки товаров, когда объемы данных и нагрузка на базу существенно возрастают.
В этой статье мы подробно проанализируем причины медленной работы поиска, рассмотрим практические шаги по оптимизации системы и разберем, как отключить ресурсоемкий автоматический поиск «на лету» (во время ввода символов), переведя его в более быстрый режим работы.
Механизм полнотекстового поиска данных (ППД) в 1С предназначен для быстрого нахождения информации по всем объектам базы. Однако при постоянном обновлении данных (например, при активных продажах и поступлениях товаров) индекс ППД постоянно перестраивается, что вызывает колоссальную нагрузку на дисковую подсистему и процессор.
Рассмотрим по шагам, как решить эту проблему:
Alt + F или Ctrl + F в списках. Это позволяет открывать стандартное окно поиска 1С, где запрос выполняется только после нажатия клавиши Enter или кнопки «Найти».Довольно часто причиной локальных зависаний интерфейса у конкретного пользователя является повреждение локального кэша платформы 1С:Предприятие 8. Это особенно актуально после обновления версии конфигурации или платформы.
Выясним, как правильно очистить кэш:
C:\Users\[Имя_Пользователя]\AppData\Local\1C\1cv8
C:\Users\[Имя_Пользователя]\AppData\Roaming\1C\1cv8.
1a2b3c4d-5e6f...). Это и есть кэш конкретных баз. Выделим их и удалим. Обратите внимание: файлы настроек и списки баз (файл ibases.v8i) удалять не нужно.При открытии формы подбора или списка номенклатуры система по умолчанию пытается отобразить актуальные цены и остатки товаров по складам в режиме реального времени. Для этого к базе данных на каждую строку списка отправляются тяжелые динамические запросы. Если в списке отображается 50 позиций, система делает 50 сложных вычислений «на лету».
Для ускорения поиска выполним следующие действия:
Номенклатура или форму подбора товаров в документе.По умолчанию платформа осуществляет поиск по любому вхождению строки (режим поиска Любая часть). Это означает, что при вводе букв «про» система будет искать их и в начале наименования, и в середине («Супротек»), и в конце. Такой поиск не может эффективно использовать индексы СУБД.
Проанализируем, как это оптимизировать:
Номенклатура рекомендуется установить способ поиска Начало вместо Любая часть. Это заставит систему искать совпадения строго с первых букв слова, что существенно снижает нагрузку на базу.Номенклатура в режиме конфигуратора. Перейдем на вкладку Данные и проверим свойства текстовых реквизитов (таких как «Описание», «Дополнительные свойства»). Для малозначимых текстовых полей большого объема установим свойство Полнотекстовый поиск в значение Не использовать. Оставим индексируемыми только ключевые поля: Наименование, Артикул и Штрихкод.Если база работает в клиент-серверном варианте или используется многопользовательский файловый режим, критически важно правильно настроить расписание регламентных заданий, которые обновляют поисковые индексы.
Разберем оптимальные параметры настройки регламентных заданий:
Если основные «тормоза» и зависания системы происходят в момент подбора номенклатуры на кассе с помощью сканера штрихкодов, проблема кроется в методе подключения оборудования.
Рассмотрим эту техническую особенность подробнее:
Многие сканеры по умолчанию работают в режиме эмуляции клавиатуры (так называемый режим «в разрыв клавиатуры»). При считывании кода сканер имитирует очень быстрое нажатие клавиш на клавиатуре компьютера. 1С воспринимает это как ввод текста пользователем и запускает механизм поиска по мере ввода на каждый отправленный символ штрихкода. База данных просто не успевает обрабатывать 13 последовательных запросов за доли секунды и зависает.
Решение: Переведите сканер штрихкодов в режим эмуляции COM-порта (виртуального RS-232). Для этого необходимо считать специальный управляющий штрихкод из инструкции к сканеру и установить соответствующий драйвер в системе. В настройках подключаемого оборудования 1С укажите интерфейс подключения «COM-порт». В этом режиме штрихкод будет передаваться в систему единым пакетом данных, и поиск в базе сработает ровно один раз, мгновенно позиционируясь на нужном товаре.
Иногда поисковые механизмы «спотыкаются» о некорректные связи в базе данных, вызванные аварийными завершениями работы программы или сбоями оборудования. Наличие «битых» ссылок (объектов типа <Объект не найден...>) приводит к ошибкам при индексации.
Выполним тестирование базы: