|
загрузка xls через oledb, ошибка | ☑ | ||
---|---|---|---|---|
0
virtus
21.03.14
✎
11:35
|
Здравствуйте, подскажите, пожалуйста,
Написал код для загрузки xls: Connection =Новый COMОбъект("ADODB.Connection"); //сформируем строку подключения //Если необходимо в дальнейшем оперировать цифровыми значениями колонок, то ставим признак HDR = NO //если необходимо производить загрузку с учетом псевдонимов в 1й строке,то ставим HDR = YES СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + "E:\Users\Alexey\Desktop\Таблица мерчендайзеров сводная.xls"; СтрокаПодключения = СтрокаПодключения+"; Extended Properties = "+"""Excel 8.0"+";HDR=NO;IMEX=1"";"; //подключение к источнику данных Попытка Connection.Open(СтрокаПодключения); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попадаю в исключение. И текст ошибки: {Форма.Форма.Форма(22)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно. Почему такое может происходить? Может кто знает? |
|||
1
kiruha
21.03.14
✎
11:41
|
Зачем велосипед ?
Эксель = ПолучитьCOMОбъект(ФайлЗагрузкиПуть); ЛистЭксель = Эксель.WorkSheets(1); Cells=ЛистЭксель.Cells; ВсегоКолонок = Cells.SpecialCells(11).Column; ТЗ = Новый ТаблицаЗначений; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; ВсегоСтрок = Cells.SpecialCells(11).Row; Для Счетчик = 1 По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла; Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; |
|||
2
shuhard
21.03.14
✎
11:41
|
(1) какая гадость
|
|||
3
virtus
21.03.14
✎
11:43
|
у меня нет екселя на сервере. поэтому так стал делать(1)
|
|||
4
13_Mult
21.03.14
✎
11:50
|
Попробуй переустановить драйвер
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5793 |
|||
5
13_Mult
21.03.14
✎
11:51
|
еще вот тут почитать можно http://infostart.ru/public/163640/
|
|||
6
zva
21.03.14
✎
11:56
|
Microsoft.Jet.OLEDB.4.0 не работает на х64 системах
|
|||
7
kiruha
21.03.14
✎
11:57
|
(2)
Автор не я, а разработчик получивший сотню плюсов на инфостарте. Одна из самых быстрых загрузок. Посмотрел ваши ответы выборочно в ветках по 8 - везде высеры не по делу ? Вы что - больной человек ? |
|||
8
virtus
21.03.14
✎
12:02
|
спасибо, попробую(4)
|
|||
9
shuhard
21.03.14
✎
12:04
|
(7) дерьмо со ста плюсами есть дерьмо
|
|||
10
virtus
21.03.14
✎
12:55
|
Стал делать так, потому что нет прав поставить ole на сервер.
Написал - Эксель = ПолучитьCOMОбъект("\\term_xm\ДоступноВсем\adapter\Таблица.xls"); На этом все. То есть приложение зависает. Права есть у сервера 1С на папку. Если открывать вручную файл, то он открывается через open office. MS excel не установлен.(1) Из-за чего это может быть? Спасибо |
|||
11
ДенисЧ
21.03.14
✎
12:56
|
(10) если ексель не установлен, то работать так не буде
|
|||
12
Мимохожий Однако
21.03.14
✎
12:59
|
Если нет прав, то их надо добиться от админа.
|
|||
13
virtus
21.03.14
✎
13:00
|
Да все верно:
" Например, фрагмент кода Таб = ПолучитьCOMОбъект("C:\DATA\DATA.XLS"); создает объект Excel.Application" Грустно.=) Спасибо.(11) |
|||
14
virtus
21.03.14
✎
13:01
|
админа нет на работе=)(12)
|
|||
15
13_Mult
21.03.14
✎
13:06
|
А что у вас так принято на сервере работать?!
С любого ПК грузанул бы, где есть права. |
|||
16
ShoGUN
21.03.14
✎
13:08
|
+(15) И эксель.
|
|||
17
virtus
21.03.14
✎
13:20
|
база лежит на отдельном сервере. Она много весит и если её выгрузить, то в файловый она потом не грузится, а ставить скуль отдельно не хочется - много весит плюс время установки. А работают с базой через другой сервер - к нему доступ через терминал. То есть всего 2 сервера - где база лежит и терминальный. (15)
|
|||
18
ShoGUN
21.03.14
✎
13:33
|
(17) Ты в одной локалке с сервером 1С? Если да - то что мешает напрямую клиентом со своей машины подключиться, а не через терминал?
|
|||
19
virtus
21.03.14
✎
13:35
|
хм, идея хорошая. щас попробую. спасибо.(18)
|
|||
20
virtus
21.03.14
✎
13:36
|
стоп, а смысл? все равно ексель то должен быть на серваке 1с , как и оле сервер. (18)
|
|||
21
ShoGUN
21.03.14
✎
13:45
|
(20) Если клиент толстый - то необязательно.
|
|||
22
virtus
21.03.14
✎
14:11
|
спасибо, но похоже тоже не получится. На сервере 1С - два интерфейса - один на терминальный сервер, второй наружу. Так вот подключиться к 1С сервере можно только через терминальный сервер. Там пи ту пи соединение получается.(21)
|
|||
23
shuhard
21.03.14
✎
14:13
|
(22) запусти виндовым шедулером обработину и читай свой xls
|
|||
24
virtus
21.03.14
✎
14:32
|
не очень понял. виндовый шедулер это как? (23)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |