Вход | Регистрация
 

Ошибка при выборе листа эксель

Ошибка при выборе листа эксель
Я
   falselight
 
21.03.19 - 10:34
Использую обработку для загрузки данных с эксель листов.
На форме появилось дерево, файла эксель и его листов. Выбираю лист.
Жму прочитать, в тз появляются данные.
Но если выбрать другой лист и нажать прочитать, то, выходит ошибка

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)
    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  
по причине:
Произошла исключительная ситуация (0x800a03ec)


То есть как её исключить? Что бы перечитывался другой выбранный лист?
 
 
   falselight
 
1 - 21.03.19 - 10:39
Вижу ошибку, Excel - не определена в этом случае. Наверное в этом дело.
   falselight
 
2 - 21.03.19 - 10:44
Все же ошибка идет, не подскажете почему?

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)
    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   
по причине:
Произошла исключительная ситуация (0x800a03ec)
   Дмитрий
 
3 - 21.03.19 - 10:44
ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?
   falselight
 
4 - 21.03.19 - 10:51
Почему вот это бывает пустое?????
При первой загрузке там COMОбъект

(3) Названию выбранного листа.
   falselight
 
5 - 21.03.19 - 10:51
(4+) Excel.Sheets
   falselight
 
6 - 21.03.19 - 10:57
Точку останова ставлю, вроде как обновляются данные
без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?
   falselight
 
7 - 21.03.19 - 10:58
как с этим быть? Что то не понятно!!!!
   falselight
 
8 - 21.03.19 - 11:06
Почему не видна функция в 1с ТекущееВремя() ?
   falselight
 
9 - 21.03.19 - 11:08
Хотел вот такую функцию использовать, паузу. но она не работает.

Процедура Пауза(Время) 
чЧас=0; чМин=0; чСек=0; 
ТекущееВремя(чЧас,чМин,чСек); 
чТекВремя = чЧас*3600+чМин*60+чСек; 
чВремяЗавершения = чТекВремя+Время; 
Пока чТекВремя<чВремяЗавершения Цикл 
ТекущееВремя(чЧас,чМин,чСек); 
чТекВремя = чЧас*3600+чМин*60+чСек; 
КонецЦикла; 
КонецПроцедуры;
   falselight
 
10 - 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)


Что нужно поправить? Подскажите пожалуйста!
   falselight
 
11 - 21.03.19 - 12:21
Решил вопрос.
Нужно было сделать так, -

    Excel = Неопределено;
    //

КонецПроцедуры

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.