Имя: Пароль:
1C
1C 7.7
v7: Забыл как сохранить в xls?
0 Samir
 
05.10.15
11:19
Спр=СоздатьОбъект("Справочник.МестаХранения");
    Спр.НайтиПоКоду("1");
    Основной=Спр.ТекущийЭлемент();
    Спр.НайтиПоКоду("9");
    Самообслуживание=Спр.ТекущийЭлемент();
    Спр.НайтиПоКоду("10");
    Рецептура=Спр.ТекущийЭлемент();
    
    Спс=СоздатьОбъект("СписокЗначений");
    Спс.ДобавитьЗначение(Самообслуживание);
    Спс.ДобавитьЗначение(Рецептура);
    
    xl=СоздатьОбъект("Excel.Application");
    xl.Workbooks.Add();
    
    xl.ScreenUpdating = 0;
    xl.EnableEvents = 0;
    xl.Visible = 0;
      
    Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =     "
        |Период с КД по КД;
        |Отдел = Регистр.ОстаткиТоваров.Отдел;
        |Партия = Регистр.ОстаткиТоваров.Партия;
        |Товар = Регистр.ОстаткиТоваров.Товар;
        |Остаток = Регистр.ОстаткиТоваров.Остаток;
        |Стоимость = Регистр.ОстаткиТоваров.Стоимость;
        |Функция Количество = КонОст(Остаток);
        |Функция Сумма = КонОст(Стоимость);
        |Группировка Отдел;
        |Группировка Товар Без Групп;
        |Группировка Партия;";
        
    ТекстЗапроса = ТекстЗапроса + "
        |Условие(Отдел в Спс);";
        
    ТекстЗапроса = ТекстЗапроса + "
        |Условие(Остаток>=1);";
        
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;          
    
    НПП=0;    
    row=1;
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Наименование");
    ТЗ.НоваяКолонка("Остаток");
    ТЗ.НоваяКолонка("Цена");
    ТЗ.НоваяКолонка("Производитель");
    Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2)=1 Цикл
            Пока Запрос.Группировка(3)=1 Цикл
                НПП=НПП+1;
                Состояние(НПП);
                ТЗ.НоваяСтрока();
                Если ПустоеЗначение(Запрос.Товар.Производитель)=0 Тогда
                    ТЗ.Наименование=Сред(Запрос.Товар,1,(СтрДлина(Запрос.Товар.Наименование) -СтрДлина(Запрос.Товар.Производитель)-1));
                Иначе
                    ТЗ.Наименование=Запрос.Товар.Наименование;
                КонецЕсли;
                ТЗ.Остаток=Цел(Запрос.Остаток);
                ТЗ.Цена=Окр(Запрос.Стоимость/Запрос.Остаток,2);
                ТЗ.Производитель=Строка(Запрос.Товар.Производитель);
                          
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;                
    
    ТЗ.Свернуть("Наименование,Цена,Производитель","Остаток");
    
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
        xl.Cells(row,1).Value=ТЗ.Наименование;
        xl.Cells(row,2).Value=ТЗ.Остаток;
        xl.Cells(row,3).Value=ТЗ.Цена;
        xl.Cells(row,4).Value=ТЗ.Производитель;
        row=row+1;
        Состояние(row);
    КонецЦикла;
    xl.SaveAs("D:\111.xls");
    xl.WorkBooks.Close();
    xl.Quit();



Вопрос: Как сохранить сформированный файл в xls?
SaveAs - не работает,
пробовал в начале - xl.Workbooks.Add("D:\111.xls");
Запамятствовал, яндыкс не помогает, может вопрос не правильно задаю.
Чувствую, что не хватает 1 строчки, но какой?
1 Tatitutu
 
05.10.15
11:28
попробуй вот так

NewBook= xl.Workbooks.Add();
...........
NewBook.SaveAs("D:\111.xls");
xl.Quit();
2 HawkEye
 
05.10.15
11:28
как то так
SaveAs(ИмяФайла,-4143)
3 Samir
 
05.10.15
11:36
(1) Так в конце обработки спрашивает Сохранить Книга1.xls?
4 Samir
 
05.10.15
11:37
(2) а так не работает
5 Гипервизор
 
05.10.15
11:54
(4) ну так ты наверно пытаешься приложение сохранить, а не книгу, совмести (1) и (2)
NewBook = xl.Workbooks.Add();
NewBook.SaveAs(ИмяФайла, -4143);
6 skafandr
 
05.10.15
11:59
Или сразу
xl.WorkBooks.SaveAs("D:\111.xls");
7 HawkEye
 
05.10.15
13:59
(4)
ну епт, голова то зачем на плечах...

xl=СоздатьОбъект("Excel.Application");
РабочаяКнига = xl.Workbooks.Add();
//парам парам пам
РабочаяКнига.SaveAs("D:\111.xls",-4143);
xl.Quit();
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан