Как исправить ошибку загрузки драйвера сканера штрихкода при переходе с 1С 8.2 на 8.3

Системный администратор 1С v8.3 (Обычные формы) Сфера услуг, туризм и социальный сектор
← На главную

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

Разберем причины возникновения этой неполадки, проанализируем механизм взаимодействия платформы с COM-библиотеками и рассмотрим пошаговую инструкцию по восстановлению работоспособности сканера.

Почему возникает ошибка загрузки драйвера

Проанализируем техническую сторону вопроса. Чаще всего сбой связан со следующими факторами:

  1. Хранение абсолютных путей в реестре Windows. Библиотека торгового оборудования Scaner1C.dll регистрируется в системе как COM-сервер. В ветке реестра InprocServer32 фиксируется полный путь к файлу. Если библиотека ранее находилась в каталоге платформы 8.2 (например, .../1cv82/8.2.19.83/bin/), а затем была скопирована в каталог 8.3 без предварительной разрегистрации, в реестре нередко сохраняется ссылка на старую папку. В результате процесс 1С обращается по несуществующему адресу и завершает инициализацию ошибкой.
  2. Несовместимость разрядности процессов. Драйвер Scaner1C.dll представляет собой 32-разрядную библиотеку. 64-битное клиентское приложение 1С:Предприятие не способно загрузить 32-битный COM-модуль напрямую в свое адресное пространство. Для работы с подобными библиотеками на клиентских местах обязательно должен использоваться 32-битный клиент (x86).
  3. Конфликт утилит регистрации. В 64-разрядных операционных системах присутствуют две версии утилиты regsvr32.exe. Если 32-битная библиотека регистрируется через 64-битную утилиту по умолчанию без указания окружения, записи могут создаваться некорректно.

Пошаговое решение проблемы

Разберем последовательность действий, которая позволяет гарантированно устранить ошибку и запустить оборудование в работу.

  1. Закрываем все запущенные процессы 1С. Перед началом манипуляций необходимо убедиться, что ни один сеанс 1С не удерживает библиотеки в памяти.
  2. Очищаем системный реестр от устаревших путей. Открываем редактор реестра (regedit) от имени администратора. Выполняем поиск по имени компоненты Scaner1C и ключам CLSID. Удаляем найденные разделы, которые ссылаются на старые каталоги платформы 8.2 или несуществующие пути.
  3. Переустанавливаем пакет драйвера. Запускаем штатный инсталлятор драйвера сканера (например, дистрибутив драйвера устройств ввода «Штрих-М») с правами администратора, чтобы восстановить все системные зависимости и файлы рантайма.
  4. Перезагружаем компьютер. Это необходимо для сброса заблокированных дескрипторов и очистки кэша подсистемы COM.
  5. Размещаем библиотеку и регистрируем в системе. Запускаем командную строку (cmd.exe) от имени администратора. Для корректной регистрации 32-битной библиотеки в 64-битной Windows вызываем системную утилиту из каталога SysWOW64:
    
    C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.8.1747\bin\Scaner1C.dll"
    
    После выполнения команды должно появиться системное уведомление об успешной регистрации модуля.

Рекомендации по правильному размещению внешних компонент

Обратим внимание на распространенную ошибку сопровождения. Копирование внешних библиотек торгового оборудования в папку bin конкретного релиза платформы создает сложности при регулярных обновлениях. При каждом переходе на новый релиз 1С (например, с 8.3.8 на более актуальный) путь к каталогу меняется, а старая папка удаляется, что снова приводит к поломке регистрации COM-объекта.

Чтобы избежать подобных ситуаций в будущем, рекомендуем придерживаться следующих правил:

  1. Использовать постоянную директорию. Размещайте файлы драйверов либо в папке установки самого оборудования (например, в каталоге производителя в Program Files (x86)), либо в системной папке C:\Windows\SysWOW64. В этом случае обновление платформы 1С никак не затронет зарегистрированные пути.
  2. Контролировать разрядность клиента. Для старых конфигураций на базе обычных форм (включая отраслевые решения линейки «Трактиръ»), использующих COM-драйверы, на рабочих местах кассиров и операторов следует устанавливать строго 32-разрядную версию платформы 1С:Предприятие.
  3. Переход на драйверы Native API. При наличии возможности в конфигурации стоит рассмотреть переход на использование драйверов, разработанных по технологии «1С:Совместимо» (Native API) в рамках Библиотеки подключаемого оборудования (БПО). Такие модули подключаются средствами платформы динамически, не требуют регистрации в реестре операционной системы через regsvr32 и поддерживают как 32-, так и 64-разрядные клиенты.
← На главную