Версия для печати темы (https://pro1c.org.ua/index.php?s=0b5553a923ba31e68bcb7a8a8ba2c804&showtopic=55077)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ На сервере не работает ADODB.Connection

Автор: vbi 07.11.19, 9:47

Платформа 1С:Предприятие 8.3 (8.3.13.1690). Клиент х86, сервер х64 (платформы одинаковые). Сервер на MSSQL2012
Конфигурация сильно переписанная старая УТП, такая старая что номер версии затерт.

Работаем с DBF файлами, методом запросов к ним с использованием "ADODB.Connection".

Есть фрагмент кода, который успешно отрабатывает на клиенте (если запустить вручную):

    DBConn = Новый COMОбъект("ADODB.Connection");
    ПутьДБФ = Константы.ПутьКДБФ.Получить();
    DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ПутьДБФ + ";" +"Extended Properties=""DBASE IV;"";");  
    Persons = DBConn.Execute("Select * from [BASA1#DBF]");


Но если даный код выполняется на стороне сервера (в регламентном задании) всегда вылетает на строчке:

    DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ПутьДБФ + ";" +"Extended Properties=""DBASE IV;"";");


с ошибкой:

Цитата
{ОбщийМодуль.РаботаСДБФ.Модуль(2360)}: Помилка при виклику методу контексту (Open)
через:
Відбулася виняткова ситуація (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.


При этом установлен Microsoft Access Database Engine 2010 Redistributable x64.

Не пойму почему на клиенте работает а на сервере нет. Как решить проблему подскажите пожалуйста?

Автор: sava1 07.11.19, 9:51

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

Автор: fly 07.11.19, 9:52

vbi @ Сегодня, 10:47 * ,

несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-разрядной ОС
Microsoft выпустила 64-разрядный совместимый 2010 System System Driver, который можно использовать в качестве замены традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как на 32-битных, так и на 64-битных серверах.

https://pro1c.org.ua/redirect.php?https://www.microsoft.com/en-us/download/details.aspx?id=13255

Автор: vbi 07.11.19, 10:06

sava1 @ Сегодня, 9:51 * ,
Запускал под юзером Robot с галкой полные права:


Или не то?

fly @ Сегодня, 9:52 * ,
Распространяемый Microsoft Access Database Engine 2010 - установлен 64 разрядный.

Возможно он не используется, код вывода должен быть другой? Не

"Provider=Microsoft.Jet.OLEDB.4.0;"
а какой?

Автор: andr_andrey 07.11.19, 10:30

Цитата(vbi @ 07.11.19, 10:06) *
Запускал под юзером Robot с галкой полные права:

Насколько я понял, шла речь о пользователе, под которым запускается процесс 1С в Windows.

Автор: fly 07.11.19, 10:49

Цитата(vbi @ 07.11.19, 11:06) *
а какой?

Provider=Microsoft.ACE.OLEDB.12.0

попробуйте этот

fly @ Сегодня, 11:35 * ,
Microsoft Access Database Engine 2010 Redistributable

To use this download:
If you are the user of an application, consult your application documentation for details on how to use the appropriate driver.
If you are an application developer using OLEDB, set the Provider argument of the ConnectionString property to “Microsoft.ACE.OLEDB.12.0”

Автор: vbi 07.11.19, 11:17

Цитата(fly @ 07.11.19, 10:49) *
Provider=Microsoft.ACE.OLEDB.12.0


fly @ Сегодня, 10:35 * ,
icon_beer17.gif УРА! Ошибку победил!!! Большое спасибо, друзья! Что бы я без Вас делал! Всегда выручаете!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua