Имя: Пароль:
1C
1С v8
1с Excel WorkSheets Значение не является значением объектного типа
,
0 slaaay
 
06.08.14
10:50
&НаКлиенте
Процедура ОткрытьФайл(Команда)
    
    ИмяФайла = ВыборФайла();
    ЭксПриложение = Новый COMОбъект("Excel.Application");
    Файл = ЭксПриложение.WorkBooks.Open(ИмяФайла);
    Лист = Файл.WorkSheets(1);
    
    ЭксПриложение.Quit();    
    
КонецПроцедуры

Не могу понять почему на WorkSheets ругается пробовал перенести эту строчку на сервер и передать в сервер переменную Файл тоже ругается. Пробовал переносить все на сервер но ругается что нет доступа к файлу. и что мне теперь на каждом компьютере настраивать доступ сервера к компу?
1 Heckfy
 
06.08.14
11:29
У меня этот код работает.
&НаКлиенте
Процедура СформироватьНаКлиенте(Команда)
    Если ПустаяСтрока(Объект.ФайлИзЗУП) Тогда
        Предупреждение("Для запуска обработки необходимо предварительно выбрать файл Microsoft Excel.");
        Возврат;
    КонецЕсли;
    
    ИмяФайла=Объект.ФайлИзЗУП;
    ТаблЗначений.Очистить();
    Попытка
        // Загрузка Microsoft Excel
        //Состояние("Загрузка Microsoft Excel...");
        ExcelПриложение = Новый COMОбъект("Excel.Application");
    Исключение
        Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    Попытка
        // Открытие файла Microsoft Excel
        //Состояние("Открытие файла Microsoft Excel...");
        ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);
    Исключение
        Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    
    
    ExcelЛист=ExcelФайл.Sheets(1);
    ExcelКвоЗаполненыхСтрок = Число(ExcelЛист.UsedRange.Rows.Count);
    Массив=Новый Массив;
******************
*******************
******************

ExcelПриложение.Quit();
КонецПроцедуры

Где Объект.ФайлИзЗУП - реквизит типа строка. Путь к файлу Экселя.