Руководство, облегчающее жизнь при очередной настройке подключения MySQL к 1С через ODBC connector (driver).
Итак, для того, чтобы настроить связь между MySQL и 1С нужно:
- Скачать дистрибутив установки ODBC connector. https://downloads.mysql.com/archives/c-odbc/ выберите для себя необходимую версию
- Настроить ODBC connector. Заходим в пуск поиск набираем odbc.
выпавшем выбираем необходимую разрядность приложения.
Настраиваем Системный DSN.
Вводим данные сервера
3. Устанавливаем драйвера для подключения.
Если в процессе установки возникает ошибка «Error 1318:Error installing ODBC Driver ……. the specified module could not be found … myodbc5s.d …», значит на сервере не хватает пакета «Microsoft Visual C++ данная сылка для 2015 версии https://www.microsoft.com/ru-ru/download/details.aspx?id=48145 Если вы взяли версию драйвера отличную от моей любимой ODBC 5.3 Unicode driver, то пакет, необходимый для установки ODBC может быть и другой, ориентируйтесь на название недостающего компонента в описании ошибки, и вы обязательно найдете какого именно пакета Microsoft Visual C++ вам не хватает. Пакет Microsoft Visual C++ нужно тоже установить и для 32-х разрядной системы, и для 64-х разрядной.
4. Приблизительный скрипт для обработки 1с
АДОСоединение = СоздатьОбъект(«ADODB.Connection»);
Если АДОСоединение.State = 0 // 0 — adStateClosed
Тогда
SRV = «10.10.0.0»; //адрес сервера MySQL
DB = «tvur»;//имя базы MySQL
UID = «cdpriv»;//имя пользователя MySQL
PWD = «Cpwd»;//пароль пользователя MySQL
PORT = «3306»;//порт сервера MySQL, например 3306
cstr = «DRIVER={MySQL ODBC 5.3 Unicode Driver};
|SERVER=» + SRV + «;UID=» + UID + «;
|PASSWORD=» + PWD + «;DATABASE=» + DB + «;PORT=» + PORT + «;»;
Попытка
АДОСоединение.Open (cstr);
Исключение
//АДОСоединение = Неопределено;
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
//выполняем запрос к MySQL:
ТекстЗапроса = «SELECT * FROM tvpalm;»;
Table = АДОСоединение.Execute(ТекстЗапроса);
Пока Table.EOF() = 0 Цикл
Сообщить(Table.Fields(«id»).Value);
Table.MoveNext();
КонецЦикла;
Table.Close();