Подключение к MYSQL через ODBC драйвер |
Написал Валецкий Станислав
|
08.11.2010 |
Получить данные с интернет-магазина в 1С достаточно просто. Для этого необходимо установить драйвер ODBC и получить внешний доступ к MYSQL. Драйвер лучше использовать версии 3.51, т.к. он стабильно и без проблем работает с 1С. Что касается внешнего доступа, то если не удается получить внешний доступ к MYSQL напрямую, то можно использовать подключение через ssh-тунель. Дальше получаем и обрабатываем полученные данные в 1С так как нам это необходимо. Например, сделаем выборку клиентов нашего магазина и загрузим в 1С.
//Устанавливаем соединение
Connection = Новый COMОбъект("ADODB.Connection");
//Необходимые параметры для подключения
АдресСервера = "localhost"; //ip адрес сервера MySQL
НомерПорта = "3306"; //порт подключения, обычно 3306
ИмяБД = "testBD"; //имя подключаемой базы данных
Пользователь = "user"; //имя пользователя БД с соответствующими правами
Пароль = "user"; //пароль пользователя БД
//Подключаемся
Попытка
Connection.Open("Driver={MySQL ODBC 3.51 Driver};Server=" + СокрЛП(АдресСервера) + ";
Port=" + НомерПорта + ";Database=" + СокрЛП(ИмяБД) + ";
User=" + СокрЛП(Пользователь) + ";
Password=" + Пароль + ";Option=3");
Исключение
Сообщить("Ошибка подключения - " + ОписаниеОшибки());
Возврат;
КонецПопытки;
//Пропишем текст запроса к БД сайта
//Выборка контрагентов
ТекстЗапросаMYSQL = "SELECT * FROM `order_user`";
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet.ActiveConnection = Connection;
RecordSet.Open(ТекстЗапросаMYSQL);
Пока RecordSet.EOF() = 0 Цикл
//Ищем контрагента
КодКонтрагента = RecordSet.Fields("id").Value;
НайдКонтрагент = Справочники.Контрагенты.НайтиПоКоду(КодКонтрагента);
//Не нашли - создаем нового
Если НайдКонтрагент = Неопределено Тогда
НовКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовКонтрагент.Код = КодКонтрагента;
НовКонтрагент.Наименование = RecordSet.Fields("name").Value;
// прописываем остальные поля
//...................
НовКонтрагент.Записать();
Сообщить("Контрагент создан");
Конецесли;
RecordSet.MoveNext();
Конеццикла;
//Закрываем выборку
RecordSet.Close();
//Закрываем соединение
Connection.Close();
Данный пример не является завершенным, а просто демонстриует принцип подключения к базе данных и обработки полученных данных. Для полноценного функционирования импорта данных в 1С необходимо правильно организовать выборку данных из MYSQL (составить запрос) и правильно заполнить полученные данные в соответствующие поля объекта 1С, при необходимости создать дополнительные объекты в 1С, например в данном случае - контактные данные.
Аналогичным образом можно импортировать любые данные присутствующие в таблицах базы данных Вашего сайта.
|