Подключение к 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();
КонецЦикла;