Статья о выгрузке данных из 1с в Excel при помощи ADO
Сначала расскажу о достоинствах и недостатках данного метода:
Достоинства:
- высокая скорость
- простота и понятность кода
- нет необходимости иметь установленный Microsoft Excel
Недостатки:
- вы получаете таблицу данных без учета группировок
Код:
Процедура Сформировать() db=CreateObject("ADODB.Connection"); rs=CreateObject("ADODB.Recordset"); db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(АдресФайла)+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;"""; db.Open(); rs.ActiveConnection = db; rs.CursorType = 3; rs.LockType = 2; cat=СоздатьОбъект("ADOX.Catalog"); cat.ActiveConnection=db; rs.Source = "Select F5, F6, F9 from ["+cat.Tables(0).Name+"]"; rs.Open(); ТЗ=СоздатьОбъект("ТаблицаЗначений"); КоличествоКолонок = rs.Fields.Count; Для НомерКолонки=0 По КоличествоКолонок - 1 Цикл ТЗ.НоваяКолонка(rs.Fields(НомерКолонки).Name); КонецЦикла; Пока rs.Eof()=0 Цикл ТЗ.НоваяСтрока(); Для НомерКолонки=0 По КоличествоКолонок - 1 Цикл ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,НомерКолонки+1,rs.Fields(НомерКолонки).Value); КонецЦикла; rs.MoveNext(); КонецЦикла; rs.Close(); db.Close(); ТЗ.ВыбратьСтроку(); КонецПроцедуры
Также прошу обратить внимание на то что в выборке учавствуют только 5, 6 и 9 колонки Excel файла. По выполнению данного кода вы получаете таблицу значений (ТЗ).