MySQL ODBC Driver 5.2 для "Внешнего источника данных" 1С8.3

06.03.13

Разработка - Инструментарий разработчика

Решает проблему при использовании в запросах имен с нижним подчеркиванием при подключении Внешнего источника данных в 1С 8.3

Скачать файлы

Наименование Файл Версия Размер
mysql-connector-odbc-noinstall-5.2.4-.zip
.zip 7,71Mb
124
.zip 7,71Mb 124 Скачать

Описание

При выполнении запроса к MySQL в 1С 8.3 столкнулся с проблемой преобразования запросов такого вида.

SELECT p.id_prod FROM product

1С преобразует этот запрос к виду

SELECT p."id_prod" FROM product

Это вызывает ошибку синтаксиса и запрос не выполняется.
Я немного модифицировал ODBC драйвер, который преобразует запрос полученный от 1С к виду

SELECT p.`id_prod` FROM product

Это позволяет полноценно использовать Внешние источники для работы с MySQL.
Для подключения использовать строку вида

Установка

Распаковать архив и запустиь install.bat.
Проверить что драйвер успешно установился можно командой

bin\myodbc-installer.exe -d -l

он отобразит нечто такое

C:\Program Files (x86)\MySQL_Connector_ODBC\bin>myodbc-installer -d -l
SQL Server
Microsoft ODBC for Oracle
Microsoft Access Driver (*.mdb)
Microsoft Access-Treiber (*.mdb)
Driver do Microsoft Access (*.mdb)
Microsoft dBase Driver (*.dbf)
Microsoft dBase-Treiber (*.dbf)
Driver do Microsoft dBase (*.dbf)
Microsoft Excel Driver (*.xls)
Microsoft Excel-Treiber (*.xls)
Driver do Microsoft Excel(*.xls)
Microsoft Paradox Driver (*.db )
Microsoft Paradox-Treiber (*.db )
Driver do Microsoft Paradox (*.db )
Microsoft Text Driver (*.txt; *.csv)
Microsoft Text-Treiber (*.txt; *.csv)
Driver da Microsoft para arquivos texto (*.txt; *.csv)
Microsoft Visual FoxPro Driver
Microsoft FoxPro VFP Driver (*.dbf)
Microsoft dBase VFP Driver (*.dbf)
Microsoft Visual FoxPro-Treiber
Driver para o Microsoft Visual FoxPro
SQL Server Native Client 11.0
MySQL ODBC 5.2(w) Driver

Использование

При подключении к источнику необходимо использовать строку следующего вида.

DRIVER={MySQL ODBC 5.2(w) Driver};SERVER=127.0.0.1;DATABASE=testbase;UID=admin;PWD=admin;"

Примечание

Тестировалось на Win7 x64 и Win7 x64. Драйвер собран под платформу x32 поэтому должен нормально работать и под другими версиями ОС.

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122159    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7293    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3537    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177749    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99347    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18113    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28110    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23602    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. yuraos 991 06.03.13 14:24 Сейчас в теме
ЭХ!
ЛЮБЛЮ Я ЗАПИСЫВАТЬ ПЕРВЫЕ КОММЕНТАРИИ К СТАТЬЯМ!!!

А ПОЧЕМУ ???
----------------------------------------------------
А ПОТОМУ, ЧТО:
1) Можно смайлов в комментарий навставлять.
2) В сообщения рассылаемых сайтом по почте говорится, что Я АВТОР ПУБЛИКАЦИИ.

----------------------------------------------------
а вот изменять первый пост со смайлами не советую - смайлики пропадють.
----------------------------------------------------
:D :D :D :D :D :D :D
8-) 8-) 8-) 8-) 8-) 8-) 8-)
artbear; bulpi; +2 1 Ответить
3. Magister 134 06.03.13 15:04 Сейчас в теме
(1) Что, правда? :)
(2) 1С "официально" поддерживает MsSQL, Postgres, DB2, Oracle. Всё остальное - "прочие", и никто не обещает что будет работать.
Вон с Firebird приколы жесткие есть - она не понимает SELECT TOP 10, ей надо SELECT FIRST 10 ну или лучше в конце диапазон с-по указывать. Из-за чего динамический список не работает - пришлось патчить драйвер ODBC.
41. RSConsulting 166 09.05.18 12:28 Сейчас в теме
(3) Подскажите, как пропатчить, не могу найти инфу. Спасибо
42. Magister 134 09.05.18 23:32 Сейчас в теме
2. yuraos 991 06.03.13 14:41 Сейчас в теме
Так это косяк функционала внешних источников 1С
или ODBC драйвера?

А если попробывать работать напрямую через ADO,
а в СКД данные запихивать через набор данных объект в виде таблицы значений ???

Есть подсистемка для работы из 1С с COM-объектами и в частности с ADO.

Было б интересно узнать как она работает с MySQL.
Запросы к нему можно выполнять прямо из консоли в составе подсистемы.
5. quick 583 06.03.13 15:14 Сейчас в теме
(2)
Можно еще десятью способами подключаться. Тут смысл был в создании внешнего источника как обьекта метаданных.
Это не косяк ODBC драйвера, это косяк транслирования запроса 1С-кой. Просто mysql не поддерживает синтаксис который она ему навязывает.
7. yuraos 991 06.03.13 16:57 Сейчас в теме
(5) quick,
так получается, что
автор работы идет по пути наименьшего для него сопротивления
и для исправления 1С-ных косяков
подламывает драйвер ODBC ???
8. yuraos 991 06.03.13 16:58 Сейчас в теме
(7)
остальные приложения хоть будут после этого нормально работать через это драйвер???
11. quick 583 06.03.13 17:42 Сейчас в теме
(8) остальные приложения не делают таких ужасов в запросах
miroha; yuraos; +2 Ответить
12. quick 583 06.03.13 17:43 Сейчас в теме
(7) :)) посмешил.. но получается что все так и есть. То ли еще будет когда за линукс плотно возьмемся...
13. yuraos 991 06.03.13 18:03 Сейчас в теме
(12)

- Урра! Мы научились вырезать гланды!!!
- Фуууу!
- Через **** !!!
- УУУУУ!

Народный мудрость

Селяви, то есть особенности национальной жизни.
:)
4. Trotter_NN 06.03.13 15:10 Сейчас в теме
9. yuraos 991 06.03.13 17:01 Сейчас в теме
(4) Trotter_NN,
в смысле - как заставить 1С-7.7 работать нормально под Win > XP ???
10. yuraos 991 06.03.13 17:07 Сейчас в теме
(9)
если проблемма в этом ...
... набираем в строке поиска по сайту слово "секретный"
и первое что в списке предлагаемых ссылок:

Секретный релиз платформы v77.27.1

решение с минимальными извратами.
6. bforce 481 06.03.13 16:13 Сейчас в теме
Да, проблема актуальная. В свое время побороли ее через создание вьюх на стороне MySQL.
С их помощью удалось не только вычистить все подчеркивания из полей таблицы, но и привести имена колонок в "человечий" русский вид (назвали колонки русскими буквами), что MySQL благополучно проглотил...

За старание, конечно, отдельный плюс.
14. yuraos 991 06.03.13 18:20 Сейчас в теме
quick,
а слабо написать ODBC драйвер для файловой 1с-ной базы ???
Герман
тебя бы расцеловал бы...
...а может даже бы озолотил.
15. hogik 443 07.03.13 01:29 Сейчас в теме
(14)
"а слабо написать ODBC драйвер для файловой 1с-ной базы ??? "(с)
Юрий (yuraos).
Логичнее её заменить на другую сУБД у которой уже есть ODBC драйвер.
И много чего ещё - есть... ;-)
P.S.
А написать ODBC драйвер для файловой версии БД 1С-а сначала потребует написать SQL-ную СУБД для не полностью изученного формата хранения и способов обработки информации. И уже после этого можно будет приступить к написанию ODBC драйвера... ;-)
16. yuraos 991 07.03.13 18:54 Сейчас в теме
(15) hogik,
отпиши это БОРЕ НУРРАЛИЕВУ.
он ТЕБЯ ТО ТОЧНО послушается!!!
:)
17. hogik 443 07.03.13 20:46 Сейчас в теме
(16)
Юрий (yuraos).
Думаю, будет достаточно, если Вы меня послушаетесь.
И поймете всю глупость Вашей идеи/вопроса про написание ODBC драйвера для файловой версии 1С-а.
P.S.
В (15) сообщении была попытка объяснить Вам это вежливо. Извините...
18. yuraos 991 08.03.13 07:23 Сейчас в теме
(17) Владимир(hogik), как говорится, извинения принимаются.
:)
правда эта глупость довольно распространенная.
Например andrewks эту идею глупостью не считает,
дословно цитирую:
"задачка нетривиальная. основная проблема - нехватка времени. поэтому на чистом альтруизме поднять это вряд ли получится".
Сам он правда пошел другим путем, как раз что-то вроде альтернативной СУБД для прямого доступа к файловой базе сделал.
---
ЗЫ:
да и вы, как я посмотрю, в молодости тоже баловались прямыми запросами в 1С-7.7
;)
19. hogik 443 08.03.13 14:56 Сейчас в теме
(18)
"... в молодости тоже баловались прямыми запросами в 1С-7.7"(с)
Юрий (yuraos).
Я никогда ими не "баловался".
Данная поделка сделана, исключительно, по просьбам трудящихся. ;-)
Моё мнение по "проблеме" файловой версии 1С-а выражено в:
http://infostart.ru/public/15211/
http://infostart.ru/public/14664/
Чего и надо, по моему мнению, делать для файловой версии 1С 8.х.
Что касается мнения о "нетривиальности задачки", то это слабо сказано. :-)
Нормально она не реализуема без "вскрытия" родного 1С интерфейса к движку БД.
А если еще учесть, что этот интерфейс не является SQL-подобным, то и идея писать ODBC драйвер становится совсем "глупостью".
20. yuraos 991 11.03.13 14:43 Сейчас в теме
(19) hogik,
Эх эти трудящиеся-трудящиеся !
Они такие нудные !!
Все время требуют сделать для них какую-нибудь "глупость" !!!
;)
ZLENKO; quick; +2 1 Ответить
23. hogik 443 11.03.13 17:24 Сейчас в теме
(20)
Юрий (yuraos).
Чувствую Вас сильно задело слово "глупость".
Попробуйте читать в моих сообщения не только это слово. :-)
И расскажите нам КТО и ГДЕ будет выполнять SQL запрос в ODBC для файловой версии 1С-а? И как можно обойтись без написания "альтернативной СУБД для прямого доступа к файловой базе"(с) которую делает andrewks при, допустим, написания этого самого ODBC драйвера?
21. quick 583 11.03.13 15:16 Сейчас в теме
(19) Никак не вразумею.. нафига что то делать для файловой 1С8?
Я всегда полагал что когда начинаются проблемы с файловой версией, то нужно переходить на SQL вариант.
22. hogik 443 11.03.13 15:40 Сейчас в теме
(21)
"нафига что то делать для файловой 1С8"(с)
Евгений (quick).
Согласен с Вами. О чем и пишу выше по теме.
Надо делать не "для"(с), а вместо файловой.
Т.к. задумка концепции 1С-продукта плохо укладывается в РМ с "запросным" ЯМД.
И 1С-разработчикам пришлось делать переходник в лице т.н. сервера приложений.
При использовании более подходящей сУБД можно обойтись без "переходника".
И устранить основные недостатки файловых СУБД. И получить более дешёвую и простую в эксплуатации систему. Именно на замену файловой версии в случае "когда начинаются проблемы"(с). Т.е. промежуточный вариант между родной файловой и клиент-серверной версией. Т.к. большому количеству пользователей 1С-продукта вполне хватило бы варианта надежной работы системы на 10-50 пользователей.
24. V_K 27.03.13 16:19 Сейчас в теме
На XP не хочет устанавливаться.
25. BATCOH 18.06.13 17:03 Сейчас в теме
Здравствуйте!
Винсервер 2008R2 x64, сервер 1С 8.3.3.641, тоже x64.
Драйвер успешно устанавливается, виден через myodbc-installer -d -l и через 32-битный odbcad32.exe.
А вот 1С его в упор не замечает. Как и вообще все 32-битные ODBC-драйверы (проверял на обычном MySQL ODBC драйвере).
Есть ли возможность собрать версию под x64?
26. PrinzOfMunchen 83 29.06.13 20:29 Сейчас в теме
Даа..))) А я просто писал обработку, которая создает sql-скрипт, создающий вьюшки без нижнего подчеркивания, в "верблюжей" нотации. А как можно подключиться в Linux? Через какие драйвера? и возможно ли вообще?
27. ReSY 116 05.03.14 16:24 Сейчас в теме
Спасибо за разработку
Присоединяюсь к Ватсону, есть ли возможность реализации драйвера под версию x64, или настройки текущего под x64? Либо описание каким образом выполнялось изменение драйвера ODBC.
Текущая версия платформы 8.3.4.408, версия Connector ODBC MySQL 5.2.6.
28. KillHunter 7 05.03.14 16:35 Сейчас в теме
Интересная разработка, а товарищ (27) ReSY, есть ли возможность реализации драйвера под версию x64, или настройки текущего под x64? Либо описание каким образом выполнялось изменение драйвера ODBC. тоже интересует этот вопрос ?
29. script 128 18.06.14 18:41 Сейчас в теме
Пожалуйста соберите под Win7 x64. Очень нужно.

При выполнении bin\myodbc-installer.exe -d -l
есть куча драйверов а MySQL ODBC 5.2(w) Driver - нету. Помогите спасите.
Пожет я что то не правильно делаю? У кого нибудь работает ?
30. script 128 18.06.14 19:13 Сейчас в теме
Что самое интересное дя этих манипуляций я удалил оригинальные драйвера на 32 и 64. Когда я понял что этот не устанавливается - поставил обратно оригинальный на 64 (mysql-connector-odbc-5.3.2-winx64) но 1С его не увидела, а 32 (mysql-connector-odbc-5.3.2-win32) 1С съела без проблем. Наверное от 1С тоже зависит 32 разрадная или 64 ??? Кто то знает правильный ответ?

Если у меня 1С приняля оригинальный 32-разрядный драйвер, тогда и этот должен былу становится и подхватиться. Значит проблема не в том что у меня винда 64-ая. Тогда в чем?
31. script 128 18.06.14 19:20 Сейчас в теме
Вобщем сдела копию таблицы на MySQL. Переименовал колонки с нижним подчеркиванием. Избавился от подчеркивания. Пересоздал источник в 1С - При открытии из формы - ошибка таже.
Но тем не менее такой код работает:
Объект = ВнешниеИсточникиДанных.site.Таблицы.tovari.СоздатьОбъект();
Объект.id = "99";
Объект.skuid = "88";
Объект.hash = Null;
Объект.ip = Null;
Объект.count = 3;
Объект.price = 40;
Объект.Записать();
32. script 128 18.06.14 20:28 Сейчас в теме
Если с чтением еще можно решить что то создавая Представления для таблиц на MySQL. То с записью во внешние источники беда. Через представления запись не работает, а на прямую мешает ошибка нижнего подчеркивания. Обложили.
33. YaroslavS 15.08.14 17:35 Сейчас в теме
У меня тоже под windows 2007 server x64 Драйвер этот 1С не видит. Хотя устанавливается вроде корректно и в списке драйверов отображается.
34. baza1978 10.10.14 11:55 Сейчас в теме
на x64 надо поставить полноценный MSI потом подменить дрова на дрова автора из папочки lib. Только вот проблемы это не решает. Как не работали запросы к полям с подчеркиванием, так и не работают. Зря только копеечку потратил.
35. cocon2003 23.01.15 12:49 Сейчас в теме
Убило примечание: тестировалось на 2-х совершенно одинаковых системах Win7 x64? Зачем? А собрано под x32? Жесть :-)
36. пользователь 11.09.15 14:45
Сообщение было скрыто модератором.
...
37. quick 583 05.05.16 14:15 Сейчас в теме
В общем давно я на инфостарт не заглядывал. За это время много чего изменилось в моих проектах. Например я отказался от прямого доступа к внешним базам, т.к. ОС меняются, версии MySQL обновляются, сервера постоянно переезжают... и все превращается в непрерывный кошмар. Да и тянуть данные приходится не из одной базы а сразу с четырех расположенных на разных серверах, иногда в нескольких потоках. Поэтому последнее время перешел на написание веб сервисов на python + spyne.io и размещении их возле нужной внешней системы (mysql, postgresql, redis), а в 1С использую встроенные механизмы работы soap. Несмотря на первоначальную "сложность", в поддержке эта связка оказалась удобней, т.к. к ней же вяжется веб интерфейс и 1С 7.7.
Да и к 1С 7.7 уже написал парсер sql запросов с разбором md файла. https://github.com/WorldException/v7py если кому интересно
Если время будет как нибудь опубликую готовый набор для быстрого старта...
38. vitek1 31.05.16 10:22 Сейчас в теме
столкнулись с аналогичной проблемой - кавычки в запросе и специфичный синтаксис SQL (select first) для СУБД Informix. Можете рассказать про технологию модификации ODBC драйвера? Как можно повторить это на своем драйвере?
39. quick 583 31.05.16 14:02 Сейчас в теме
(38) vitek1, качаете исходники odbc драйвера, немного правите раздел где обрабатывается приходящий текст запроса и компилируете.
Но как уже говорил, лучше сделать промежуточный веб сервис с готовой выборкой на каком нибудь нормальном языке, если конечно у вас не разработка на "отдал и забыл".
40. vitek1 01.06.16 10:21 Сейчас в теме
(39) насколько понимаю, поскольку informix коммерческий продукт, то исходников драйвера нет, в отличие от MySQL?
с веб сервисом - сама идея не очень подходит. На 1С придется реализовывать очень много бизнес-логики по работе с базой. Писать для этого отдельные веб-сервисы не хочется. Да и лишаться возможности работы с базой с помощью стандартных упр. форм с встроенными функциями поиска и отборов не хочется. В этом вся и идея есть.
43. X_GraY 25 04.10.22 13:39 Сейчас в теме
А ларчик просто открывался )
При указании типа СУБД "MySQL" в параметрах соединения решает эту проблему.
Не нашел в комментариях такой рекомендации.

ПараметрыСоединения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыСоединения.СтрокаСоединения = СтрокаСоединения;
ПараметрыСоединения.СУБД = "MySQL";
Оставьте свое сообщение