Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 1C -> MySQL
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
kirosin
Есть задача сделать вывод данных из 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
А если из имени драйвера убрать фигурные скобки?
logist
необходимо зарегистрироваться для просмотра ссылки
kirosin
Цитата(Vofka @ 17.08.12, 10:27) необходимо зарегистрироваться для просмотра ссылки
А если из имени драйвера убрать фигурные скобки?

пробовал, даже переименовывать в DSN пробовал... по крайней мере в PHP я с фигурными скобками указывал и работало.


Цитата(logist @ 17.08.12, 10:32) необходимо зарегистрироваться для просмотра ссылки
необходимо зарегистрироваться для просмотра ссылки

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

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

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


 i 

Не надо выделять "кодом" текст ошибок.
 
logist
Цитата(kirosin @ 17.08.12, 11:13) необходимо зарегистрироваться для просмотра ссылки
в самой 1С чего-то не хватает для работы с этим драйвером.

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


понял, спасибо, буду ковырять настройки драйвера.
Jastyou
Цитата(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
ИмяДрайвера ="{MySQL ODBC 5.1 Driver}";
запишиТЕ так
ИмяДрайвера ="MySQL ODBC 5.1 Driver";

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


 ! 

Товарищ! Пункт правил №1 и все, что ниже
 
kivals
kirosin
Попробуйте через User & Password (вместо UID & PWD)
Посмотрите еще необходимо зарегистрироваться для просмотра ссылки - может помогут примеры строк соединения?
Alex2811
Дак какое решение то, я тоже столкнулся на windows 7 все работает, а на Windows2008 нет, такое ощущение что 1С не видет драйвера ODBC
Acid
1c вроде использует только 32-разрядный драйвер ОДБС... В этом и проблема.
NewLifeMan
Acid @ 17.02.14, 14:33 необходимо зарегистрироваться для просмотра ссылки,

Зарегистрировался только ради того, что сказать Спасибо!
Мучался почти час.. из-за того, что установил 64х версию драйвера))
Еще раз спасибо!
Vofka
NewLifeMan @ Сегодня, 17:07 необходимо зарегистрироваться для просмотра ссылки,
В довесок к словам благодарности можно ещё и палец клацнуть wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.