При переходе на 64-битную платформу 1С:Предприятие многие сталкиваются с проблемой, когда перестают работать внешние подключения, например, к базам данных MySQL через ODBC. Стандартная ошибка «не установлен драйвер odbc» вводит в заблуждение, ведь драйвер установлен и до перехода все работало отлично. Разберем по шагам, почему возникает эта проблема и как ее решить.
Проанализируем ситуацию: у нас есть работающая интеграция между 1С и сторонним веб-приложением, база данных которого находится на MySQL. Подключение осуществлялось через 32-битный ODBC-драйвер. После обновления платформы 1С до 64-битной версии обработка импорта данных перестала работать, ссылаясь на отсутствие драйвера. Причина такого поведения кроется в несовместимости разрядностей приложений и библиотек.
Основная причина проблемы — фундаментальное ограничение операционной системы: 64-битное приложение (в нашем случае платформа 1С x64) не может использовать 32-битные библиотеки (DLL), и наоборот. Установленный ранее 32-битный ODBC-драйвер для MySQL является именно такой библиотекой. Когда 64-битная 1С пытается к нему обратиться, она его просто "не видит", отсюда и сообщение об отсутствии драйвера.
Переход на 64-битную платформу часто является вынужденной мерой, например, из-за ошибок нехватки оперативной памяти при работе с большими объемами данных или при публикации баз на веб-сервере. Однако этот переход требует проверки и обновления всех внешних компонент, включая драйверы баз данных.
Еще один симптом этой же проблемы — ошибка ODBC №193 (%1 не является приложением Win32), которая прямо указывает на попытку загрузки 32-битной DLL 64-битным процессом.
Для восстановления работоспособности нам необходимо найти и установить 64-битную версию ODBC-драйвера, совместимую с версией сервера MySQL.
MySQL ODBC 5.1 Driver. Это означает, что нам нужно искать драйвер именно этой линейки (например, 5.1.13, как выяснилось в итоге).Важный момент: Как показывает практика, более новые версии драйверов могут требовать установки дополнительных компонентов, например, распространяемых пакетов Microsoft Visual C++ (вплоть до полной Visual Studio 2019 Redistributable). Это может неоправданно усложнить процесс. Поэтому поиск версии, максимально близкой к исходной 32-битной, является предпочтительной стратегией.
После того как нужный установочный файл (MSI) скачан, приступаем к установке и настройке. Здесь есть критически важный нюанс, на котором ошибаются многие.
Панель управления -> Администрирование -> Источники данных (ODBC). Именно ее нужно использовать для настройки драйвера для 64-битной 1С.C:\Windows\SysWOW64\odbcad32.exe. Если запустить ее, вы попадете в окружение для 32-битных приложений, и 64-битная 1С не увидит созданные там источники данных.Последний этап — убедиться, что 1С использует правильные параметры для подключения. В большинстве случаев менять ничего не придется, если имя нового 64-битного драйвера совпадает с именем старого 32-битного.
Рассмотрим пример строки подключения из исходной темы:
Driver={MySQL ODBC 5.1 Driver};
Server=192.168.1.17;
Uid=express_unload;
Database=akkord;
password=1;
CHARSET=cp1251;
COMPRESSED_PROTO=1
Параметр Driver — ключевой. Его значение должно в точности соответствовать имени драйвера из списка в 64-битном администраторе ODBC. Если имя отличается (например, добавился суффикс "x64"), необходимо внести соответствующие изменения в код 1С, где формируется эта строка.
После выполнения этих шагов подключение из 64-битной платформы 1С к базе данных MySQL должно восстановиться.
В заключение, отметим, что переход на x64 — это не просто обновление платформы, а смена архитектурной среды. Успешность этого перехода зависит от своевременной проверки и обновления всех внешних зависимостей, в первую очередь — драйверов для работы с базами данных.