Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0
Есть задача сделать вывод данных из 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";
Попытка Соединение.Open(); Сообщить("MySQL база подключена!!!"); Исключение Сообщить("Не могу подключиться к базе!!!"); Сообщить(описаниеошибки()); КонецПопытки;
Кто сталкивался с такой задачей, подскажите куда копать, пожалуйста. Может есть более удачные методы, чем соединение по ODBC, потому что где-то читал, что данные можно будет только считывать, а не записывать в базу, но до этого момента я пока что так и не добрался, чтоб проверить.
вот если по этому мануалу смотреть, то я застопорился на пункте 7, ибо не "ок". Вот такую ошибку выдает:
Цитата
Ошибка ODBC. SQLSTATE: IM002 Номер ошибки: 0 Описание: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
такая же ошибка была при локальном соединении когда я не до конца сконфигурировал odbc.ini на сервере с Debian.
Вот я и думаю, либо надо дополнительные пляски с бубном над драйвером ODBC в Debian совершать, либо в самой 1С чего-то не хватает для работы с этим драйвером.
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(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";
Попытка Соединение.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();
Сообщение отредактировал Vofka - 05.09.12, 16:42
Причина редактирования: Для выделения кода есть специальные теги.
kirosin Попробуйте через User & Password (вместо UID & PWD) Посмотрите еще [необходимо зарегистрироваться для просмотра ссылки] - может помогут примеры строк соединения?
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!