Подключение к MySQL

Потребовалось подключить мне 1С предприятие напрямую к базе дынных MySQL напрямую, для того, чтобы прайс листы автоматически самостоятельно выгружались из 1С предприятия сразу в MySQL, т.е. напрямую на сайт.

Что для этого необходимо.

Во-первых необходимо установить специальный драйвер ODBC, который можно скачать с официально сайта http://dev.mysql.com/downloads/

После установки заходим ПУСК — Настройка — Панель управления — Администрирование. Открываем Источники данных (ODBC).

Должно появиться MySQL ODBC 5.1 Driver

Строка соединения через драйвер ODBC для mySQL.

строка соединения

"driver={MySQL ODBC 5.1 Driver};server=server;uid=user;pwd=password;database=mbs;port=3306";

Настройка связи между mysql и 1С через ODBC

Источник: http://infostart.ru/public/90666/

В новой редакции платформы 1С 8.2.14 появилась возможность устанавливать связь с внешними источниками данных. У меня была идея написать программу для прямой работы с базой данных на нашем сайте из 1С:Предприятия 8

В новой редакции платформы 1С 8.2.14 появилась возможность устанавливать связь с внешними источниками данных. У меня была идея написать программу для прямой работы с базой данных на нашем сайте из 1С:Предприятия 8

По шагам надо сделать следующее:

    • Скачать и установить ODBC драйвер для mysql

    • Настроить доступ и параметры связи с базой данных

    • Прописать необходимые таблицы в конфигураторе

    • Написать обработку которая будет соединяться с базой данных из 1С:Предприятия 8 и выдавать результат запроса.

Поехали...

1. Скачиваем ODBC коннектор с сайта поставщика mysql.

2. Устанавливаем его на компьютер.

3. Заходим в конфигуратор 1С и добавляем новый внешний источник данных.

4. Добавляем внешнюю таблицу:

5. Указываем режим автоматического формирования списка таблиц

6. Указываем параметры соединения. Пишем руками:

Цитата

DRIVER={MySQL ODBC 5.1 Driver};

SERVER=192.168.1.10;

DATABASE=bitrix;

и вбиваем логин и пароль для доступа к базе mysql

7. Если все ок, то мы увидим список таблиц из базы данных сайта.

8. Выбираем нужную таблицу галочкой

9. И получаем ее в дереве метаданных.

10. Создаем обработку для тестирования с одной процедурой:

ПараметрыСоединенияССайтомМИКО = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;ПараметрыСоединенияССайтомМИКО.СтрокаСоединения= "|DRIVER={MySQL ODBC 5.1 Driver};|SERVER=192.168.1.10;|DATABASE=bitrix;|UID=root;|PWD=dbpassword_4_user_root;";ВнешниеИсточникиДанных.СайтМИКО.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединенияССайтомМИКО);ВнешниеИсточникиДанных.СайтМИКО.УстановитьСоединение();Запрос = Новый Запрос("ВЫБРАТЬ | b_stat_browser.Ссылка, | b_stat_browser.ID, | b_stat_browser.USER_AGENT |ИЗ | ВнешнийИсточникДанных.СайтМИКО.Таблица.b_stat_browser КАК b_stat_browser");Таблица = Запрос.Выполнить().Выгрузить();

Тут необходимо понимать что в обработке надо обязательно заново прописывать параметры соединения с внешней базой данных, они не хранятся в конфигурации.

11. Ставим точку останова на конец процедуры и запускаем обработку в режиме предприятия.

12. Profit

p.s. мы получили данные из внешней таблицы mysql средствами языка 1С. Что самое интересное, внешние таблицы доступны в конструкторе запроса.

Ещё один пример

Процедура Подключить()

//Создаем подключение

СтрокаСоединения = «DRIVER=» + ИмяДрайвера + «;SERVER=» + Наименование + «;DataBase=»+БазаДанных+»;UID=»+Логин+»;PWD=»+Пароль;

//Убеждаемся, что строка соединения верна, должно показаться что то вроде

//DRIVER=MySQL ODBC 5.1 Driver;

//SERVER=localhost;

//DataBase=base;UID=root;

//PWD=123456

//localhost — сервер БД MySQL, base — имя БД MySQL, root — имя пользователя, 123456 — пароль

Сообщить(СтрокаСоединения);

Соединение.ConnectionString = (СтрокаСоединения);

//Далее открываем соединение

Попытка

Соединение.Open();

Сообщить(«MySQL база подключена!!!»);

Исключение

Сообщить(«Не могу подключиться к базе!!!»);

КонецПопытки;

КонецПроцедуры

А далее просто выполняем любые запросы в в майэкскуэле

Например:

//выбираем title из таблицы price

НаборЗаписей=Соединение.Execute(«SELECT title FROM price»);

//записываем данные в MySQL

Пока НаборЗаписей.Eof()=0 Цикл

Соединение.Execute(«UPDATE price SET cena =Цена);

НаборЗаписей.MoveNext();

КонецЦикла;