• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

1С 8.x Linux + Mysql

  • Автор темы Kromf73
  • Дата начала
K

Kromf73

Подскажите каким образом можно подключиться к MySql из 1С(8.1\8.2) на ОС Linux.

В случае 1С на Windows используем Com:
MyCon = Новый COMОбъект ("ADODB.Connection"); и тд.

А вот каким способом в случае, когда 1С стоит на ОС *nix?
 
V

vitfil

Используйте драйвер, который позволяет подключаться к этой базе и будет вам счастье.
 
V

vitfil

судя по всему, вот этот:
Новый COMОбъект ("ADODB.Connection");
Только надо правильно прописать строку соединения.
 
K

Kromf73

судя по всему, вот этот:
Новый COMОбъект ("ADODB.Connection");
Только надо правильно прописать строку соединения.


Эта конструкция работает если 1С установлена на Windows. И тут проблем не возникает.
Вот только на сервере 1С, установленном на *nix нельзя использовать COMОбъект'ы.
Вопрос как раз и заключается в том, какой аналог данной конструкции можно использовать для доступа к БД MySql из сервера 1C 8.1\8.2 работающего на ОС *nix, а не Windows.
 
V

vitfil

брррррррр. ничего не понял из вашего письма.
клиентская часть установлена на винде?
ставьте на клиенте драйвер для доступа к MySQL, прописываете строку соединения к вашей базе. и вперед, используя ADO и все его возможности.
 
K

Kromf73

брррррррр. ничего не понял из вашего письма.
клиентская часть установлена на винде?
ставьте на клиенте драйвер для доступа к MySQL, прописываете строку соединения к вашей базе. и вперед, используя ADO и все его возможности.


Возможно не совсем подробно рассписал проблему. Начну заново:
Есть сервер 1С8.2 установлен на линукс. Под нее есть конфигурация, к которой обращаются клиенты по web. По запросу клиента(используещего web соединение) на сервере долно выполниться обращение к БД MySQL (на тойже машине где и сервер 1С) выполнить запрос и выдать результат клиенту.

Вслучае когда сервер стоит на windows проблем не возникает тк можно использовать COM объекты. Но в линуксе поддержки их нет, и посему возникает вопрос как из 1С , работающей под управлением ОС линукс обратиться к БД MySql.
Надеюсь более понятно рассписал.
 
V

vitfil

Воооооооооот. Теперь понятней. Клиенты фактически тоже под линуксом.
А теперь вопрос: для чего вам напрямую обращаться к БД? Штатных средств 1С не хватает?
 
K

Kromf73

Воооооооооот. Теперь понятней. Клиенты фактически тоже под линуксом.
А теперь вопрос: для чего вам напрямую обращаться к БД? Штатных средств 1С не хватает?



о каких штатных средствах идет речь?
Напрямую так как MySql база никак не связана с 1С. а данные мне нужно выбрать оттуда. Могу еще поднять там ODBC (unixODBC) но собственно как к нему обратиться из 1С тоже не представляю.
 
V

vitfil

Интересная задача. Надо подумать...
 
G

Guest

1) Нужно эмулировать Windows-окружение.
(это не типичный пример, просто на мысль наводит)
Т.е. если нужно использовать COM-объекты, то ставим программку wine... А потом долго бьёмся, чтобы она видела ADO, которое будет считаться установленным под Linux, а не под Windows.
2) Спросить 1С.
Я так понимаю, что работа не "наколеночная". Значит есть доступ к партнёрскому форуму 1С. Вот там и задать вопрос "как из 1С получить доступ к ADO-сервису". Должны ответить: сами породили - сами пусть и отчитываются :p
3) Эмулировать "сервер без состояния".
Толстый клиент 1C через сервер приложения (типа сервер без состояния) имеет доступ к MySQL. Он же как-то доступ уже имеет :D Правда делает это через API, которым мы воспользоваться не можем (не знаем).
Тогда пишем на скриптовом языке программку, которая будет запускаться из 1С, читать файл команд/данных, записанный через 1С. Затем скрипт делает запрос (через ADO) и пишет это в файл, который в свою очередь читает 1С (тут можно ещё другой файл-флаг использовать для синхронизации). Соответственно, если нужно один раз за сеанс что-то получить из сторонней базы MySQL, то идея будет работать - проблема только с поисками программиста, который напишет скрипт. Если же нужна активная работа... то тогда нужно удивиться, зачем такие сложности в архитектуре :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!