Здравствуйте есть у кого примеры успешного заполнения excel файла через внешний источник
---
Всем спасибо тема закрыта
вот рабочая строка подключения для 1С
СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+Имяфайла+";ReadOnly=0;DriverID=1046";
---
Дык там все просто я постоянно данные их SQL Server таскаю.
---
Вот держи.
Старый примерчик, но может и этого хватит

```1c
    Эксель = Новый COMОбъект("Excel.Application");
    Книга = Эксель.Workbooks.Add(");
    Лист = Книга.Sheets(1);

    // Создадим 100 строк и 100 колонок и заполним их случайными символами
    Строк = 100;
    Колонок = 100;
    ГСЧ = Новый ГенераторСлучайныхЧисел;
    Для Сч = 1 по Строк Цикл
    Для Сч1 = 1 по Колонок Цикл
    Лист.cells(Сч,Сч1).Value = Символ(ГСЧ.СлучайноеЧисло(1,2000));
    КонецЦикла;
    КонецЦикла;
    Эксель.Visible = 1;
```
---
я же написал, что не из excel, а именно загрузка в excel
Чтение файлов excel через внешний источник тут у меня проблем нет
---
Спасибо большое, но это не то
 этот метод я знаю
Но если в файле 30 колонок и загрузить туда нужно 100 тысяч строк, то все это жутко тормозит
я просил помочь именно выгрузкой excel именно через внешний источник 1С
---
Все равно вопрос тогда не понял.
Ну выгрузи в файл, формат CSV, и скорми его Экселю.
---
Используйте выгрузку по колонкам массивами данных, все будет быстро.
---
Спасибо большое, но я сюда пришел чтобы узнать кто делал выгрузку в excel через внешний источник, файл из двух сот тысяч строк
 читается за 30 секунд, если запись будет такая же то это супер вот и хотелось бы добиться решения
---
именно через внешний источник - не знаю, может быть вообще никак в условиях 1С.
я использую Excel напрямую.
---
Да понятно, но я же спрашивал в вопросе как именно хочу сделать
все проходит соединение с файлом заполнение поле
и при записи выходит ошибка
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -3035
Описание: [Microsoft][Драйвер ODBC Excel] В операции должен использоваться обновляемый запрос.
---
В операции должен использоваться обновляемый запрос

Ну и вот, у тебя запрос только на чтение, запись невозможна. Переделывай запрос.
---
Как именно подскажите буду очень признателен
---
В 1С все запросы только на чтение. Так что колхозить придется.
---
НЕ согласен в sql базу прекрасно пишется
---
И запись через внешний источник заложена в возможности платформы просто нужно знать как
---
Ну тогда я пас. У меня ни разу не получилось. Хотя идея интересная, надо будет попробовать на досуге.
Думаю тут запрос не на выборку а на изменение тогда делать. UPDATE заместо SELECT
---
:Жаль, что пас вдвоем бы быстрее докопались
---
ПараметрыСоединения=ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.ПолучитьПараметрыСоединенияСеанса();
     ПараметрыСоединения.СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+СокрЛП(ПроверкаСуществованияФайла.ПолноеИмя)+"; DriverID=1046";
     // определяем внешний источник
     ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.УстановитьПараметрыСоединенияСеанса(ПараметрыСоединения);
    // Попытка
      ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.УстановитьСоединение();
      СтрокаОбъекта=ВнешниеИсточникиДанных.ОбменСВнешнимиПрограммами.Таблицы.СтруктураПередачиДанных.СоздатьОбъект();
     // СтрокаОбъекта.УстановитьИзменяемыеПоля(МассивПолей);
      СтрокаОбъекта.Наименование_населенного_пункта="УЛ";
      СтрокаОбъекта.Наименование_Улицы="1";
      СтрокаОбъекта.Номер_Дома="1";
      СтрокаОбъекта.Номер_Квартиры="2";
      СтрокаОбъекта.Номер_Корпуса="4";
      СтрокаОбъекта.Начислено=10;
      СтрокаОбъекта.Период_С=ТекущаяДата();
      СтрокаОбъекта.Период_По=ТекущаяДата();
     //СтрокаОбъекта.ПолучитьИзменяемыеПоля();
      СтрокаОбъекта.Записать();
---
а если сделать необъектные данные и работать как с НаборомЗаписей?
---
Пробовал пишет что не возможно перезаписать строку в данную таблицу хотя в базу sql с помощью набора записей пишет отлично
---
В строке подключения к файлу эксель никаких ключей, отвечающих за возможность изменения таблицы, не предусмотрено?
---
я вот тоже грешу на строку подключения, но что в нее добавить не знаю
---
Пока нагуглил такой вариант:

```1c
    szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + szSourceFile + ";Mode=Read
    |;Extended Properties=Excel 12.0;HDR=No;"
```
---
попробую напишу результат
---
Всем спасибо тема закрыта
вот рабочая строка подключения для 1С
СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"+"DBQ="+Имяфайла+";ReadOnly=0;DriverID=1046";
---
Как именно буду признателен за подсказку
---
а можно пример строки состояния для Чтение файлов excel через внешний источник ?