Имя: Пароль:
1C
1C 7.7
v7: Добрый день, подскажите, плиз, что я не так написал? Текст ошибки: {Документ.Бан
0 Bodrug
 
08.05.14
14:01
Процедура ВыгрузкаExcel()
    Если ПустоеЗначение(ПутьКФайлуФрут) = 1 Тогда
        Вопрос("Необходимо задать файл для выгрузки!",0);
    КонецЕсли;
              
    Если КоличествоСтрок() < 1 Тогда
        Вопрос("Нет данных для выгрузки.",0);
    КонецЕсли;
    
    Если ФС.СуществуетФайл(ПутьКФайлуФрут) = 0 Тогда
        Предупреждение("Файл "+СокрЛП(ПутьКФайлуФрут)+" не найден!");
        Возврат;
    КонецЕсли;
    
    Попытка
        Excel = СоздатьОбъект("Excel.Application");
        Excel.Workbooks.Open(ПутьКФайлуФрут);
        КолЛистов = Excel.Worksheets.Count;
        Если КолЛистов < 12 Тогда
            Для Н=КолЛистов+1 По 12 Цикл    //добавляем необходимое кол листов мах = 12
                Лист = Excel.WorkSheets.Add();
            КонецЦикла;
            Для Н=1 По 12 Цикл                //переименовываем листы
                Лист = Excel.Worksheets(Н);  
                Лист.Name = МесяцСтрока(Н);
                Лист.Cells(1,1).Value = "Дата";
                Лист.Cells(1,1).Borders().LineStyle = 1;
                Лист.Cells(1,1).Borders().Weight = 2;  
                Лист.Cells(1,1).EntireColumn.AutoFit();
                Лист.Cells(1,2).Value = "Счет кредит";
                Лист.Cells(1,2).Borders().LineStyle = 1;
                Лист.Cells(1,2).Borders().Weight = 2;
                Лист.Cells(1,2).EntireColumn.AutoFit();
                Лист.Cells(1,3).Value = "С/Кредит";
                Лист.Cells(1,3).Borders().LineStyle = 1;
                Лист.Cells(1,3).Borders().Weight = 2;  
                Лист.Cells(1,3).EntireColumn.AutoFit();
                Лист.Cells(1,4).Value = "В/Кредит";
                Лист.Cells(1,4).Borders().LineStyle = 1;
                Лист.Cells(1,4).Borders().Weight = 2;  
                Лист.Cells(1,4).EntireColumn.AutoFit();
                Лист.Cells(1,5).Value = "Счет дебет";  
                Лист.Cells(1,5).Borders().LineStyle = 1;
                Лист.Cells(1,5).Borders().Weight = 2;
                Лист.Cells(1,5).EntireColumn.AutoFit();
            КонецЦикла;
        КонецЕсли;
    Исключение
        Сообщить(ОписаниеОшибки(),"!");
        Excel.ActiveWorkbook.Close();
        Возврат ;
    КонецПопытки;
    
    Excel.Worksheets(1).Select();
    Если ((СокрЛП(Excel.Cells(1,1).Value)<>"Дата")) Тогда;
        Сообщить("Неверный формат данных! Возможно вы выбрали неверный файл.","!!!");    
        Excel.ActiveWorkbook.Close();
        Возврат ;
    КонецЕсли;          
  
    
    ТекМесяц = ДатаМесяц(ДатаДок);            // определяем месяц, для записи на опред Лист
    Лист = Excel.Worksheets(ТекМесяц);
    КолСтрок = Лист.UsedRange.Rows.Count;    //кол строк в файле
    ТекСтрокаЕ = КолСтрок+1;                //строка с кот будет вестись запись

    ВыбратьСтроки();    
    Пока ПолучитьСтроку() = 1 Цикл    //цикл по таб части док-та
        
        //строка по заданному счету 361 и является приходом?
        Если (Счет.Код = "361") И (ПриходРасход = Перечисление.ПлюсМинус.Плюс) Тогда
            Лист.Cells(текСтрокаЕ,1).Value = ДатаДок;  
                Лист.Cells(текСтрокаЕ,1).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,1).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,2).Value = СокрЛП(Субконто.ПолнНаименование);
                Лист.Cells(текСтрокаЕ,2).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,2).Borders().Weight = 2;
            Лист.Cells(текСтрокаЕ,3).NumberFormatLocal = "# ##0,00";
            Лист.Cells(текСтрокаЕ,3).Value = СуммаПлатежа;  
                Лист.Cells(текСтрокаЕ,3).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,3).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,4).Value = "ГрнБ/Н";
                Лист.Cells(текСтрокаЕ,4).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,4).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,5).Value = СокрЛП(Константа.БазФирма.ПолнНаименование);  
                Лист.Cells(текСтрокаЕ,5).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,5).Borders().Weight = 2;  
            текСтрокаЕ = текСтрокаЕ + 1;
        Иначе
            Продолжить;
        КонецЕсли;  
    КонецЦикла;    
    Excel.SaveAs(ПутьКФайлуФрут);
    Excel.Close();
    Сообщить("Файл записан!",".");
    
КонецПроцедуры
1 Bodrug
 
08.05.14
14:01
Извиняюсь, завыл выбрать v7 =)
2 Bodrug
 
08.05.14
14:02
Текс ошибки:
{Документ.БанковскаяВыписка.Форма.Модуль(993)}: Поле агрегатного объекта не обнаружено (SaveAs)
3 MaxS
 
08.05.14
14:05
Откуда Excel знает какую книгу нужно сохранить?
4 Bodrug
 
08.05.14
14:05
ап
5 Bodrug
 
08.05.14
14:06
разве Excel сама по себе не является книгой? (3)
6 Wobland
 
08.05.14
14:07
(5) больше одного файлика никогда не открывал?
7 Bodrug
 
08.05.14
14:08
(6) вообще в первый раз работаю с Excel из 7.7
8 Bodrug
 
08.05.14
14:12
неужели никто не подскажет?
9 Wobland
 
08.05.14
14:12
(8) MaxS знает, я уверен
10 Bodrug
 
08.05.14
14:13
Знает и молчит
11 Wobland
 
08.05.14
14:14
(10) молчит? я тебе расскажу:
Откуда Excel знает какую книгу нужно сохранить?
12 Bodrug
 
08.05.14
14:17
(11) Нужно что-то типа такого?:

Книга = Excel.Workbooks.Open(ПутьКФайлуФрут);
//
//
Книга.SaveAs(ПутьКФайлуФрут);
Книга.Close();
Сообщить("Файл записан!",".");
13 Wobland
 
08.05.14
14:18
(12) какие слова заставят тебя попробовать?
14 Bodrug
 
08.05.14
14:23
(13)
Попытка
        Эксель = СоздатьОбъект("Excel.Application");
        Excel =Эксель.Workbooks.Open(ПутьКФайлуФрут);
        КолЛистов = Excel.Worksheets.Count;
        Если КолЛистов < 12 Тогда
            Для Н=КолЛистов+1 По 12 Цикл    //добавляем необходимое кол листов мах = 12
                Лист = Excel.WorkSheets.Add();
            КонецЦикла;
            Для Н=1 По 12 Цикл                //переименовываем листы
                Лист = Excel.Worksheets(Н);  
                Лист.Name = МесяцСтрока(Н);
                Лист.Cells(1,1).Value = "Дата";
                Лист.Cells(1,1).Borders().LineStyle = 1;
                Лист.Cells(1,1).Borders().Weight = 2;  
                Лист.Cells(1,1).EntireColumn.AutoFit();
                Лист.Cells(1,2).Value = "Счет кредит";
                Лист.Cells(1,2).Borders().LineStyle = 1;
                Лист.Cells(1,2).Borders().Weight = 2;
                Лист.Cells(1,2).EntireColumn.AutoFit();
                Лист.Cells(1,3).Value = "С/Кредит";
                Лист.Cells(1,3).Borders().LineStyle = 1;
                Лист.Cells(1,3).Borders().Weight = 2;  
                Лист.Cells(1,3).EntireColumn.AutoFit();
                Лист.Cells(1,4).Value = "В/Кредит";
                Лист.Cells(1,4).Borders().LineStyle = 1;
                Лист.Cells(1,4).Borders().Weight = 2;  
                Лист.Cells(1,4).EntireColumn.AutoFit();
                Лист.Cells(1,5).Value = "Счет дебет";  
                Лист.Cells(1,5).Borders().LineStyle = 1;
                Лист.Cells(1,5).Borders().Weight = 2;
                Лист.Cells(1,5).EntireColumn.AutoFit();
            КонецЦикла;
        КонецЕсли;
    Исключение
        Сообщить(ОписаниеОшибки(),"!");
        Excel.ActiveWorkbook.Close();
        Возврат ;
    КонецПопытки;
    
    Excel.Worksheets(1).Select();
    Если ((СокрЛП(Excel.Cells(1,1).Value)<>"Дата")) Тогда;
        Сообщить("Неверный формат данных! Возможно вы выбрали неверный файл.","!!!");    
        Excel.ActiveWorkbook.Close();
        Возврат ;
    КонецЕсли;          
  
    
    ТекМесяц = ДатаМесяц(ДатаДок);            // определяем месяц, для записи на опред Лист
    Лист = Excel.Worksheets(ТекМесяц);
    КолСтрок = Лист.UsedRange.Rows.Count;    //кол строк в файле
    ТекСтрокаЕ = КолСтрок+1;                //строка с кот будет вестись запись

    ВыбратьСтроки();    
    Пока ПолучитьСтроку() = 1 Цикл    //цикл по таб части док-та
        
        //строка по заданному счету 361 и является приходом?
        Если (Счет.Код = "361") И (ПриходРасход = Перечисление.ПлюсМинус.Плюс) Тогда
            Лист.Cells(текСтрокаЕ,1).Value = ДатаДок;  
                Лист.Cells(текСтрокаЕ,1).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,1).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,2).Value = СокрЛП(Субконто.ПолнНаименование);
                Лист.Cells(текСтрокаЕ,2).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,2).Borders().Weight = 2;
            Лист.Cells(текСтрокаЕ,3).NumberFormatLocal = "# ##0,00";
            Лист.Cells(текСтрокаЕ,3).Value = СуммаПлатежа;  
                Лист.Cells(текСтрокаЕ,3).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,3).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,4).Value = "ГрнБ/Н";
                Лист.Cells(текСтрокаЕ,4).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,4).Borders().Weight = 2;  
            Лист.Cells(текСтрокаЕ,5).Value = СокрЛП(Константа.БазФирма.ПолнНаименование);  
                Лист.Cells(текСтрокаЕ,5).Borders().LineStyle = 1;
                Лист.Cells(текСтрокаЕ,5).Borders().Weight = 2;  
            текСтрокаЕ = текСтрокаЕ + 1;
        Иначе
            Продолжить;
        КонецЕсли;  
    КонецЦикла;    
    Excel.SaveAs(ПутьКФайлуФрут);
    Excel.Close();
    Сообщить("Файл записан!",".");

Теперь выдает такую ошибку: {Документ.БанковскаяВыписка.Форма.Модуль(955)}: Поле агрегатного объекта не обнаружено (Cells)

Ругается на строку
Если ((СокрЛП(Excel.Cells(1,1).Value)<>"Дата")) Тогда;
15 Wobland
 
08.05.14
14:24
ну возвращай всё взад и отвечай на (3)
16 Bodrug
 
08.05.14
14:28
(15) Ты меня уже запутал. Я дописал

Эксель = СоздатьОбъект("Excel.Application");
Excel =Эксель.Workbooks.Open(ПутьКФайлуФрут);

И дальше работал с Excel, которая, как я понимаю, и выступает книгой. Что не так?
17 Wobland
 
08.05.14
14:31
18 DJ Anthon
 
08.05.14
14:31
так ты в инете посмотри, там примеров завались
19 DJ Anthon
 
08.05.14
14:32
(17) опездал (