|
Открыть Excel через ADODB в 1С х64 | ☑ | ||
---|---|---|---|---|
0
LevelUP
02.02.17
✎
12:43
|
Здравствуйте.
Раньше в х32 1С открывал Excel таким кодом Стр_Конект = "Driver={Microsoft Excel Driver (*.xls)}; |DriverId=790; |Dbq="+Стр_Файл+"; |DefaultDir="+Стр_Путь+";"; Об_Конект = Новый COMОбъект("ADODB.Connection"); Попытка Об_Конект.Open(Стр_Конект); Исключение Сообщить ("Невозможно подключится к Microsoft Excel Driver!!! |Возможно файл ["+Стр_Файл+"] открыт другим пользователем."); Возврат; КонецПопытки; Теперь выдает ошибку на этапе Об_Конект.Open(Стр_Конект); Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Excel] Файл '(нет данных)' не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных. Куда копать? Что подправить в строке коннекта? |
|||
1
shuhard
02.02.17
✎
13:10
|
(0) ODBC тут лишнее
MyCon = Новый COMОбъект ("ADODB.Connection"); Попытка MyCon.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ОБъект.ПутьКфайламБюджета+";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1;"""); Исключение Сообщить("Не удалось открыть файл->"+ОБъект.ПутьКфайламБюджета+" Проверьте путь и тип файла"); Сообщить(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат; КонецПопытки; |
|||
2
LevelUP
02.02.17
✎
13:46
|
(1)Спасибо. На х32 код работает, а на х64 нет.
Ругается Произошла исключительная ситуация (Microsoft OLE DB Service Components): Заглушке переданы неправильные данные. Может что-то кроме Microsoft.ACE.OLEDB.12.0 надо в com+ прописать? |
|||
3
NorthWind
02.02.17
✎
13:51
|
(2) а драйвер ACE х64 скачан и установлен?
|
|||
4
LevelUP
02.02.17
✎
13:53
|
(3) я в службе компонентов его com+ сопоставил по типу Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С. Без этого ругался на Provider=Microsoft.ACE.OLEDB.12.0.
Теперь вот на заглушку |
|||
5
aka AMIGO
02.02.17
✎
14:14
|
Извините, а в файловом варианте эта штука не работает?
|
|||
6
LevelUP
02.02.17
✎
14:16
|
(5) у меня файловый вариант как раз
|
|||
7
aka AMIGO
02.02.17
✎
14:20
|
(6) У меня как раз 64.
Попробовал и я, тоже не срабатывает. Причина другая. Сообщений 2: Не удалось открыть файл->C:\DB\Азы\ExtReps\PL VAP FY17.xlsx Проверьте путь и тип файла Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно. Но у меня нет ACE |
|||
8
aka AMIGO
02.02.17
✎
14:22
|
(6) может тебе поможет: http://www.cyberforum.ru/ado-net/thread125575.html
Я в этом плаваю по-топорному. |
|||
9
aka AMIGO
02.02.17
✎
14:28
|
(0) чем вызвана необходимость использовать этот "Driver" ?
Нет Excel"я ? |
|||
10
LevelUP
02.02.17
✎
14:29
|
(8) ну драйвер похоже ставить надо Microsoft.ACE.OLEDB.12.0 х64. Но для этого надо офис снести х32, неохота.
Через обертку com+ избавился от ошибки "поставщика". Но появились другие. |
|||
11
aka AMIGO
02.02.17
✎
14:30
|
(10) Понял..
|
|||
12
LevelUP
02.02.17
✎
14:30
|
(9) Да, изначально у заказчика не было Екселя. Но сейчас уже есть, поэтому переписываю обработку под Excel.application
|
|||
13
aka AMIGO
02.02.17
✎
14:41
|
А так не пойдёт? Поскольку Excel установлен..
Попытка Excel = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Не найден Microfoft Excel."); Возврат Ложь; КонецПопытки; Попытка WorkBook = Excel.WorkBooks.Open(ФайлExcel ); Исключение Сообщить("Excel не удалось открыть файл " + ФайлExcel ); Возврат Ложь; КонецПопытки; ТекЛист=Excel.WorkSheets(1); ... |
|||
14
aka AMIGO
02.02.17
✎
14:42
|
+13 или ты под это и пишешь?
|
|||
15
DailyLookingOnA Sunse
02.02.17
✎
14:49
|
Платформа какая?
С 8.3.6 уже можно этим пользоваться: ДанныеФайлаТабличныйДокумент = Новый ТабличныйДокумент; ДанныеФайлаТабличныйДокумент.Прочитать(ИмяВремФайла); |
|||
16
LevelUP
02.02.17
✎
14:57
|
(13) да, так и переписываю. Подумал, что быстрее переписать, чем разбираться с ADO.
|
|||
17
LevelUP
02.02.17
✎
15:01
|
(15)платформа 8.3.9 х64. Хороший способ, надо попробовать, без всяких COM и определений количества строк и колонок. Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |