|
Подключение Com к MySQL в фоновом задании на Linux | ☑ | ||
---|---|---|---|---|
0
Vigor06
04.09.15
✎
14:35
|
Доброго дня!
Наша 1с-ка (Ут 10.3),серверный вариант,сервер 1с развернут на линуксе. Есть необходимость подключаться регламентным заданием к базе MySQL и оттуда периодически забирать данные. В тестовой обработке все нормально( ну еще бы,писалась и тестилась она на компутере под виндой). Но при выполнении данного кода в регл.задании выпадает ошибка "ошибка при вызове конструктора Com-объект". Как можно обойти это дело в наших условиях? Спасибо Процедура ЧтениеТасков() Экспорт Соединение = Новый COMОбъект("ADODB.Connection"); ConnectionString = "DRIVER=MySQL ODBC 3.51 Driver;DATABASE=base;PWD=3r8y6c7v;SERVER=10.0.96.199;UID=1c;DataSource=sss;STMT=SET CHARACTER SET cp1251"; // это для MS SQL строка Попытка Соединение.Open(ConnectionString); Сообщить("Соединение осуществлено в "+ТекущаяДата()); Исключение Возврат; КонецПопытки; ТекстЗапроса = "SELECT id,NAME,COMMENT,bugstatus_id, pin |FROM bugs |WHERE (bugstatus_id <>4 ) AND (ID>236)"; НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); НаборЗаписей.ActiveConnection = Соединение; НаборЗаписей.Open(ТекстЗапроса); Пока не НаборЗаписей.Eof() Цикл Задача = Задачи.ТехническиеЗадания.НайтиПоРеквизиту("IDCRM",НаборЗаписей.Fields("id").Value); Если НЕ ЗначениеЗаполнено(Задача) Тогда Описание = НаборЗаписей.Fields("Comment").Value; мОписание =Доработки.РазбитьСтроку(Описание,"&"); нЗадача = Задачи.ТехническиеЗадания.СоздатьЗадачу(); нЗадача.IDCRM = НаборЗаписей.Fields("id").Value; нЗадача.Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ПинЗадач",НаборЗаписей.Fields("pin").Value); нЗадача.Важность = Перечисления.Важность.Средняя; нЗадача.Дата = ТекущаяДата(); Если мОписание.количество()>1 Тогда нЗадача.Наименование =СтрЗаменить(мОписание[0],"$",""); нЗадача.Описание = мОписание[1]; Иначе нЗадача.Наименование =СтрЗаменить(мОписание[0],"$",""); нЗадача.Описание = мОписание[0]; КонецЕсли; нЗадача.Записать(); КонецЕсли; НаборЗаписей.MoveNext(); КонецЦикла; НаборЗаписей.Close(); Соединение.Close(); КонецПроцедуры |
|||
1
Garikk
04.09.15
✎
14:43
|
в линуксе нет COM
|
|||
2
ДенисЧ
04.09.15
✎
14:44
|
адо и пингвинукс?
Ви таки с дуба навернулись головой вниз или просто прикалываетесь? |
|||
3
Vigor06
04.09.15
✎
14:45
|
так как быть то в данном случае,друзья?
|
|||
4
UFO
04.09.15
✎
14:49
|
Есть вероятность использования скрипта на перле.. А вот результат.. как то надо в 1с передать.. можно попробовать через текстовик, я думаю, или бинарный файл
|
|||
5
UFO
04.09.15
✎
14:49
|
Но я не в курсе как работает сервер 1С в линуксе
|
|||
6
UFO
04.09.15
✎
14:53
|
Если бы сервак 1С мог выполнить команду и забрать результат выполнения команды, то еще что то...
|
|||
7
Garikk
04.09.15
✎
14:54
|
незнаю не пользовался, но есть такая штука как "Внешний источник данных" и как я смотрю оно умеет mysql и написано что в линухе работает
|
|||
8
don_Rumata
04.09.15
✎
15:02
|
(6) сервак может так
|
|||
9
Живой Ископаемый
04.09.15
✎
15:04
|
2(7) потом будет как в
MySQL 5.2|5.3 ODBC driver, поля в базе без "_",ошибка: 1064 . Как обойти? |
|||
10
don_Rumata
04.09.15
✎
15:05
|
(4) А так да, какой-нить скрипт перловый или пхпэшный тащит что надо в файл, потом эска читает файл
|
|||
11
Vigor06
04.09.15
✎
15:29
|
спасибо))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |