Рассмотрим ситуацию, с которой часто сталкиваются специалисты при поддержке розничных магазинов: после планового обновления конфигурации (например, 1С:УНФ или 1С:Розница) сканер штрихкодов начинает вести себя непредсказуемо. Первые несколько штрихкодов могут отсканироваться нормально, но затем устройство начинает выдавать совершенно другие цифры, зацикливаться на одном коде или постоянно сообщать «товар не найден». При этом проверка в обычных текстовых редакторах (Блокнот, Word) показывает, что сам сканер работает идеально.
Разберем по шагам, почему возникает эта проблема, почему манипуляции с драйверами не помогают, и выясним истинную причину такого поведения системы.
Проанализируем типичные проявления проблемы в Рабочем месте кассира (РМК):
Многие специалисты на этом этапе начинают откатывать компоненты интеграции, например, драйвер 1C:Сканер штрихкода (с 10-й версии на 9.0.8.7 или 9.0.8.10), чистить систему или переводить сканер в режим VCOM. Посмотрим правде в глаза — эти действия не принесут результата, так как оборудование функционирует штатно. Дело кроется в коде самой конфигурации.
Проблема кроется в программной ошибке (баге) самой конфигурации 1С:УНФ (и аналогичных релизах 1С:Розница). Сбой возникает именно в момент обработки неизвестного системе штрихкода, и ключевым фактором здесь являются права пользователя.
Рассмотрим логику работы программы:
Из-за недоработки в коде конфигурации, вместо того чтобы просто очистить буфер сканера и выдать информационное сообщение об ошибке, алгоритм «зависает». Окно сопоставления не открывается из-за нехватки прав, но и процесс сканирования не завершается корректно. В результате интерфейс РМК зацикливается на этом коде: буфер не очищается, и все последующие сканирования (даже правильных товаров) возвращают цифры зависшего неизвестного штрихкода с сообщением, что товар не найден.
Разберем способы устранения данной ошибки от временных обходных путей до окончательного исправления.
Так как разработчики признали наличие этой ошибки, самым правильным и надежным решением будет обновление базы 1С до более свежего релиза. В новых версиях конфигураций логика обработки ограничений прав была исправлена.
Теперь при сканировании неизвестного штрихкода пользователем без прав на создание номенклатуры система корректно очищает буфер устройства и выводит простое уведомление о том, что товар в базе не найден. РМК при этом не блокируется, и кассир может спокойно сканировать следующий товар.
Если обновить конфигурацию 1С «здесь и сейчас» невозможно (например, база сильно доработана), применим временный метод. Необходимо дать кассиру минимальные права, при которых будет открываться окно сопоставления штрихкодов.
В этом случае при сканировании неизвестного товара кассир увидит всплывающее окно. Ему будет достаточно нажать кнопку отмены или закрыть это окно. После этого буфер сканера очистится штатным образом, и зацикливания оборудования не произойдет. Да, это добавляет лишний клик для кассира, но спасает от необходимости перезапускать 1С.
В качестве организационной меры можно усилить контроль за товаром. Если в магазин поступает товар с поврежденной заводской этикеткой, сканер может считать его с ошибкой (например, потерять одну цифру), что для системы равнозначно отсутствию штрихкода в базе.
Организуйте процесс так, чтобы для проблемных позиций заранее распечатывались и наклеивались внутренние штрихкоды 1С. Чем меньше неизвестных кодов попадет под сканер кассира, тем реже будет воспроизводиться программный сбой.
Подводя итог: если вы столкнулись с подобным поведением сканера в РМК, не тратьте время на переустановку драйверов или поиск проблем в операционной системе Windows. Проверьте поведение сканера под полными правами. Если под администратором проблема исчезает, значит вы столкнулись с ошибкой релизов 1С, и лучшее решение — запланировать обновление базы.