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

Значение не является значением объектного типа (Очистить)

Значение не является значением объектного типа (Очистить)
Я
   Kim9012
 
22.12.18 - 10:43
Ругается на глобальную переменную ТЗ
&НаКлиенте
Процедура ЗагрузитьДанныеНажатие(Элемент)
      Перем ТЗ;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите имя файла для чтения";
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Фильтр = "Файл MS Excel (*.xlsx)| *.xlsx";
    //Диалог.Фильтр = "Все файлы (*.*)| *.*";
    
    Если Не Диалог.Выбрать() Тогда
        Сообщить("Файл для обработки не выбран!");
    Иначе
        //подключаемся к Excel
        ФайлДанных = Диалог.ПолноеИмяФайла;
        Попытка
            Excel = Новый COMОбъект("Excel.Application");
            Excel.WorkBooks.Open(ФайлДанных);
            Состояние("Обработка файла Microsoft Excel...");
        Исключение
            Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;

        Попытка
            //Открываем необходимый лист
            Excel.Sheets(1).Select(); // лист 1, по умолчанию
        Исключение
            //Закрываем Excel
            Excel.ActiveWorkbook.Close();
            Excel = 0;
            Сообщить("Файл " + Строка(ФайлДанных) + " не соответствует необходимому формату! Первый лист не найден!");
            Возврат;
        КонецПопытки;

        //Получим количество строк и колонок.
        //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
        Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
        Если Версия = "8" Тогда
            ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
            ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
        Иначе
            ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
            ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
        Конецесли;
                ТЗ.Очистить();
            
        Попытка //Если случится ошибка, то закроем файл, чтобы не висел в процессах
                
            Для Сч = 2 По ФайлСтрок Цикл
                Состояние("Обрабатывается строка " + Строка(Сч) + " из " + Строка(ФайлСтрок));
                Если НЕ СокрЛП(Excel.Cells(Сч, 1).Value) = ""  Тогда
                    НоваяСтрока = ТЗ.Добавить();
                    НоваяСтрока.НомерПоПорядку     = СокрЛП(Excel.Cells(Сч, 1).Value);
                    НоваяСтрока.ТестовыйТекст     = СокрЛП(Excel.Cells(Сч, 2).Text);
                    НоваяСтрока.ТестовоеЧисло1     = СокрЛП(Excel.Cells(Сч, 3).Value);
                    НоваяСтрока.ТестовоеЧисло2     = СокрЛП(Excel.Cells(Сч, 4).Value);
                    НоваяСтрока.ТестовоеЧисло3     = СокрЛП(Excel.Cells(Сч, 5).Value);
                    НоваяСтрока.ТестовоеЧисло4     = СокрЛП(Excel.Cells(Сч, 6).Value);
                    НоваяСтрока.ТестовоеЧисло5     = СокрЛП(Excel.Cells(Сч, 7).Value);
                    НоваяСтрока.ТестовоеЧисло6     = СокрЛП(Excel.Cells(Сч, 8).Value);
                    НоваяСтрока.ТестовоеЧисло7     = СокрЛП(Excel.Cells(Сч, 9).Value);
                    НоваяСтрока.ТестоваяДата     = СокрЛП(Excel.Cells(Сч, 10).Value);
                КонецЕсли;    
            КонецЦикла;
        Исключение
            //Закрываем Excel
            Excel.ActiveWorkbook.Close();
            Excel.Quit();
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;
        
        Попытка            
            Сообщить("Файл Excel прочитан!");
            Excel.Quit();
        Исключение
            Сообщить(ОписаниеОшибки());
            Возврат;
        КонецПопытки;            
    КонецЕсли;
    
КонецПроцедуры //ЗагрузитьДанныеНажатие()
 
 
   Tatitutu
 
1 - 22.12.18 - 10:47
(0) ты какой неуверенный ...4 попытки в одной процедуре

Перем ТЗ;

это что ?

//Перем ТЗ;

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