Как исправить ошибку TWAIN: Invalid TWAIN driver в 1С:Управление торговлей 11.5 после обновления

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

Обновление конфигурации 1С:Управление торговлей с версии 11.4 на 11.5 часто сопровождается переходом на новые версии Библиотеки стандартных подсистем (БСП). Это влечет за собой изменение механизмов взаимодействия с периферийным оборудованием, в частности со сканерами документов. Ошибка TWAIN: Invalid TWAIN driver может возникать даже в тех случаях, когда сканер физически не используется при создании документа, например, при оформлении Заказа клиента. Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам способы ее решения.

Выясним причину: почему ошибка возникает при создании документов

Проанализируем ситуацию: в версии УТ 11.5 (начиная с БСП 3.1.6) реализована логика фоновой инициализации подсистем работы с файлами. При открытии формы практически любого документа система проверяет настройки сканирования, чтобы подготовить команду «Отсканировать». Если в базе данных включена опция использования присоединенных файлов, 1С пытается инициализировать компоненту сканирования. Ошибка Invalid TWAIN driver означает, что 1С нашла упоминание о драйвере в системе (реестре или настройках), но не смогла корректно загрузить его или обменяться с ним данными.

Способ 1. Проверка разрядности платформы (x32 против x64)

Это наиболее вероятная причина сбоя. Архитектура TWAIN исторически является 32-битной. Библиотека twain_32.dll, находящаяся в системных папках Windows, не может быть напрямую загружена 64-битным процессом. При обновлении платформы до версий 8.3.22 и выше инсталлятор по умолчанию может установить 64-битную версию тонкого клиента.

Проверим разрядность нашего приложения:

  1. Запустим 1С:Предприятие и откроем окно «О программе» (кнопка «i» в правом верхнем углу).
  2. Найдем строку «Приложение».
  3. Если в скобках указано x86_64, значит, используется 64-битная платформа. Она физически не может работать с 32-битными драйверами сканера.
  4. Если указано x86, значит, платформа 32-битная, и причину нужно искать в настройках самой 1С или ОС.

Решение: Если вам необходимо использовать сканирование через TWAIN, необходимо установить и запустить 32-битную версию тонкого или толстого клиента 1С.

Способ 2. Очистка списка подключаемого оборудования

Даже если в текущий момент сканеры не подключены, в справочнике Подключаемое оборудование могли остаться записи от предыдущих настроек. Система может пытаться опросить эти устройства при инициализации.

Выполним следующие действия:

  1. Перейдем в раздел НСИ и администрирование — Администрирование — РМК и оборудование.
  2. Откроем ссылку Подключаемое оборудование.
  3. Проверим типы оборудования «Сканеры штрихкода» и «Устройства ввода».
  4. Если там присутствуют старые или неиспользуемые записи (даже помеченные на удаление), их следует полностью удалить из справочника.
  5. Особое внимание уделим разделу «Сканирование» в персональных настройках пользователя.

Способ 3. Переустановка компоненты сканирования в 1С

В составе конфигурации УТ 11.5 поставляется макет с драйвером сканирования. Иногда после обновления версии БСП старая компонента в кэше конфликтует с новыми вызовами методов. Попробуем обновить компоненту принудительно.

Рассмотрим, как это работает «под капотом» в коде 1С. Система обычно выполняет вызов:


Результат = МенеджерОборудованияКлиент.ПодключитьОборудование(УстройствоСсылка);
Если Не Результат Тогда
    ТекстОшибки = МенеджерОборудованияКлиент.ПолучитьТекстПоследнейОшибки();
    // Здесь часто и возникает сообщение "Invalid TWAIN driver"
КонецЕсли;

Для исправления ситуации попробуем перерегистрировать компоненту:

  1. Зайдем в Персональные настройки пользователя (через меню сервис или настройки пользователя).
  2. Выберем пункт Сканирование.
  3. Нажмем кнопку Настроить сканирование.
  4. Если система предложит установить компоненту — соглашаемся. Если возникнет та же ошибка, попробуем нажать Использовать стандартные настройки.

Способ 4. Особенности работы в терминальном режиме (RDP)

Если пользователи работают через Remote Desktop Protocol (RDP) на сервере (например, Windows Server 2008 R2 или 2012), возникает проблема проброса локальных сканеров. При подключении сессии Windows пытается «пробросить» локальное TWAIN-устройство пользователя в терминальную сессию.

Проанализируем, почему это вызывает ошибку:

  1. В сессии создается виртуальное устройство, ссылающееся на twain_32.dll на сервере.
  2. 1С видит это устройство через интерфейс операционной системы.
  3. При попытке инициализации Invalid TWAIN driver возникает из-за того, что на сервере нет полноценного графического интерфейса драйвера (UI), который ожидает компонента 1С.

Решение: На терминальном сервере необходимо либо установить универсальный драйвер (например, TWAIN Redirector), либо отключить в настройках RDP-клиента (mstsc.exe) проброс локальных устройств и ресурсов в части «Другие поддерживаемые устройства Plug and Play».

Способ 5. Проверка системных библиотек и прав доступа

Иногда ошибка вызвана отсутствием или повреждением файлов в самой ОС Windows. Проверьте наличие файла C:\Windows\twain_32.dll. Также важно убедиться, что у пользователя, под которым запущен процесс 1С, есть права на чтение этого файла и веток реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (для 32-битных систем) или HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node (для 64-битных систем), где хранятся сведения о драйверах.

Также рекомендуется выполнить очистку локального кэша 1С:

  1. Закроем все сеансы 1С.
  2. Удалим содержимое папок %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.
  3. Снова запустим базу и проверим возникновение ошибки.

Резюме

В большинстве случаев в УТ 11.5 проблема решается переходом на 32-битную платформу или полной очисткой списка подключаемого оборудования, если сканирование не используется. Если же ваша организация планирует использовать 64-битную платформу, рассмотрите возможность отказа от устаревшего протокола TWAIN в пользу NativeApi драйверов, которые более стабильно работают в современных версиях 1С:Предприятия.

← На главную