Настройка соединения 1С 8.2/8.3 с базой данных MySQL

21.08.2019

В данной статье я не буду подробно расписывать как писать обработку для 1С чтобы приконнектиться к MySQL. У меня уже была обработка и я столкнулся с проблемой именно из-за отсутствия драйвера.

Пункт 1. Проблема

При переезде на другой сервер столкнулся со следующей проблемой (Произошла исключительная ситуация Microsoft OLE DB Provider for ODBC Drivers): не работал обмен 1С с внешней базой данных MySQL. Оно то и правильно что не работал. Он не должен, ведь я не установил ODBC Connector MySQL и как следствие при попытке обмена видел ошибку (у вас наверняка что-то подобное выползает на экран, если вы сюда попали гугля аналогичную проблему 😉)

{ОбщаяФорма.СР_ФормаОбменСВнешнейБазой.Форма(84)}: Ошибка при вызове метода контекста (Open)
	Соединение.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

Пункт 2. Какая версия MySQL ODBC ANSI Driver нужна?

И так. У нас для решения проблемы с подключением 1С 8.2/8.3 к промежуточной базе MySQL нам нужен, как я уже писал выше, ODBC Connector MySQL! И не простой, а именно тот, что у нас прописан в модуле обмена. Идём в Конфигуратор 1С, находим там модуль в котором прописано подключение и смотрим какой же чудесный драйвер и какой версии используется для подключения к внешней базе данных! И о чудо - это MySQL ODBC 5.3 ANSI Driver! В моём случае, конечно у вас он может быть другой версии. И на всякий случай вот код (смотрите ниже), можете сравнить со своим или вообще написать заново. Как вам больше нравится 🙂! И да, я тут пару фишек сделал. Вы можете вписать свои данные в поля и они сразу же отобразятся в коде, после чего вам остаётся скопипастить его себе прямо с сайта. Удобно? Ну да ладно. Код:

Функция ОткрытьСоединение()

	Сервер="127.0.0.1";
	БазаДанных="MySQLdbname";
	Пользователь="sa";
	Пароль="P@ssW0rD123!";
	
	Соединение = Новый COMОбъект("ADODB.Connection");
	СтрокаСоединения = "Provider=MSDASQL;DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER="+Сервер+";DataBase="+БазаДанных+";UID="+Пользователь+";PWD="+Пароль+";";
	Соединение.ConnectionString = СтрокаСоединения;
	Соединение.Open();
	Возврат Соединение;

Пункт 3. Установка MySQL ODBC ANSI Driver

Но всё это чудо не будет работать собственно без драйвера, так что идём по этой ссылке и скачиваем себе драйвер подходящей версии и разрядности. Копируем на сервер и устанавливаем его. Думаю с этим у вас проблем не возникнет, а если будут, то дальше можете не читать 🙂.

Пункт 4. Настройка соединения 1С 8.2/8.3 с внешней базой данных MySQL

Дальше нам понадобится программа odbcad32. Её устанавливать не нужно, она у вас уже есть! Ищите её в Администрирование или Ctrl + R odbcad32 Enter

Для 32 битных систем программа расположена:

%windir%\system32\odbcad32.exe

А для 64 битных систем программа лежит тут:

%windir%\syswow64\odbcad32.exe

Но и ту и другую вы можете открыть из Администрирование в панели управления.

Расположение Источника данных ODBC в Windows
Источник данных ODBC в Панели управления

Переходим во вкладку Системный DSN и жмем кнопку Добавить... выбираем MySQL ODBC 5.3 ANSI Driver или какой у вас там версии коннектор. Готово. После чего переходим в настройки, выделяем системный источник данных и кликаем Настройка.... Тут совсем всё просто, даже писать не буду, подставляете свои данные

Добавление драйвера в ODBC
Добавление драйвера в ODBC и последующая Настройка производится из вкладки Системный DSN
Создание нового источника данных
Создание нового источника данных после нажатия Добавить ...
Тестирование соединения с внешней базой данных MySQL
Протестируйте соединение с вашей внешней MySQL базой данных нажав кнопку Test

И конечно стоит разок прожать кнопку Test дабы убедиться что вы всё вписали верно. Если вы увидите сообщение: "Connection Successful", жмите ОК и можете спать спокойно.

Пункт 5. Пару слов в заключение

Действительно тут нет ничего сложного, однако решил записать, так как дело это нехитрое и если ты не занимаешься настройкаой соединения базы 1С с внешней MySQL базой данных каждый день, то через N месяцев ты успешно можешь забыть всю процедуру и будешь заново гуглить. Я записал для себя, но если это пригодится и тебе, то будет просто здорово! Спасибо что дочитал до конца. А то обычно пользователи только успешно копипастят куски кода и ничего не читают 😒 !

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас 😉 !
Отдельное спасибо всем, кто отправляет донатики 😀! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.
10824