Имя: Пароль:
1C
1C 7.7
v7: Как получить значение из ячейки экселя?
0 Владимир1С
 
23.01.13
16:53
Вот конструкция, отвечающая за возврат значения:

Возврат СокрЛП(Строка( Worksheet.Range(СокрЛП(столбец)+строка(нчСтр)).Value ));

Открываю эксель - данные вижу. Открываю отладчик - показывает ошибку.
Буквально неделю назад всё работало без вопросов.

В чём может быть дело???
1 Владимир1С
 
23.01.13
16:59
начало такое :

Exel=СоздатьОбъект("Excel.Application");
WorkBook=Exel.Workbooks.Open(СокрЛП(ВходнойФайл));
Exel.DisplayAlerts=1;
ВходExcel=Exel;
КонечнаяСтрока = число(ВходExcel.ActiveSheet.Cells(1,1).SpecialCells(11).Row);
Worksheet=WorkBook.Worksheets(1);
2 Надсмотрщик
 
23.01.13
17:07
":"
3 PALESIA
 
23.01.13
17:10
(0) Ну как-то так ... :

Состояние(" Производится определение пути к загружаемому файлу.");
   ИмяПути = КаталогИБ();  ИмяФайла = "";
   спрПути = СоздатьОбъект("Справочник.ПутиЗагрузки");
   спрПути.НайтиПоКоду(14,0);
   Если спрПути.Выбран()=1 Тогда  ИмяПути = СокрЛП(спрПути.Наименование);  КонецЕсли;
   
   Состояние(" Производится запрос файла для загрузки документа.");
   ЗаглВвода = " Выберите файл для загрузки:";
   Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяПути,ЗаглВвода,"(*.xls)|*.xls")<1 Тогда
       Предупреждение("Файл для загрузки данных выбран не был !");
       Возврат;
   КонецЕсли;
   
   Состояние(" Производится запрос листа файла для загрузки.");
   ЗаглВвода = " Укажите лист для загрузки:";  ЗагрЛист = "Лист1";
   Если (ВвестиСтроку(ЗагрЛист,ЗаглВвода,20,0)<1) или (ПустаяСтрока(ЗагрЛист)=1) Тогда
       Предупреждение("Лист для загрузки указан не был !");
       Возврат;
   КонецЕсли;
   
   Состояние(" Производится открытие файла и выбор загружаемого листа.");
   ЛистВыбран = "Нет";
   Excel = СоздатьОбъект("Excel.Application");
   WorkBook = Excel.WorkBooks.Open(ИмяПути+ИмяФайла);
   Для НомерЛиста=1 По WorkBook.WorkSheets.Count Цикл
       Если WorkBook.WorkSheets(НомерЛиста).Name=ЗагрЛист Тогда
           ЗагрЛист = WorkBook.WorkSheets(НомерЛиста);
           ЛистВыбран = "Да";
           Прервать;
       КонецЕсли;
   КонецЦикла;
   Если ЛистВыбран="Нет" Тогда
       Предупреждение(" Указанный лист для загрузки в файле не обнаружен !");
       Возврат;
   КонецЕсли;
   
   Состояние("Производится проверка наличия данный на указанном листе файла.");
   ВсегоСтрок = ЗагрЛист.UsedRange.Rows.Count;
   Если ВсегоСтрок=0 Тогда
       Предупреждение(" Указанный Вами лист для загрузки пуст !");
       Возврат;
   КонецЕсли;
       
   Состояние(" Производится запрос начальной строки для загрузки.");
   НачСтрока = 10;  ЗаглВвода = " Укажите номер начальной строки:";
   Если (ВвестиЧисло(НачСтрока,ЗаглВвода,5,0)<1) или (НачСтрока=0) Тогда
       Предупреждение("Начальная строка для загрузки указана не была !");
       Возврат;
   КонецЕсли;
                   //  ЗАГРУЗКА ДАННЫХ ИЗ ФАЙЛА
   спрНоменкл = СоздатьОбъект("Справочник.Номенклатура");
   начСостояния = " Обрабатывается строка № ";
   конСостояния = " из "+ВсегоСтрок+" строк.";
   Для НомСтроки=НачСтрока По ВсегоСтрок Цикл
       Состояние(начСостояния+НомСтроки+конСостояния);
                   //  Считывание строки данных
       КолонкаВ = СокрЛП(ЗагрЛист.Cells(НомСтроки,"B").Text);
       КолонкаС = СокрЛП(ЗагрЛист.Cells(НомСтроки,"C").Text);
       КолонкаЕ = Число(ЗагрЛист.Cells(НомСтроки,"E").Value);
                   //  Обработка полученных данных
       ...
   КонецЦикла;
       
   Состояние(" Производится завершение загрузки данных из файла.");
   Excel.ActiveWorkbook.Close();
   Excel.Quit();
4 Владимир1С
 
23.01.13
17:15
Дико извиняюсь, провёл проверку экселя: скопировал в новую книгу, из копии всё загрузилось (?????). Видимо, где-то в экселе есть параметр, влияющий на читабельность.  
(3) большое спасибо за напоминание про .Text ,попробую с ним.