|
Значение не является значением объектного типа (Очистить) | ☑ | ||
|---|---|---|---|---|
|
0
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(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецЕсли; КонецПроцедуры //ЗагрузитьДанныеНажатие() |
|||
|
1
Tatitutu
22.12.18
✎
10:47
|
(0) ты какой неуверенный ...4 попытки в одной процедуре
Перем ТЗ; это что ? //Перем ТЗ; |
| Форум | Правила | Описание | Секции | Поиск |