Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> 1C -> MySQL          
kirosin Подменю пользователя
сообщение 17.08.12, 9:17
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 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";

СтрокаСоединения = "DRIVER=" + ИмяДрайвера + ";SERVER=" + Наименование + ";DataBase="+БазаДанных+";UID="+Логин+";PWD="+Пароль + ";";
Сообщить(СтрокаСоединения);
Соединение.ConnectionString = (СтрокаСоединения);

Попытка
    Соединение.Open();
    Сообщить("MySQL база подключена!!!");
Исключение
    Сообщить("Не могу подключиться к базе!!!");
    Сообщить(описаниеошибки());
КонецПопытки;


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

Vofka Подменю пользователя
сообщение 17.08.12, 9:27
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4521 раз
Рейтинг: 3644.1

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

logist Подменю пользователя
сообщение 17.08.12, 9:32
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kirosin Подменю пользователя
сообщение 17.08.12, 10:13
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(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 - 17.08.12, 10:19

logist Подменю пользователя
сообщение 17.08.12, 10:21
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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

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


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: kirosin,

kirosin Подменю пользователя
сообщение 17.08.12, 13:11
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

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


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

Jastyou Подменю пользователя
сообщение 05.09.12, 16:37
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 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";

СтрокаСоединения = "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();


Сообщение отредактировал Vofka - 05.09.12, 16:42
Причина редактирования: Для выделения кода есть специальные теги.

khmaruk Подменю пользователя
сообщение 05.09.12, 17:34
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

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

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


 ! 

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


Сообщение отредактировал Vofka - 05.09.12, 18:32

kivals Подменю пользователя
сообщение 28.09.12, 13:04
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 105
Из: Киев
Спасибо сказали: 27 раз
Рейтинг: 0

kirosin
Попробуйте через User & Password (вместо UID & PWD)
Посмотрите еще [необходимо зарегистрироваться для просмотра ссылки] - может помогут примеры строк соединения?

Alex2811 Подменю пользователя
сообщение 17.02.14, 11:33
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

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

Acid Подменю пользователя
сообщение 17.02.14, 14:33
Сообщение #11

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

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


Signature

Документируйте Код! мать вашу...


NewLifeMan Подменю пользователя
сообщение 19.01.16, 17:07
Сообщение #12

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Из: Украина
Спасибо сказали: 1 раз
Рейтинг: 0

Acid @ 17.02.14, 14:33 *,

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

Спасибо сказали: Acid,

Vofka Подменю пользователя
сообщение 19.01.16, 19:51
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4521 раз
Рейтинг: 3644.1

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.05.24, 2:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!