В процессе настройки торгового оборудования в среде 1С:Предприятие пользователи часто сталкиваются с ситуацией, когда сканер штрихкодов, работающий через NativeApi, отказывается функционировать в рабочем месте кассира (РМК). Одной из самых коварных является ошибка 999, которая сопровождается сообщением «Проверьте доступность устройства». Ситуация осложняется тем, что при обычном тестировании в настройках сканер может подавать признаки жизни, но при запуске торгового интерфейса связь обрывается.
В этой статье мы подробно проанализируем причины возникновения этой ошибки, разберем конфликт версий драйверов 8.1.8.1 и 9.0.7.5, а также настроим операционную систему Windows 11 для стабильной работы торгового оборудования.
Рассмотрим ситуацию, когда в настройках оборудования 1С сообщает, что в конфигурации заложена версия драйвера 8.1.8.1, а по факту установлена 9.0.7.5. Ошибка 999 в протоколе NativeApi является «общей ошибкой инициализации». Это означает, что платформа 1С смогла загрузить библиотеку драйвера в память, но сама библиотека не смогла получить доступ к порту сканера или не смогла корректно инициализировать свои внутренние объекты.
Почему происходит конфликт версий? Выясним причину: когда мы нажимаем кнопку «Установить драйвер» или «Обновить драйвер», 1С пытается распаковать внешнюю компоненту из своего макета во временную папку пользователя. Однако, если в системе уже зарегистрирована более новая версия (например, от другой базы 1С или установленная вручную), Windows может блокировать перезапись файлов или приоритетно использовать уже существующую в кэше библиотеку. В современных системах, таких как Windows 11, механизмы защиты файлов работают особенно строго.
Для решения проблемы с несоответствием версий нам необходимо принудительно заставить 1С использовать корректную библиотеку. Разберем по шагам процесс очистки:
%AppData%\Roaming\1C\1Cv8\ExtLst.ExtLst. Именно здесь 1С хранит распакованные DLL-файлы драйверов.%LocalAppData%\1C\1Cv8\ на наличие аналогичных каталогов.После этих действий система должна корректно подтянуть версию 8.1.8.1, которая требуется конфигурации «Управление торговлей».
Проанализируем еще одну важную деталь: почему сканер начинает работать только после нажатия кнопки «Тест устройства»? Это указывает на то, что порт USB при запуске системы или после простоя находится в «спящем» режиме. При нажатии на «Тест» 1С посылает принудительную команду инициализации, которая «пробуждает» порт, но при обычном открытии РМК этого импульса недостаточно.
Для исправления ситуации настроим параметры электропитания:
Посмотрим на ситуацию с технической стороны самого устройства. Если используется модель типа Port XL-6200, она может работать в двух режимах: эмуляция клавиатуры (HID) и виртуальный COM-порт (VCP). Ошибка 999 часто возникает, если в настройках 1С выбран порт COM, но физически сканер не определился в диспетчере устройств как Ports (COM & LPT).
Проанализируем соответствие разрядности. Если вы используете 64-битный клиент 1С (x86_64), убедитесь, что компонента NativeApi версии 8.1.8.1 поддерживает эту разрядность. В старых релизах конфигураций драйверы в макетах часто были только 32-битными. В таком случае попробуйте запустить базу через 32-битный тонкий клиент 1С.
Если проблема сохраняется, мы можем проанализировать, как 1С подключает оборудование программно. В типовых конфигурациях за это отвечает процедура ПодключитьОборудование() в модуле МенеджерОборудованияКлиент. Рассмотрим пример упрощенного кода, который используется для вызова драйвера:
Результат = МенеджерОборудованияКлиент.ПодключитьОборудование(УникальныйИдентификатор, УстройствоСсылка);
Если Не Результат Тогда
ТекстОшибки = "";
МенеджерОборудованияКлиент.ПолучитьОшибкуПодключения(ТекстОшибки);
Сообщить("Ошибка инициализации сканера: " + ТекстОшибки);
КонецЕсли;
При возникновении ошибки 999 метод ПодключитьОборудование возвращает Ложь. Чтобы «лечение» через тест устройства не требовалось каждый раз, убедитесь, что в настройках рабочего места в 1С правильно указано имя компьютера. Если имя ПК изменилось (например, после обновления Windows 11), 1С создаст новое рабочее место, а настройки оборудования останутся привязаны к старому, что также приведет к невозможности инициализации устройства.
%AppData%, чтобы устранить конфликт версий 8.x и 9.x.Соблюдение этих шагов позволит восстановить стабильную связь между 1С и сканером штрихкодов, исключив появление системных ошибок при открытии чеков и подборе товара.