|
Ошибка при импорте .xls | ☑ | ||
---|---|---|---|---|
0
Nykos
26.08.13
✎
10:54
|
Такой парадокс. Надо выгрузить екселевский док в справочник. Фишка в том что из 10 однотипных .xls файлов все загружаются, а один выдает ошибку. Почему имено он - не понимаю. Откуда ошибка - тоже не понимаю. Ошибка следующая:
"Значение не является значением объектного типа (Sheets). Вот кусок кусок кода(с запасом): Процедура КнопкаВыполнитьНажатие(Кнопка) Выборка = Справочники.ДляЗагрузкиПрейскурантов.Выбрать(); Пока Выборка.Следующий() Цикл ТекЗапись = Выборка.ПолучитьОбъект(); ТекЗапись.Удалить(); КонецЦикла; Если ПустоеЗначение(Путь) Тогда Сообщить("Не выбран файл для загрузки...",СтатусСообщения.ОченьВажное); Возврат; КонецЕсли; // обработка документа Excel Документ = Новый COMОбъект("Excel.Application"); Попытка Книга = Документ.Workbooks.Open(Путь); Исключение Сообщить("Невозможно открыть файл Excel...",СтатусСообщения.ОченьВажное); КонецПопытки; Книга = Документ.ActiveWorkbook; Лист = Книга.Sheets(НомерЛиста); НомерСтроки = НачСтрока; Пока НомерСтроки <> КонСтрока + 1 Цикл НоваяСтрока = Справочники.ДляЗагрузкиПрейскурантов.СоздатьЭлемент(); ТекНомер = СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиНомера).Value)); НоваяСтрока.НовНаим = СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиНаименования).Value)); НоваяСтрока.Цена = ?(Не ПустоеЗначение(СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиЦены).Value))),Число(СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиЦены).Value))),0); НоваяСтрока.НормаВремени = ?(СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиНормыВремени).Value))<>"0",СокрЛП(Строка(Лист.Cells(НомерСтроки,НомерКолонкиНормыВремени).Value)),0); // проверка правильности установки номера Попытка флаг = 0; левНомер = Число(Лев(ТекНомер,1)); Исключение флаг = 1; КонецПопытки; |
|||
1
butterbean
26.08.13
✎
10:58
|
убери строку
Книга = Документ.ActiveWorkbook; |
|||
2
Nykos
26.08.13
✎
11:02
|
не помогло...
|
|||
3
Wobland
26.08.13
✎
11:19
|
я зачем-то открывал в попытке. зачем?
Попытка ExcelFile=Excel.Workbooks.Open(Файл); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; |
|||
4
Nykos
26.08.13
✎
11:20
|
хрен знает
|
|||
5
dk
26.08.13
✎
11:26
|
значит 10-й чем-то отличается от 9
может там на первом листе диаграмма скрытая или номер листа переопределяется попробуй Сообщить(Книга.Sheets.Count); Сообщить(Книга.WorkSheets.Count); Сообщить(НомерЛиста); Лист = Книга.WorkSheets(НомерЛиста); |
|||
6
Nykos
26.08.13
✎
11:38
|
(5) Да в том то и дело, что в сотый раз перепроверил - одинаковые полностью два файла, разница только в числах в ячейках некоторых. Все! Пипец..
Сообщения тоже никакого результата не дали. |
|||
7
zladenuw
26.08.13
✎
11:39
|
(6) так что пишут ?
|
|||
8
Steini
26.08.13
✎
11:41
|
(6) а если первый файл скопировать и в нем поменять числа? =)
|
|||
9
Nykos
26.08.13
✎
11:45
|
Млять, да все короче. понял я в чем фишка. Отличие от остальных в том, что название файла имеет ниибически большую длину. От этого и не хотело выковыривать.
|
|||
10
Nykos
26.08.13
✎
11:45
|
Как раньше не допер, хз.
|
|||
11
dk
26.08.13
✎
11:47
|
на будущее можно так страховаться:
потому как описаниеошибки иногда пустое |
|||
12
Nykos
26.08.13
✎
11:50
|
ок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |