Имя: Пароль:
1C
1C 7.7
v7: Высота строки в экселе из под 1с 7.7.
0 Pasha-Buh
 
03.05.16
01:10
Есть форма прайса, которая создается в 1с. В форме документа есть флажок выгрузка в эксель. При его включении печатная форма сохраняется в эксель. Далее необходимо сформатировать экселовский файл, а именно выставить высоту строк и некоторые ячейки слить, проставить формулы Код:
    Если Эксель = 0 Тогда  //выгрузка не в Excel
        ИсхТабл.ТолькоПросмотр(0);
        ИсхТабл.Показать("Печать прайс-листа","");
    Иначе
        ИсхТабл.Записать(Путь1+"\ПредЗаказ",1);
        Эксел= СоздатьОбъект("Excel.Application");
        ФайлЭксел = Эксел.Workbooks.Open(Путь1+"\ПредЗаказ");
        НашЛист = ФайлЭксел.Sheets("Sheet1");  
        
        Для Н = 22 По 1000 Цикл
            Если ПустоеЗначение(НашЛист.Cells(н,3).Value)=1 Тогда
                Прервать;
            Иначе
                Если ПустоеЗначение(НашЛист.Cells(н,4).Value)=0 Тогда    
                                НашЛист.Cells(н, 8).FormulaLocal = "=E"+н+"*G"+н;
                    Если НашЛист.Cells(н,9).Value =0 Тогда
                         НашЛист.Rows(н+":"+н).RowHeight = 13;   // высота  строки
                    ИначеЕсли НашЛист.Cells(н,9).Value =1 Тогда    
                         НашЛист.Rows(н+":"+н).RowHeight = 30;   // высота  строки если есть картинка
                    КонецЕсли;
                    Если ПустоеЗначение(НашЛист.Cells(н,5).Value)=1 Тогда
                       НашЛист.Cells(н,5).Value=0;
                    КонецЕсли;
                Иначе
                    НашЛист.Rows(н+":"+н).RowHeight = 15;   // высота  строки группа
                    Продолжить;
                КонецЕсли;
            КонецЕсли    
        КонецЦикла;    
        
        НашЛист.Range("I:I").Delete(-4159);
        НашЛист.PageSetup.Orientation=2;

        
        //Сформатируем ячейки шапки
        НашЛист.Range(НашЛист.Cells(3,2),НашЛист.Cells(3,3)).Merge();
        НашЛист.Range(НашЛист.Cells(4,2),НашЛист.Cells(4,3)).Merge();

            ФайлЭксел.SaveAs(Путь1+"\ПредЗаказ1",51);
            Эксел.WorkBooks.close();
            Эксел.Quit();
        ФС.УдалитьФайл(Путь1+"\ПредЗаказ.xls");
        Сообщить("Файл записан");
    КонецЕсли;

Почему не выставляется высота строк?
1 DrZombi
 
гуру
03.05.16
08:37
(0) Используй Ексель, там коду 3 строчки для записи в ексельку :)