Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=8603)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ 1C -> MySQL

Автор: kirosin 17.08.12, 9:17

Есть задача сделать вывод данных из 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 база подключена!!!");
Исключение
    Сообщить("Не могу подключиться к базе!!!");
    Сообщить(описаниеошибки());
КонецПопытки;


Кто сталкивался с такой задачей, подскажите куда копать, пожалуйста. Может есть более удачные методы, чем соединение по ODBC, потому что где-то читал, что данные можно будет только считывать, а не записывать в базу, но до этого момента я пока что так и не добрался, чтоб проверить.

Автор: Vofka 17.08.12, 9:27

А если из имени драйвера убрать фигурные скобки?

Автор: logist 17.08.12, 9:32

http://pro1c.org.ua/index.php?showtopic=4813

Автор: kirosin 17.08.12, 10:13

Цитата(Vofka @ 17.08.12, 10:27) http://pro1c.org.ua/index.php?act=findpost&pid=54801
http://pro1c.org.ua/index.php?showtopic=4813

вот если по этому мануалу смотреть, то я застопорился на пункте 7, ибо не "ок". Вот такую ошибку выдает:
Цитата
Ошибка ODBC. SQLSTATE: IM002
Номер ошибки: 0
Описание: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

такая же ошибка была при локальном соединении когда я не до конца сконфигурировал odbc.ini на сервере с Debian.

Вот я и думаю, либо надо дополнительные пляски с бубном над драйвером ODBC в Debian совершать, либо в самой 1С чего-то не хватает для работы с этим драйвером.


 i 

Не надо выделять "кодом" текст ошибок.
 

Автор: logist 17.08.12, 10:21

Цитата(kirosin @ 17.08.12, 11:13) *
в самой 1С чего-то не хватает для работы с этим драйвером.

в 1С больше чем выполнение соединения ничего не надо (разумеется если оно правильно описано).
Чаще пляски возникают именно с драйвером.

Автор: kirosin 17.08.12, 13:11

Цитата(logist @ 17.08.12, 11:21) *
в 1С больше чем выполнение соединения ничего не надо (разумеется если оно правильно описано).
Чаще пляски возникают именно с драйвером.


понял, спасибо, буду ковырять настройки драйвера.

Автор: Jastyou 05.09.12, 16:37

Цитата(kirosin @ 17.08.12, 10:17) *
Есть задача сделать вывод данных из 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 база подключена!!!");
Исключение
    Сообщить("Не могу подключиться к базе!!!");
    Сообщить(описаниеошибки());
КонецПопытки;


Кто сталкивался с такой задачей, подскажите куда копать, пожалуйста. Может есть более удачные методы, чем соединение по ODBC, потому что где-то читал, что данные можно будет только считывать, а не записывать в базу, но до этого момента я пока что так и не добрался, чтоб проверить.


Добрый вечер. Делал проще, соединение по кнопке из формы:

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();

Автор: khmaruk 05.09.12, 17:34

ИмяДрайвера ="{MySQL ODBC 5.1 Driver}";
запишиТЕ так
ИмяДрайвера ="MySQL ODBC 5.1 Driver";

Через ОДБС можно читать и писать.


 ! 

Товарищ! Пункт правил №1 и все, что ниже
 

Автор: kivals 28.09.12, 13:04

kirosin
Попробуйте через User & Password (вместо UID & PWD)
Посмотрите еще http://pro1c.org.ua/redirect.php?http://www.connectionstrings.com/mysql#mysql-connector-odbc-5-1 - может помогут примеры строк соединения?

Автор: Alex2811 17.02.14, 11:33

Дак какое решение то, я тоже столкнулся на windows 7 все работает, а на Windows2008 нет, такое ощущение что 1С не видет драйвера ODBC

Автор: Acid 17.02.14, 14:33

1c вроде использует только 32-разрядный драйвер ОДБС... В этом и проблема.

Автор: NewLifeMan 19.01.16, 17:07

Acid @ 17.02.14, 14:33 *,

Зарегистрировался только ради того, что сказать Спасибо!
Мучался почти час.. из-за того, что установил 64х версию драйвера))
Еще раз спасибо!

Автор: Vofka 19.01.16, 19:51

NewLifeMan @ Сегодня, 17:07 *,
В довесок к словам благодарности можно ещё и палец клацнуть wink.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua