Обновление конфигурации 1С:Управление торговлей с версии 11.4 на 11.5 часто сопровождается переходом на новые версии Библиотеки стандартных подсистем (БСП). Это влечет за собой изменение механизмов взаимодействия с периферийным оборудованием, в частности со сканерами документов. Ошибка TWAIN: Invalid TWAIN driver может возникать даже в тех случаях, когда сканер физически не используется при создании документа, например, при оформлении Заказа клиента. Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам способы ее решения.
Проанализируем ситуацию: в версии УТ 11.5 (начиная с БСП 3.1.6) реализована логика фоновой инициализации подсистем работы с файлами. При открытии формы практически любого документа система проверяет настройки сканирования, чтобы подготовить команду «Отсканировать». Если в базе данных включена опция использования присоединенных файлов, 1С пытается инициализировать компоненту сканирования. Ошибка Invalid TWAIN driver означает, что 1С нашла упоминание о драйвере в системе (реестре или настройках), но не смогла корректно загрузить его или обменяться с ним данными.
Это наиболее вероятная причина сбоя. Архитектура TWAIN исторически является 32-битной. Библиотека twain_32.dll, находящаяся в системных папках Windows, не может быть напрямую загружена 64-битным процессом. При обновлении платформы до версий 8.3.22 и выше инсталлятор по умолчанию может установить 64-битную версию тонкого клиента.
Проверим разрядность нашего приложения:
x86_64, значит, используется 64-битная платформа. Она физически не может работать с 32-битными драйверами сканера.x86, значит, платформа 32-битная, и причину нужно искать в настройках самой 1С или ОС.Решение: Если вам необходимо использовать сканирование через TWAIN, необходимо установить и запустить 32-битную версию тонкого или толстого клиента 1С.
Даже если в текущий момент сканеры не подключены, в справочнике Подключаемое оборудование могли остаться записи от предыдущих настроек. Система может пытаться опросить эти устройства при инициализации.
Выполним следующие действия:
В составе конфигурации УТ 11.5 поставляется макет с драйвером сканирования. Иногда после обновления версии БСП старая компонента в кэше конфликтует с новыми вызовами методов. Попробуем обновить компоненту принудительно.
Рассмотрим, как это работает «под капотом» в коде 1С. Система обычно выполняет вызов:
Результат = МенеджерОборудованияКлиент.ПодключитьОборудование(УстройствоСсылка);
Если Не Результат Тогда
ТекстОшибки = МенеджерОборудованияКлиент.ПолучитьТекстПоследнейОшибки();
// Здесь часто и возникает сообщение "Invalid TWAIN driver"
КонецЕсли;
Для исправления ситуации попробуем перерегистрировать компоненту:
Если пользователи работают через Remote Desktop Protocol (RDP) на сервере (например, Windows Server 2008 R2 или 2012), возникает проблема проброса локальных сканеров. При подключении сессии Windows пытается «пробросить» локальное TWAIN-устройство пользователя в терминальную сессию.
Проанализируем, почему это вызывает ошибку:
twain_32.dll на сервере.Invalid TWAIN driver возникает из-за того, что на сервере нет полноценного графического интерфейса драйвера (UI), который ожидает компонента 1С.Решение: На терминальном сервере необходимо либо установить универсальный драйвер (например, TWAIN Redirector), либо отключить в настройках RDP-клиента (mstsc.exe) проброс локальных устройств и ресурсов в части «Другие поддерживаемые устройства Plug and Play».
Иногда ошибка вызвана отсутствием или повреждением файлов в самой ОС Windows. Проверьте наличие файла C:\Windows\twain_32.dll. Также важно убедиться, что у пользователя, под которым запущен процесс 1С, есть права на чтение этого файла и веток реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall (для 32-битных систем) или HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node (для 64-битных систем), где хранятся сведения о драйверах.
Также рекомендуется выполнить очистку локального кэша 1С:
%AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.В большинстве случаев в УТ 11.5 проблема решается переходом на 32-битную платформу или полной очисткой списка подключаемого оборудования, если сканирование не используется. Если же ваша организация планирует использовать 64-битную платформу, рассмотрите возможность отказа от устаревшего протокола TWAIN в пользу NativeApi драйверов, которые более стабильно работают в современных версиях 1С:Предприятия.