![]() |
![]() |
![]() |
|
загрузка в 1с из excel через ADODB | ☑ | ||
---|---|---|---|---|
0
rinaty17
04.06.13
✎
16:12
|
может кто разбирался.
через этот метод у меня все пашет, но только одно но, в файле excel есть пустые строки перед данными мне они тоже нужны, а они не загружаются вот код Процедура ЗагрузитьПрайс() Экспорт Connection = Новый COMОбъект("ADODB.Connection"); СтрокаПодключения="Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "+ПутьКФайлу; СтрокаПодключения=СтрокаПодключения+"; Extended Properties = "+"""Excel 8.0"+";HDR=NO;IMEX=1"";"; Попытка Connection.Open(СтрокаПодключения); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Command =Новый COMОбъект("ADODB.Command"); axCatalog =Новый COMОбъект("ADOX.Catalog"); axCatalog.ActiveConnection = Connection; счЛиста=1; Для каждого Лист ИЗ axCatalog.Tables Цикл ИмяТаблицы=Лист.Name; Прервать; счЛиста=счЛиста+1; // КонецЦикла; RecordSet =Новый COMОбъект("ADODB.RecordSet"); Command.ActiveConnection = Connection; Сз = Новый СписокЗначений; Сз.Добавить(НомерКолонкиНаименование); Сз.Добавить(НомерКолонкиИдентификатора); Сз.Добавить(НомерКолонкиГруппыТоваров); Сз.Добавить(НомерКолонкиЦены); Сз.СортироватьПоЗначению(); ТекстЗапросаКолонки = ""; Для Каждого Стр Из Сз Цикл ТекстЗапросаКолонки=ТекстЗапросаКолонки+?(ТекстЗапросаКолонки="","F"+Стр.Значение,",F"+Стр.Значение); КонецЦикла; Command.CommandText ="SELECT "+ТекстЗапросаКолонки+" FROM ["+ИмяТаблицы+"]"; Command.CommandType =1; Попытка RecordSet = Command.Execute(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; //RecordSet.MoveNext();//т.кперваястрокаэтозаголовкитаблиц,небудемееучитывать Ном = 0; Пока RecordSet.EOF()=0 Цикл Ном = Ном + 1; Если Ном >= НомерНачалаСтрокиТоваров ТОгда СтрокаТабличнойЧасти = Данные.Добавить(); СтрокаТабличнойЧасти.Наименование=СокрЛП(Строка(RecordSet.Fields(НомерКолонкиНаименование-1).Value)); СтрокаТабличнойЧасти.Идентификатор=СокрЛП(Строка(RecordSet.Fields(НомерКолонкиИдентификатора-1).Value)); СтрокаТабличнойЧасти.Группа=СокрЛП(Строка(RecordSet.Fields(НомерКолонкиГруппыТоваров-1).Value)); СтрокаТабличнойЧасти.ЦенаИзПрайса=RecordSet.Fields(НомерКолонкиЦены-1).Value; //СтрокаТабличнойЧасти.Наименование=СокрЛП(Строка(RecordSet.Fields(НомерКолонкиНаименование).Value)); КонецЕсли; RecordSet.MoveNext(); КонецЦикла; RecordSet.Close(); Connection.Close(); КонецПроцедуры |
|||
1
rinaty17
04.06.13
✎
16:13
|
как мне еще эти пустые строки тоже подтянуть?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |