Многие пользователи и администраторы систем на базе 1С:Розница столкнулись с неприятной ситуацией после обновления конфигурации до версии 2.3.9 и выше. Основная проблема проявляется в Рабочем месте кассира (РМК): при попытке быстрого ввода артикула или штрихкода вручную система начинает «задумываться» уже после первого введенного символа. Это приводит к так называемому «проглатыванию» цифр, когда кассир нажимает клавиши, но интерфейс не успевает их обрабатывать, и в поле поиска попадает лишь часть кода. Рассмотрим подробно, почему это происходит и как мы можем исправить ситуацию.
Для начала разберем, что именно изменилось в архитектуре программы. В версии 2.3.9.37 разработчики внедрили переработанный механизм поиска по штрихкоду. Теперь при поступлении данных (будь то сканирование или ручной ввод) система инициирует одновременный опрос сразу нескольких сущностей в базе данных. Программа ищет совпадения не только в справочнике Номенклатура, но и проверяет ДисконтныеКарты, ПодарочныеСертификаты, РегистрационныеКарты, а также анализирует шаблоны штрихкодов и ищет дубли.
Такой комплексный запрос создает значительную нагрузку на серверную или файловую базу. Если интерфейс настроен на немедленное реагирование, то каждое нажатие клавиши запускает этот тяжелый процесс. Выясним, какие шаги помогут нам вернуть былую скорость работы кассиров.
Одним из самых эффективных технических решений является корректировка поведения самого элемента формы, куда вводится текст. В управляемых формах 1С существует свойство, которое отвечает за то, как часто клиентская часть обменивается данными с сервером при редактировании текста. Разберем по шагам, что нужно сделать:
ФормаПродаж в обработке РМКУправляемыйРежим).Не использовать.Это позволит системе не пытаться обновлять внутренние переменные и инициировать серверные вызовы на каждом нажатом символе. Поиск будет срабатывать только тогда, когда ввод завершен (например, нажатием Enter) или когда сработал таймаут, установленный платформой.
Иногда проблема кроется не в самой конфигурации, а во взаимодействии платформы с торговым оборудованием. Практика показывает, что новые версии драйверов NativeApi не всегда работают стабильно в связке с обновленным РМК. Рассмотрим альтернативный подход — использование проверенных версий драйверов.
Многие специалисты отмечают, что установка драйвера сканера версии 9.0.8.10 вместо актуальных 10.х решает проблему «фризов» при сканировании. Проанализируем алгоритм замены драйвера:
9.0.8.10.Также важно проверить настройки драйвера ККТ. Если используется протокол ФФД 1.2 и включена проверка маркировки, 1С при каждом изменении строки чека может обращаться к кассе. Убедимся, что логирование драйвера ККТ не раздуто до гигантских размеров, так как запись каждого действия в огромный файл лога на медленном диске может вызывать секундные задержки интерфейса.
Проанализируем влияние внешних сервисов. В новых версиях часто по умолчанию включена интеграция с сервисом 1С:Номенклатура. При поиске товара система может пытаться обращаться к облачному классификатору, что вызывает задержки, если интернет-соединение нестабильно или сервис перегружен.
Попробуем отключить этот функционал:
Дополнительно проверим полнотекстовый поиск. Если индексы повреждены или не обновлены, поиск по части наименования будет тормозить. Выполним следующие действия:
// В режиме 'Все функции' (Функции для технического специалиста)
// находим 'Управление полнотекстовым поиском'
// Нажимаем 'Очистить индекс', а затем 'Обновить индекс'
Если стандартные настройки не помогают, мы можем вмешаться в код обработки события изменения текста. Рассмотрим пример кода, который можно внедрить через расширение. Идея заключается в том, чтобы не начинать поиск, если введено менее трех символов, или добавить искусственную задержку.
Посмотрим на пример логики в модуле формы:
&НаКлиенте
Процедура ИмяПоляПоискаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
// Увеличиваем время ожидания перед началом поиска до 1.5 секунд
Ожидание = 1.5;
// Если введено слишком мало символов, отменяем стандартный поиск
Если СтрДлина(Текст) < 3 Тогда
СтандартнаяОбработка = Ложь;
Возврат;
КонецЕсли;
КонецПроцедуры
Такой подход позволит кассиру спокойно набрать короткий артикул целиком, и система не будет пытаться искать товар после первой же нажатой цифры 1 из кода 14375.
Выясним, не связана ли проблема с отрисовкой интерфейса самой платформой 1С:Предприятие 8.3. В последних версиях (особенно 8.3.18 и выше) механизмы аппаратного ускорения графики иногда конфликтуют с драйверами видеокарт, что визуально воспринимается как «залипание» кнопок.
Рассмотрим способ отключения аппаратного ускорения. В дополнительных параметрах запуска информационной базы (в окне выбора баз) пропишем следующую команду:
/NoPrefferedGraphicsAdapter
Или, если мы хотим полностью исключить влияние графической подсистемы, можно отредактировать файл conf.cfg, добавив строку HardwareAcceleration=0. Это часто помогает на бюджетных терминалах со встроенными видеокартами Intel.
Торможение поиска в 1С:Розница 2.3.9 — это комплексная проблема, связанная с усложнением алгоритмов поиска и интеграций. Для её решения мы рекомендуем:
Применяя эти методы последовательно, мы сможем добиться мгновенного отклика РМК даже при высокой нагрузке и очередях на кассе.