Имя: Пароль:
1C
1С v8
"ADODB.Connection: Не удается найти указанный поставщик" - перешли на новый сервер
0 Lady исчезает
 
30.01.20
12:35
Добрый день!

Может, кто-нибудь сталкивался с подобной ситуацией:
Перешли с Server 2008 на 2016, оба 64-х разрядные. База SQL.
Есть регламентное задание - обмен данными с базой Access. На новом сервере регл.задание выдаёт ошибку:

{ОбщийМодуль.NNNNN.Модуль(68)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

К специалисту не отправляйте, пожалуйста: если бы я могла обратиться, обратилась бы, корону не ношу.
1 ДенисЧ
 
30.01.20
13:06
Правильно установить поставщика - не предлагать?
2 ДенисЧ
 
30.01.20
13:08
3 NorthWind
 
30.01.20
13:14
(0) поставщик Access под 64 бита - это OLEDB провайдер для файлов ACE. Его надо скачать с MS и установить, в составе винды не идет. Примерно так: https://www.microsoft.com/EN-US/DOWNLOAD/DETAILS.ASPX?ID=13255, https://www.microsoft.com/en-za/download/details.aspx?id=54920
4 NorthWind
 
30.01.20
13:15
уточните какой именно вам нужен, найдите на русском языке, чтоб сообщения об ошибках русские были, и скачайте
5 Lady исчезает
 
30.01.20
13:52
(2) По этой ссылке вроде другая ошибка - "поставщик не указан и не назначенный по умолчанию поставщик"
6 Lady исчезает
 
30.01.20
14:03
OLE DB у меня есть, все DLL-ки там есть. Но я так понимаю, только для ворда-экселя. Не с кем посоветоваться на месте.
7 Mihenius
 
30.01.20
15:51
(6)
Была аналогичная проблема

Вам нужно
AccessDatabaseEngine12_X64.exe
или скорее всего
AccessDatabaseEngine16_X64.exe
https://www.microsoft.com/en-us/download/details.aspx?id=54920

Проверить легко, нужно в самом SQL сделать импорт/экспорт через выбранный провайдер.
Если ругается, дальше ищем по ошибке. Инструкции в интернете есть.
8 Mihenius
 
30.01.20
16:06
(6) Проверь Объекты сервера - Связанные сервера - Поставщики

должно быть
microsoft.ace.oledb.16.0 или 12.0

Дальше в самом SQL делаешь экспорт или импорт
Выбираешь источник данных, в твоем случае Access

и проверяешь, нет ли ошибок
если есть, то могут быть проблемы с доступом учетки, от которой стартует sql (аналогичная проблема с сервером 1с)
если ошибок нет, дальше уже в 1с смотреть
9 Mihenius
 
30.01.20
16:09
10 Lady исчезает
 
30.01.20
16:46
(8) В системном реестре есть строки с Microsoft.ACE.OLEDB.12.0 и Microsoft.ACE.OLEDB.16.0
Это значит, что они установлены?
Когда прописываю их в 1С, обмен ругается как в (0). Значит, не установлены.
Завтра попробую. Думаю, при установке AccessDatabaseEngine скорее всего надо будет перегружать сервер, я не всегда могу это сделать.

Спасибо всем за подсказки!
11 Mihenius
 
30.01.20
17:20
(10) Возможно банально поменялась строка подключения.
Или учетка от которой стартует SQl и 1С.

Я бы проверил на самом sql
EXEC sp_configure 'show advanced option','1'
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries','1'
RECONFIGURE
GO

SELECT TableNo, TableName FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.16.0', 'Data Source=C:\Temp\TestSQL.mdb;Jet OLEDB:System database=C:\Temp\System.mdw;User Id=Admin;Password=admin;Jet OLEDB:Database Password=password')
    
EXEC sp_configure 'Ad Hoc Distributed Queries','0'
RECONFIGURE
GO
EXEC sp_configure 'show advanced option','0'
RECONFIGURE
GO

если у вас файл нового формата accdb, будет немного отличаться, уже не помню как )
12 NorthWind
 
31.01.20
07:08
(10) может, 32-битные установлены, а 64-битные нет, тогда из 64-битного процесса не будет работать подключение. Я обычно рекомендую создать в блокноте на рабочем столе пустой файл test.udl и клякнуть на него мышой.
Если в списке провайдеров нет чего надо - значит, требуется установка.
13 ILM
 
гуру
31.01.20
20:21
(12) Только сегодня такуе же фичу запилил в обработке обмена FireBird c 1c. Поменяли комп в кадрах и перестала работать выгрузка из PERCO, так как 1с уже 64 битная, а драйвер  FireBird брался 32 битный.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший