Имя: Пароль:
1C
1С v8
Выгрузка в ексель табличной части документов
0 radonn17
 
20.03.12
17:56
Здравствуйте!!Я писал уже на форуме про выгрузку, но там была другая проблема.....мне подсказали что избавиться от нее нужно циклами..всё готово, но теперь возникла другая проблема непосредственно выгрузки в ексель...надо чтобы каждый док сохранялся на вой лист...т.е. цикл по всем докам есть...а теперь надо сделать цикл чтоб для них создавались новые листы?

как есть сейчас

Процедура ВыгрузитьВЭксель()    
ВыборкаДокументов= Документы.Журнал.Выбрать();    
   
Пока ВыборкаДокументов.Следующий() цикл  
Попытка
Эксель = Новый COMОбъект("Excel.Application")
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Open("C:\Users\Администратор\Downloads\1с");
//Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
//Лист = Книга.Sheets.Add();


//Книга = Эксель.WorkBooks.Add();
//Лист = Книга.WorkSheets(1);
//Лист = Книга.Sheets.Add();
Сообщить("Док номер " + ВыборкаДокументов.Номер);
НомерСтроки=0;
Для каждого Строка Из   ВыборкаДокументов.Ведомость Цикл
НомерСтроки=НомерСтроки+1;

Лист.Cells(НомерСтроки, 1).Value = Строка(Строка.Студент);
Лист.Cells(НомерСтроки, 2).Value = Строка(Строка.Понедельник);
Лист.Cells(НомерСтроки, 3).Value = Строка(Строка.Вторник);
Лист.Cells(НомерСтроки, 4).Value = Строка(Строка.Среда);
Лист.Cells(НомерСтроки, 5).Value = Строка(Строка.Четверг);
Лист.Cells(НомерСтроки, 6).Value = Строка(Строка.Пятница);
Лист.Cells(НомерСтроки, 7).Value = Строка(Строка.Суббота);
Лист.Cells(НомерСтроки, 8).Value = Строка(Строка.Воскресенье);


КонецЦикла;

КонецЦикла;  
//Попытка
//Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
//Исключение
//Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
//Возврат;
//КонецПопытки;
Эксель.Application.Quit();

КонецПроцедуры
1 zak555
 
20.03.12
17:57
> Я писал уже на форуме про выгрузку

блi, сохрани как эксель
2 mikecool
 
20.03.12
17:57
главное не забыть - количество листов ограниченно )
3 radonn17
 
20.03.12
18:00
(1) у меня открывается книга екселя в которую записываться будет,а всё что было затирается..
(2) ну думаю мне хватит)
4 radonn17
 
21.03.12
14:43
(1) чё то я действительно хрень какую-то делал...
вот подправил код

&НаКлиенте
Процедура СохранитьВЭксель(Команда)
   ВыгрузитьВЭксель();    
КонецПроцедуры


&НаСервере
Процедура ВыгрузитьВЭксель()    
ВыборкаДокументов= Документы.Задание.Выбрать();    
Пока ВыборкаДокументов.Следующий() цикл  
Попытка
Эксель = Новый COMОбъект("Excel.Application")
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;



Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);

НомерСтроки=НомерСтроки+1;

Лист.Cells(НомерСтроки, 1).Value = Строка(Строка.Студент);
Лист.Cells(НомерСтроки, 2).Value = Строка(Строка.ПН);
Лист.Cells(НомерСтроки, 3).Value = Строка(Строка.ВТ);
Лист.Cells(НомерСтроки, 4).Value = Строка(Строка.СР);
Лист.Cells(НомерСтроки, 5).Value = Строка(Строка.ЧТ);
Лист.Cells(НомерСтроки, 6).Value = Строка(Строка.ПТ);
Лист.Cells(НомерСтроки, 7).Value = Строка(Строка.СБ);
Лист.Cells(НомерСтроки, 8).Value = Строка(Строка.ВС);


КонецЦикла;  
КонецЦикла;  
Попытка
Книга.SaveAs("C:\Users\Администратор\Downloads\1с");
Исключение
Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
Возврат;
КонецПопытки;
Эксель.Application.Quit();

КонецПроцедуры

но все равно проблему  с отдельным листом не знаю как решить....