В процессе эксплуатации торгового оборудования системные администраторы и пользователи «1С:Розница» часто сталкиваются с загадочным поведением периферии: устройство исправно работает утром, но после обеденного перерыва или длительного простоя перестает передавать данные в информационную базу. При этом сам сканер может подавать звуковые сигналы и включать луч лазера, но заветные цифры штрихкода в документе не появляются. Разберем подробно причины возникновения этой проблемы на примере модели Idzor 2200 и выясним, какие шаги помогут восстановить стабильную работу точки продаж.
Прежде чем переходить к радикальным мерам, давайте проанализируем, что происходит с системой во время простоя. Когда кассир уходит на обед, компьютер и подключенные к нему USB-устройства остаются без активности. В этот момент в игру вступают алгоритмы энергосбережения операционной системы Windows и внутренние настройки контроллера самого сканера. Основная проблема заключается в том, что после «пробуждения» связь между драйвером 1С и аппаратной частью не восстанавливается автоматически.
Рассмотрим основные направления, по которым мы будем проводить диагностику и ремонт:
Первым делом проверим настройки Windows, так как именно они чаще всего являются виновниками отключения портов. Разберем по шагам, как запретить системе «усыплять» сканер.
Шаг 1. Настройка схемы питания. Откроем «Панель управления», перейдем в раздел «Электропитание», выберем текущую схему и нажмем «Изменить дополнительные параметры питания». В открывшемся списке найдем пункт «Параметры USB», затем «Параметр временного отключения USB-порта». Установим значение «Запрещено». Это критически важный момент, так как по умолчанию Windows отключает питание неиспользуемых портов для экономии энергии.
Шаг 2. Диспетчер устройств. Нажмем правой кнопкой мыши на «Пуск» и выберем «Диспетчер устройств». Развернем ветку «Контроллеры USB». Для каждого пункта «Корневой USB-концентратор» и «Generic USB Hub» выполним следующие действия: правой кнопкой — «Свойства» — вкладка «Управление электропитанием». Снимем галочку с пункта «Разрешить отключение этого устройства для экономии энергии».
Многие сканеры, включая Idzor 2200, по умолчанию работают в режиме Keyboard HID или используют NativeApi драйвер 1С. Это удобно, так как не требует установки стороннего ПО, но крайне нестабильно при длительных сессиях. Как показывает практика, перевод сканера в режим Virtual COM Port решает 90% проблем с «отвалом» устройства.
Рассмотрим процесс перенастройки:
После этого Windows обнаружит новое устройство. Проанализируем ситуацию: если в «Диспетчере устройств» появилось «Неизвестное устройство», нам необходимо установить драйвер виртуального COM-порта (обычно это драйверы Prolific или STMicroelectronics, специфичные для чипа Idzor). После установки в системе должен появиться новый COM-порт (например, COM3).
Теперь настроим 1С. Перейдем в раздел «Администрирование» — «Подключаемое оборудование». В карточке сканера изменим тип драйвера. Вместо «1С:Сканер штрихкода (NativeApi)» выберем «1С:Сканер штрихкода». В параметрах подключения укажем номер нашего COM-порта. Проверим работу через кнопку «Тест устройства». Для интеграции устройства в типовых конфигурациях также можно использовать обработку обслуживания для подключения сканера через NativeAPI.
Выясним причину, связанную с «железом». Бюджетные 2D-сканеры имеют функцию Deep Sleep. Если сканер не видит активности в течение 30 минут, он засыпает на аппаратном уровне. При первом сканировании после обеда он просыпается, издает писк, но не успевает инициализировать USB-сессию, и данные теряются.
Чтобы это исправить, нам снова понадобится инструкция. Ищем разделы:
В версии 2.2.9.20 механизмы работы с торговым оборудованием имеют свои нюансы. Проанализируем программную часть. Если используется Native-драйвер, 1С ожидает событие ВнешнееСобытие. При задержке инициализации порта событие может просто не генерироваться. При необходимости работы со старыми компонентами торгового оборудования можно применить расширение для возврата снятых с поддержки драйверов в «1С:Розница» 2.2.9.20.
Попробуем оптимизировать работу кода и настроек:
// Пример логики переподключения устройства
Процедура ПриОткрытииФормыРМК()
ОчиститьСообщения();
// Попытка принудительной активации сканера
Результат = ПоддерживаемыеУстройства.ПодключитьУстройство(СканерШтрихкода);
Если Не Результат Тогда
Сообщить("Внимание! Проверьте подключение сканера ШК.");
КонецЕсли;
КонецПроцедуры
Также полезным советом из практики является рекомендация закрывать и открывать 1С во время обеденного перерыва. Это полностью освобождает дескрипторы USB-портов и предотвращает утечки памяти в старых версиях компоненты ScanOPOS.dll.
Не стоит забывать и о физических факторах. Поскольку проблема проявляется «после обеда», это может быть связано с накоплением статического электричества. Сотрудник, вернувшись с перерыва, касается сканера, происходит микроразряд, который подвешивает контроллер устройства. При этом лазер светит, но логика передачи данных блокируется.
Для стабилизации работы рекомендуем:
Рассмотрим краткий алгоритм действий, если сканер Idzor 2200 перестал работать:
Соблюдение этих рекомендаций позволит добиться стабильной работы оборудования Idzor 2200 в «1С:Розница» и избавит кассиров от необходимости постоянно перезагружать компьютер после перерывов.