Как устранить тормоза и зависания при поиске в РМК 1С:Розница 2.3.9?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Торговля и дистрибуция
← На главную

Многие пользователи и администраторы систем на базе 1С:Розница столкнулись с неприятной ситуацией после обновления конфигурации до версии 2.3.9 и выше. Основная проблема проявляется в Рабочем месте кассира (РМК): при попытке быстрого ввода артикула или штрихкода вручную система начинает «задумываться» уже после первого введенного символа. Это приводит к так называемому «проглатыванию» цифр, когда кассир нажимает клавиши, но интерфейс не успевает их обрабатывать, и в поле поиска попадает лишь часть кода. Рассмотрим подробно, почему это происходит и как мы можем исправить ситуацию.

Проанализируем причину возникновения задержек

Для начала разберем, что именно изменилось в архитектуре программы. В версии 2.3.9.37 разработчики внедрили переработанный механизм поиска по штрихкоду. Теперь при поступлении данных (будь то сканирование или ручной ввод) система инициирует одновременный опрос сразу нескольких сущностей в базе данных. Программа ищет совпадения не только в справочнике Номенклатура, но и проверяет ДисконтныеКарты, ПодарочныеСертификаты, РегистрационныеКарты, а также анализирует шаблоны штрихкодов и ищет дубли.

Такой комплексный запрос создает значительную нагрузку на серверную или файловую базу. Если интерфейс настроен на немедленное реагирование, то каждое нажатие клавиши запускает этот тяжелый процесс. Выясним, какие шаги помогут нам вернуть былую скорость работы кассиров.

Решение 1: Изменение свойств поля ввода в расширении

Одним из самых эффективных технических решений является корректировка поведения самого элемента формы, куда вводится текст. В управляемых формах 1С существует свойство, которое отвечает за то, как часто клиентская часть обменивается данными с сервером при редактировании текста. Разберем по шагам, что нужно сделать:

  1. Создадим расширение для конфигурации 1С:Розница.
  2. Найдем форму РМК (обычно это ФормаПродаж в обработке РМКУправляемыйРежим).
  3. Выберем поле ввода, в котором осуществляется поиск номенклатуры.
  4. В палитре свойств найдем параметр Обновление текста редактирования.
  5. Установим для него значение Не использовать.

Это позволит системе не пытаться обновлять внутренние переменные и инициировать серверные вызовы на каждом нажатом символе. Поиск будет срабатывать только тогда, когда ввод завершен (например, нажатием Enter) или когда сработал таймаут, установленный платформой.

Решение 2: Оптимизация работы со сканером и драйверами

Иногда проблема кроется не в самой конфигурации, а во взаимодействии платформы с торговым оборудованием. Практика показывает, что новые версии драйверов NativeApi не всегда работают стабильно в связке с обновленным РМК. Рассмотрим альтернативный подход — использование проверенных версий драйверов.

Многие специалисты отмечают, что установка драйвера сканера версии 9.0.8.10 вместо актуальных 10.х решает проблему «фризов» при сканировании. Проанализируем алгоритм замены драйвера:

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Удалим текущий экземпляр сканера штрихкода.
  3. Загрузим в базу драйвер версии 9.0.8.10.
  4. Настроим оборудование заново, выбрав установленную версию.

Также важно проверить настройки драйвера ККТ. Если используется протокол ФФД 1.2 и включена проверка маркировки, 1С при каждом изменении строки чека может обращаться к кассе. Убедимся, что логирование драйвера ККТ не раздуто до гигантских размеров, так как запись каждого действия в огромный файл лога на медленном диске может вызывать секундные задержки интерфейса.

Решение 3: Отключение лишних сервисов и регламентных заданий

Проанализируем влияние внешних сервисов. В новых версиях часто по умолчанию включена интеграция с сервисом 1С:Номенклатура. При поиске товара система может пытаться обращаться к облачному классификатору, что вызывает задержки, если интернет-соединение нестабильно или сервис перегружен.

Попробуем отключить этот функционал:

  1. Зайдем в Администрирование — 1С:Номенклатура.
  2. Снимем галочку Сервис 1С:Номенклатура.

Дополнительно проверим полнотекстовый поиск. Если индексы повреждены или не обновлены, поиск по части наименования будет тормозить. Выполним следующие действия:


// В режиме 'Все функции' (Функции для технического специалиста)
// находим 'Управление полнотекстовым поиском'
// Нажимаем 'Очистить индекс', а затем 'Обновить индекс'

Решение 4: Программная задержка начала поиска

Если стандартные настройки не помогают, мы можем вмешаться в код обработки события изменения текста. Рассмотрим пример кода, который можно внедрить через расширение. Идея заключается в том, чтобы не начинать поиск, если введено менее трех символов, или добавить искусственную задержку.

Посмотрим на пример логики в модуле формы:


&НаКлиенте
Процедура ИмяПоляПоискаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
    
    // Увеличиваем время ожидания перед началом поиска до 1.5 секунд
    Ожидание = 1.5;
    
    // Если введено слишком мало символов, отменяем стандартный поиск
    Если СтрДлина(Текст) < 3 Тогда
        СтандартнаяОбработка = Ложь;
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

Такой подход позволит кассиру спокойно набрать короткий артикул целиком, и система не будет пытаться искать товар после первой же нажатой цифры 1 из кода 14375.

Решение 5: Настройка платформы и аппаратного ускорения

Выясним, не связана ли проблема с отрисовкой интерфейса самой платформой 1С:Предприятие 8.3. В последних версиях (особенно 8.3.18 и выше) механизмы аппаратного ускорения графики иногда конфликтуют с драйверами видеокарт, что визуально воспринимается как «залипание» кнопок.

Рассмотрим способ отключения аппаратного ускорения. В дополнительных параметрах запуска информационной базы (в окне выбора баз) пропишем следующую команду:

/NoPrefferedGraphicsAdapter

Или, если мы хотим полностью исключить влияние графической подсистемы, можно отредактировать файл conf.cfg, добавив строку HardwareAcceleration=0. Это часто помогает на бюджетных терминалах со встроенными видеокартами Intel.

Подведем итоги

Торможение поиска в 1С:Розница 2.3.9 — это комплексная проблема, связанная с усложнением алгоритмов поиска и интеграций. Для её решения мы рекомендуем:

Применяя эти методы последовательно, мы сможем добиться мгновенного отклика РМК даже при высокой нагрузке и очередях на кассе.

← На главную