Есть задача сделать вывод данных из 1С в MySQL.
1С стоит на сервере с Win Server 2008, MySQL на удаленном сервере под Debian.
Установил драйвера ODBC на оба сервера, открыл удаленный доступ к порту 3306 (mysql) на Debian.
Локально все это дело работает - посредством PHP соединение устанавливается, данные из таблиц доступны.
Когда создаю пользовательский и системный DSN во внешних источниках данных (стандартная утилита Windows), нажимаю Test - пишет что соединение успешно установлено, таблицы из MySQL, к которым я давал доступ под данным логином, видны.
Когда пытаюсь установить в 1С соединение, ругается что не указан драйвер, если пытаюсь добавить в "Конфигурация->Внешние источники данных" те же данные, что указывал в системном DSN, ругается на некорректные данные.
Сам я в 1С не разбираюсь, использовал обработку которую мне дали:
Соединение = Новый COMОбъект("ADODB.Connection");
ИмяДрайвера ="{MySQL ODBC 5.1 Driver}";
Наименование="server.com";
БазаДанных="base_1c";
Логин ="test";
Пароль ="test";
СтрокаСоединения = "DRIVER=" + ИмяДрайвера + ";SERVER=" + Наименование + ";DataBase="+БазаДанных+";UID="+Логин+";PWD="+Пароль + ";";
Сообщить(СтрокаСоединения);
Соединение.ConnectionString = (СтрокаСоединения);
Попытка
Соединение.Open();
Сообщить("MySQL база подключена!!!");
Исключение
Сообщить("Не могу подключиться к базе!!!");
Сообщить(описаниеошибки());
КонецПопытки;
А если из имени драйвера убрать фигурные скобки?
http://pro1c.org.ua/index.php?showtopic=4813
i | Не надо выделять "кодом" текст ошибок. |
Соединение = Новый COMОбъект("ADODB.Connection");
ИмяДрайвера ="{MySQL ODBC 5.1 Driver}";
Наименование="server.com";
БазаДанных="base_1c";
Логин ="test";
Пароль ="test";
СтрокаСоединения = "DRIVER=" + ИмяДрайвера + ";SERVER=" + Наименование + ";DataBase="+БазаДанных+";UID="+Логин+";PWD="+Пароль + ";";
Сообщить(СтрокаСоединения);
Соединение.ConnectionString = (СтрокаСоединения);
Попытка
Соединение.Open();
Сообщить("MySQL база подключена!!!");
Исключение
Сообщить("Не могу подключиться к базе!!!");
Сообщить(описаниеошибки());
КонецПопытки;
ConnectionString = "Provider=SQLOLEDB.1;Password=parol;Persist Security Info=True;User ID=user;Initial Catalog=base1c;Data Source=server";
Соединение = Новый COMОбъект("ADODB.Connection");
Соединение.ConnectionString = ConnectionString;
Соединение.CommandTimeout = 2700; //секунды
Попытка
Соединение.Open();
Сообщить("****** Connect ******");
Исключение
Предупреждение("****** Error connect ******"); Return
КонецПопытки;
// тут делаем, что нужно с открытой базой
Соединение.Close();
ИмяДрайвера ="{MySQL ODBC 5.1 Driver}";
запишиТЕ так
ИмяДрайвера ="MySQL ODBC 5.1 Driver";
Через ОДБС можно читать и писать.
! | Товарищ! Пункт правил №1 и все, что ниже |
kirosin
Попробуйте через User & Password (вместо UID & PWD)
Посмотрите еще http://pro1c.org.ua/redirect.php?http://www.connectionstrings.com/mysql#mysql-connector-odbc-5-1 - может помогут примеры строк соединения?
Дак какое решение то, я тоже столкнулся на windows 7 все работает, а на Windows2008 нет, такое ощущение что 1С не видет драйвера ODBC
1c вроде использует только 32-разрядный драйвер ОДБС... В этом и проблема.
Acid @ 17.02.14, 14:33 ,
Зарегистрировался только ради того, что сказать Спасибо!
Мучался почти час.. из-за того, что установил 64х версию драйвера))
Еще раз спасибо!
NewLifeMan @ Сегодня, 17:07 ,
В довесок к словам благодарности можно ещё и палец клацнуть
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua