|
Ошибка при выборе листа эксель | ☑ | ||
---|---|---|---|---|
0
falselight
21.03.19
✎
10:34
|
Использую обработку для загрузки данных с эксель листов.
На форме появилось дерево, файла эксель и его листов. Выбираю лист. Жму прочитать, в тз появляются данные. Но если выбрать другой лист и нажать прочитать, то, выходит ошибка {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets) Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); по причине: Произошла исключительная ситуация (0x800a03ec) То есть как её исключить? Что бы перечитывался другой выбранный лист? |
|||
1
falselight
21.03.19
✎
10:39
|
Вижу ошибку, Excel - не определена в этом случае. Наверное в этом дело.
|
|||
2
falselight
21.03.19
✎
10:44
|
Все же ошибка идет, не подскажете почему?
{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets) Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); по причине: Произошла исключительная ситуация (0x800a03ec) |
|||
3
Дмитрий
21.03.19
✎
10:44
|
ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?
|
|||
4
falselight
21.03.19
✎
10:51
|
Почему вот это бывает пустое?????
При первой загрузке там COMОбъект (3) Названию выбранного листа. |
|||
5
falselight
21.03.19
✎
10:51
|
(4+) Excel.Sheets
|
|||
6
falselight
21.03.19
✎
10:57
|
Точку останова ставлю, вроде как обновляются данные
без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть? |
|||
7
falselight
21.03.19
✎
10:58
|
как с этим быть? Что то не понятно!!!!
|
|||
8
falselight
21.03.19
✎
11:06
|
Почему не видна функция в 1с ТекущееВремя() ?
|
|||
9
falselight
21.03.19
✎
11:08
|
Хотел вот такую функцию использовать, паузу. но она не работает.
Процедура Пауза(Время) чЧас=0; чМин=0; чСек=0; ТекущееВремя(чЧас,чМин,чСек); чТекВремя = чЧас*3600+чМин*60+чСек; чВремяЗавершения = чТекВремя+Время; Пока чТекВремя<чВремяЗавершения Цикл ТекущееВремя(чЧас,чМин,чСек); чТекВремя = чЧас*3600+чМин*60+чСек; КонецЦикла; КонецПроцедуры; |
|||
10
falselight
21.03.19
✎
12:17
|
Ставлю точку останова на этой строке.
// ЧТЕНИЕ ЛИСТА Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка) Если ОбрЗавершена = 1 Тогда Сообщить("Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!"); Возврат; КонецЕсли; // // Необходимый лист Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), "xls") > 0 Тогда Предупреждение("Выберите конкретный лист для загрузки, а не сам файл!"); Возврат; КонецЕсли; // Если Excel = неопределено Тогда Попытка Excel = новый COMОбъект("Excel.Application"); Исключение Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel."); Возврат; КонецПопытки; //НашФайл = Excel.Workbooks.Open(ИмяФайла); Excel.Workbooks.Open(ИмяФайла); КонецЕсли; // //ПаузаПустымЦиклом(5); // Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); Читаю листы, у загруженного файла в дерево. Читается как и один так и другой. Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка. {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets) Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select(); по причине: Произошла исключительная ситуация (0x800a03ec) Что нужно поправить? Подскажите пожалуйста! |
|||
11
falselight
21.03.19
✎
12:21
|
Решил вопрос.
Нужно было сделать так, - Excel = Неопределено; // КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |