Имя: Пароль:
1C
1С v8
чтение Экселя
0 popoff17
 
12.07.12
10:39
Здравствуйте!
Прошу срочной помощи:
Нужно загрузить данные из файла excel в документ 1с.
ранее читал эксель таким образом:

Эксель = Новый COMОбъект("Excel.Application");

Сейчас поставили на все машины ОС win7 и офисы 2010. Появляется ошибка. Поискал решение - нашел тут на мисте следующий пример чтения:

       MyCon = Новый COMОбъект ("ADODB.Connection");
   MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Загрузка в регистр остатков отпусков\13-12-2011.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1""");
   MyCat=Новый COMОбъект ("ADOX.Catalog");
   MyCat.ActiveConnection = MyCon;
   ИмяПервойСтраницы=MyCat.Tables.Item(0).Name;
   MyRst = Новый COMОбъект ("ADODB.Recordset");
   MyStr = "select * from ["+ИмяПервойСтраницы+"]";
   MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
   Пока НЕ MyRst.EOF() Цикл
       Сообщить(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value));
       MyRst.MoveNext();    
   КонецЦикла;
   MyRst.Close();
   MyCon.Close();

Если правильно понял - данные выдергиваются из экселя запросом. Тут вывод:
       Сообщить(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value));

Выводятся значения 4й колонки начиная с 3й строки. А нужно прочитать все колонки. Такой код вижу впервый, поэтому потыкался наугад, попробовал изменить Item(0) - все равно читает только 4ю колонку.
Подскажите как прочитать остальные колонки, пожалуйста.
Нужно просто оперативно решить вопрос, гуглить что и как потом буду.
Заранее спасибо!
1 shuhard
 
12.07.12
10:50
(0)[попробовал изменить Item(0) - все равно читает только 4ю колонку. ]
лажа
2 popoff17
 
12.07.12
10:53
(1) т.е.?
3 vbh
 
12.07.12
11:10
Процедура КнопкаВыполнитьНажатие(Кнопка)
       Книга = ПолучитьCOMОбъект(СтрокаФайла);
       Лист1 = Книга.Worksheets(НоменВкладкиЭксельФайла);
           ФайлСтрок   = Лист1.Cells(1,1).SpecialCells(11).Row;
           ФайлКолонок = Лист1.Cells(1,1).SpecialCells(11).Column;  
               Для СчетчикСтрок= 1 по ФайлСтрок Цикл
                   Значение = ТЗ.Добавить();
                   Значение.АдресУзла = Лист1.Cells(СчетчикСтрок, НомерСтолбцаАдресаВЭкселе).Value;
                   //Значение.СкоростьПорта = Лист1.Cells(СчетчикСтрок, 3).Value;
                   Состояние(Лист1.Cells(СчетчикСтрок, НомерСтолбцаАдресаВЭкселе).Value);  
                   Для кол=1 по  ФайлКолонок Цикл
                       Если СокрЛП(Лист1.Cells(СчетчикСтрок, кол).Value)<>"" Тогда
                           Значение.Комментарий=Строка(Значение.Комментарий)+" / "+Строка(СокрЛП(Лист1.Cells(1, кол).Value))+"-"+Строка(СокрЛП(Лист1.Cells(СчетчикСтрок, кол).Value));
                       Конецесли;
                   КонецЦикла;
               КонецЦикла;
КонецПроцедуры
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший