Внешний источник данных загрузка в excel

1. prostoznakomuy 25.01.22 09:59 Сейчас в теме
Здравствуйте есть у кого примеры успешного заполнения excel файла через внешний источник
По теме из базы знаний
Найденные решения
26. prostoznakomuy 26.01.22 15:24 Сейчас в теме
(24) Всем спасибо тема закрыта
вот рабочая строка подключения для 1С
СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+Имяфайла+";ReadOnly=0;DriverID=1046";
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kongo2019 25.01.22 10:08 Сейчас в теме
(1)Дык там все просто я постоянно данные их SQL Server таскаю.
4. qazaas 25.01.22 10:14 Сейчас в теме
(1)
Вот держи.
Старый примерчик, но может и этого хватит

Эксель = Новый COMОбъект("Excel.Application"); 
	Книга = Эксель.Workbooks.Add(""); 
	Лист = Книга.Sheets(1);
	
	// Создадим 100 строк и 100 колонок и заполним их случайными символами
	Строк = 100;
	Колонок = 100;	
	ГСЧ = Новый ГенераторСлучайныхЧисел;	
	Для Сч = 1 по Строк Цикл
		Для Сч1 = 1 по Колонок Цикл
			Лист.cells(Сч,Сч1).Value = Символ(ГСЧ.СлучайноеЧисло(1,2000));
		КонецЦикла;
	КонецЦикла;	
	Эксель.Visible = 1;
Показать
3. prostoznakomuy 25.01.22 10:12 Сейчас в теме
я же написал, что не из excel, а именно загрузка в excel
Чтение файлов excel через внешний источник тут у меня проблем нет
5. prostoznakomuy 25.01.22 10:17 Сейчас в теме
Спасибо большое, но это не то
этот метод я знаю
Но если в файле 30 колонок и загрузить туда нужно 100 тысяч строк, то все это жутко тормозит
я просил помочь именно выгрузкой excel именно через внешний источник 1С
6. Kongo2019 25.01.22 10:22 Сейчас в теме
(5)Все равно вопрос тогда не понял.
Ну выгрузи в файл, формат CSV, и скорми его Экселю.
9. nomad_irk 76 25.01.22 10:31 Сейчас в теме
(5)Используйте выгрузку по колонкам массивами данных, все будет быстро.
10. prostoznakomuy 25.01.22 10:36 Сейчас в теме
(9) Спасибо большое, но я сюда пришел чтобы узнать кто делал выгрузку в excel через внешний источник, файл из двух сот тысяч строк
читается за 30 секунд, если запись будет такая же то это супер вот и хотелось бы добиться решения
12. nomad_irk 76 25.01.22 10:40 Сейчас в теме
(10)именно через внешний источник - не знаю, может быть вообще никак в условиях 1С.
я использую Excel напрямую.
7. prostoznakomuy 25.01.22 10:24 Сейчас в теме
Да понятно, но я же спрашивал в вопросе как именно хочу сделать
все проходит соединение с файлом заполнение поле
и при записи выходит ошибка
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -3035
Описание: [Microsoft][Драйвер ODBC Excel] В операции должен использоваться обновляемый запрос.
11. Kongo2019 25.01.22 10:39 Сейчас в теме
(7)
В операции должен использоваться обновляемый запрос


Ну и вот, у тебя запрос только на чтение, запись невозможна. Переделывай запрос.
14. prostoznakomuy 25.01.22 10:45 Сейчас в теме
(11)
Как именно подскажите буду очень признателен
15. Kongo2019 25.01.22 12:27 Сейчас в теме
(14)В 1С все запросы только на чтение. Так что колхозить придется.
16. prostoznakomuy 25.01.22 15:20 Сейчас в теме
(15) НЕ согласен в sql базу прекрасно пишется
17. prostoznakomuy 25.01.22 15:23 Сейчас в теме
(15) И запись через внешний источник заложена в возможности платформы просто нужно знать как
18. Kongo2019 25.01.22 15:32 Сейчас в теме
(17)Ну тогда я пас. У меня ни разу не получилось. Хотя идея интересная, надо будет попробовать на досуге.
Думаю тут запрос не на выборку а на изменение тогда делать. UPDATE заместо SELECT
19. prostoznakomuy 26.01.22 03:19 Сейчас в теме
(18):Жаль, что пас вдвоем бы быстрее докопались
8. prostoznakomuy 25.01.22 10:26 Сейчас в теме
ПараметрыСоединения=ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.ПолучитьПараметрыСоединенияСеанса();
ПараметрыСоединения.СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+СокрЛП(ПроверкаСуществованияФайла.ПолноеИмя)+"; DriverID=1046";
// определяем внешний источник
ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
// Попытка
ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.УстановитьСоединение();
СтрокаОбъекта=ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.Таблицы.СтруктураПередачиДанных.СоздатьОбъект();
// СтрокаОбъекта.УстановитьИзменяемыеПоля(МассивПолей);
СтрокаОбъекта.Наименование_населенного_пункта="УЛ";
СтрокаОбъекта.Наименование_Улицы="1";
СтрокаОбъекта.Номер_Дома="1";
СтрокаОбъекта.Номер_Квартиры="2";
СтрокаОбъекта.Номер_Корпуса="4";
СтрокаОбъекта.Начислено=10;
СтрокаОбъекта.Период_С=ТекущаяДата();
СтрокаОбъекта.Период_По=ТекущаяДата();
//СтрокаОбъекта.ПолучитьИзменяемыеПоля();
СтрокаОбъекта.Записать();
20. nomad_irk 76 26.01.22 06:13 Сейчас в теме
(8)а если сделать необъектные данные и работать как с НаборомЗаписей?
21. prostoznakomuy 26.01.22 06:28 Сейчас в теме
(20) Пробовал пишет что не возможно перезаписать строку в данную таблицу хотя в базу sql с помощью набора записей пишет отлично
22. nomad_irk 76 26.01.22 07:13 Сейчас в теме
(21)В строке подключения к файлу эксель никаких ключей, отвечающих за возможность изменения таблицы, не предусмотрено?
23. prostoznakomuy 26.01.22 07:17 Сейчас в теме
(22) я вот тоже грешу на строку подключения, но что в нее добавить не знаю
24. nomad_irk 76 26.01.22 08:01 Сейчас в теме
(23)Пока нагуглил такой вариант:

szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + szSourceFile + ";Mode=Read
|;Extended Properties=Excel 12.0;HDR=No;"
25. prostoznakomuy 26.01.22 08:07 Сейчас в теме
(24) попробую напишу результат
26. prostoznakomuy 26.01.22 15:24 Сейчас в теме
(24) Всем спасибо тема закрыта
вот рабочая строка подключения для 1С
СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+Имяфайла+";ReadOnly=0;DriverID=1046";
13. prostoznakomuy 25.01.22 10:44 Сейчас в теме
(11) Как именно буду признателен за подсказку
27. user1032105 23.05.23 16:04 Сейчас в теме
(3) а можно пример строки состояния для Чтение файлов excel через внешний источник ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот