Оставлю это хотя бы для себя на память 🙂
Итак, для того, чтобы настроить связь между MySQL и 1С нужно:
1. Скачать дистрибутив установки ODBC connector.
Я обычно пользуюсь ODBC 5.3 Unicode driver, он еще называется 5.3.0 alpha, скачать можно здесь https://downloads.mysql.com/archives/c-odbc/).
Устанавливать нужно на сервер, на котором лежит база данных. То есть, если в пути к базе написано «10.80.11.30», то и устанавливаем на сервер 10.80.11.30, если в пути к базе написано «localhost», то и устанавливаем на этот же сервер «localhost», ну вы понимаете.
Если в процессе установки возникает ошибка «Error 1318:Error installing ODBC Driver ……. the specified module could not be found … myodbc5s.d …», значит на сервере не хватает пакета «Microsoft Visual C++ 2010 Redistributable Package», скачать можно здесь https://www.microsoft.com/en-us/download/confirmation.aspx?id=14632 (x64) и здесь https://www.microsoft.com/en-us/download/confirmation.aspx?id=5555 (x86). Если вы взяли версию драйвера отличную от моей любимой ODBC 5.3 Unicode driver, то пакет, необходимый для установки ODBC может быть и другой, ориентируйтесь на название недостающего компонента в описании ошибки, и вы обязательно найдете какого именно пакета Microsoft Visual C++ вам не хватает. Пакет Microsoft Visual C++ нужно тоже установить и для 32-х разрядной системы, и для 64-х разрядной.
2. Настроить ODBC connector.
На том сервере, на котором мы устанавливали ODBC connector, запускаем C:WindowsSysWOW64odbcad32.exe, добавляем базу в User DSN и System DSN, обязательно нажимаем «Test» и радуемся, что соединение устанавливается.
Там же запускаем C:Windowssystem32odbcad32.exe, добавляем базу в User DSN и System DSN, обязательно нажимаем «Test», опять бурно радуемся, что соединение устанавливается.
3. Если соединение не устанавливается, проверяем, что в MySQL не наложены ограничения на IP, с которых осуществляется подключение. Если это не помогло, можно установить MySQL Workbench (https://www.mysql.com/products/workbench/), добавить туда базу данных MySQL и протестировать подключение — у Workbench более информативные сообщения об ошибке, зачастую с первого раза понятно куда копать.
4. После всех манипуляций можно выпить бокальчик вина и создать обработку работы с базой MySQL. Это очень просто:
АДОСоединение = Новый COMОбъект("ADODB.Connection");
Если АДОСоединение.State = 0 // 0 - adStateClosed
Тогда
SRV = "..."; //адрес сервера MySQL
DB = "..";//имя базы MySQL
UID = "..";//имя пользователя MySQL
PWD = "...";//пароль пользователя MySQL
PORT = "";//порт сервера MySQL, например 3306
cstr = "DRIVER={MySQL ODBC 5.3 Unicode Driver};
|SERVER=" + SRV + ";UID=" + UID + ";
|PASSWORD=" + PWD + ";DATABASE=" + DB + ";PORT=" + PORT + ";";
Попытка
АДОСоединение.Open (cstr);
Исключение
АДОСоединение = Неопределено;
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
//выполняем запрос к MySQL:
ТекстЗапроса = "SELECT ITEMS.ID FROM ITEMS";
Table = АДОСоединение.Execute(ТекстЗапроса);
Пока Table.EOF() = 0 Цикл
Сообщить(Table.Fields("ID").Value);
Table.MoveNext();
КонецЦикла;
Table.Close();
Я регистрирую только в C:WindowsSysWOW64odbcad32.exe в Системный DSN
Можно так подключиться:
Показать
Если из драйвера соединение работает, то и из 1С подвяжется
А Если сервер 1С установлен на Centos 7. Можно ли сделать так же?