Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Чтение из EXEL: не удается найти указанного поставщика          
Constantus Подменю пользователя
сообщение 26.02.19, 16:27
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
1с8.3.6, УФ, самописная.

Для чтения данных из файла *.xlsx при использовании:

СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=[Источник]; Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
Подключение = СтрЗаменить(СтрокаПодключения,"[Источник]", ИмяФайлаEXCEL);


Выходит сообщение:

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


Прочитал многое, даже дошел до откатов от обновлений виндовс, даже драйвер удален с сайтов Микрософтовцев...

Не подскажите, может есть более простой способ чтения из Эксель небольшого файла? Или может есть способ борьбы с текущей ситуацией?


Код раотает на сервере, на Постгрессе. На ПК не установлен ни один продукт МикрософтОфисе


nik389 Подменю пользователя
сообщение 26.02.19, 16:58
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 158
Из: Украина
Спасибо сказали: 38 раз
Рейтинг: 35

Если не ошибаюсь, именно с версии 8.3.6 1с умеет ТабличныйДокумент.Прочитать("ИмяФайлаЕксель")
а дальше работаете с табличным документом

Спасибо сказали: Володька,

Petre Подменю пользователя
сообщение 26.02.19, 17:03
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Constantus @ Today, 16:27 * ,
Так драйвер установлен или нет?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Constantus Подменю пользователя
сообщение 26.02.19, 17:35
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Petre @ Сегодня, 20:03 * ,

Скачали AccessDatabaseEngine, запустил. Как теперь проверить установлен он или нет? ОДБС не показал установленных драйверов.
Мож есть какие-то нюансы при установке этого драйвера?

Petre Подменю пользователя
сообщение 26.02.19, 17:37
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Constantus @ Today, 17:35 * ,
Обратите внимание на разрядность драйверов. Для разной разрядности свои оснастки.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

VXIIIZ Подменю пользователя
сообщение 27.02.19, 9:57
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 32
Спасибо сказали: 6 раз
Рейтинг: 0

Цитата(Constantus @ 26.02.19, 16:27) *
Не подскажите, может есть более простой способ чтения из Эксель небольшого файла?


Я пользуюсь вот этим способом

[необходимо зарегистрироваться для просмотра ссылки]

Vladal Подменю пользователя
сообщение 05.03.19, 11:46
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(VXIIIZ @ 27.02.19, 9:57) *
Я пользуюсь вот этим способом

[необходимо зарегистрироваться для просмотра ссылки]

Что мешает давать ссылку на первоисточник?
[необходимо зарегистрироваться для просмотра ссылки]

Так как сам пользуюсь LibreOffice, а на некоторых рабочих машинах вообще ничего кроме 1С не установлено, то пишу так:

Функция ПолучитьТабДок()
    
    ТабДок = Новый ТабличныйДокумент;
    
    Диалог = РаботаСФайлами.ПолучитьДиалогВыбораФайлов(Ложь);
    Диалог.ПроверятьСуществованиеФайла = Истина;
    Диалог.Фильтр = "Все файлы xls (*.xls*)|*.*|";
    Если Не Диалог.Выбрать() Тогда
        Возврат ТабДок;
    КонецЕсли;
    Попытка
        ТабДок.Прочитать(Диалог.ПолноеИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
    Исключение
        ОбщегоНазначения.СообщитьОбОшибке("При чтении файла Excel произошла ошибка:
        |" + ОписаниеОшибки());
        Возврат ТабДок;
    КонецПопытки;
    
    Возврат ТабДок;
    
КонецФункции // ПолучитьТабДок()


А далее просто перебираю области табличного документа, подобно Эксель:

    //Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл
    Пока ЗначениеЗаполнено(ТабДок.Область(1,Сч).Текст) Цикл
        
        ОбработкаПрерыванияПользователя();
        
        //ИмяКолонки = Excel.Cells(1, Сч).Text;
        ИмяКолонки = ТабДок.Область(1,Сч).Текст;
        ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ","");
        
        Если ИмяБезПробелов = "Код" Тогда
            НоваяКолонка = Таблица.Колонки.Добавить(ИмяПредыдущейКолонки+ИмяБезПробелов, ТипСтрока,, 20);
        ИначеЕсли ИмяБезПробелов = "Сумма" Тогда
            НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(19, 4),, 20);
        ИначеЕсли ИмяБезПробелов = "Дата" Тогда
            НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ОбщегоНазначения.ПолучитьОписаниеТиповДаты(ЧастиДаты.Дата),, 20);
        Иначе
            НоваяКолонка = Таблица.Колонки.Добавить(ИмяБезПробелов, ТипСтрока, ИмяКолонки, 20);
        КонецЕсли;
    
        ИмяПредыдущейКолонки = ИмяБезПробелов;
        Сч = Сч + 1;
        
    КонецЦикла;


А если заведомо известно, что все данные - строки или не надо с ними заморачиваться, то делаю так: (всего 3 строчки)

    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, Табдок.ШиринаТаблицы));
    Построитель.Выполнить();
    ТаблицаЗначений = Построитель.Результат.Выгрузить();


Еще можно читать с помощью adodb, но давно этот метод не использовал
[необходимо зарегистрироваться для просмотра ссылки]

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 6:54
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!