Часто для интеграции с сайтами требуется прямая работа с базой данных MySQL.
Рассмотрим пример реализации интеграции MySQL и 1С.
Для начала необходимо установить ODBC Connector, скачать его можно с официального сайта https://dev.mysql.com/downloads/connector/odbc/.
Важно выбрать установщик нужной разрядности равной разрядности 1С, в которой будет работать код.
Для скачивания можно не регистрироваться, а нажать соответствующею ссылку (No thanks, just start my download).
Проверяем установку коннектора в «Администрировании»:
ODBC Data Sources (32-bit) или Источники данных ODBC (для 32 или 64 битной ОС соответственно).
На вкладке «Драйвер» нужная нам информация о названии драйвера.
В коде подставляем его вместо DRIVER, в обычных ситуациях используем Unicode.
В нашем случае driver = «MySQL ODBC 8.0 Unicode Driver»
Ниже код проверки соединения и выполнения произвольного запроса.
STMT — отвечает за корректную обработку кириллицы, используем «set character_set_results=cp1251»
Проверка подключения
Функция ТестПодключенияMySQL()
//сформируем строку подключения
СтрокаПодключенияКMySQL = "DRIVER={"+DRIVER+"};SERVER="+SERVER+";Database="+Database+";DataSource="+DataSource+";UID="+UID+";PWD="+PWD+";STMT="+STMT+";";
//создадим подключение
Попытка
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Open(СтрокаПодключенияКMySQL);
Connection.Close();
Возврат "ОК";
Исключение
Возврат ОписаниеОшибки();
КонецПопытки
КонецФункции
Выполнение произвольного запроса и обработка его результата
Процедура ВыполнениеЗапроса(Команда)
//сформируем строку подключения
СтрокаПодключенияКMySQL = "DRIVER={"+DRIVER+"};SERVER="+SERVER+";Database="+Database+";DataSource="+DataSource+";UID="+UID+";PWD="+PWD+";STMT="+STMT+";";
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Open(СтрокаПодключенияКMySQL);
//Теперь выполняем запрос
Command= Новый COMObject("ADODB.Command");
Command.CommandText = ЗапросSQL;
Command.ActiveConnection = Connection;
Command.CommandType = 1;
РезультатMySQL = Command.Execute();
//обходим результат запроса
РезультатMySQL.MoveFirst();
Пока РезультатMySQL.EOF() = 0 Цикл
РезультатMySQL.MoveNext();
//обработчик разбора результата
КонецЦикла;
//Закрываем соединение.
Connection.Close();
КонецПроцедуры
Ниже можно скачать обработку с примером кода.