как дописать xls файл

Новая тема
"сможете помочь есть такая процедура она выгружает остатки и создает несколько файлов по складам а как сделать чтобы все остатки загружались в один файл

Процедура КнопкаВыгрузитьНажатие(Кнопка) КаталогНаДиске = Новый Файл(ПапкаВыгрузки);
 Если НЕ КаталогНаДиске.Существует() Тогда  
 Ответ = Вопрос( "Каталог """"" + ПапкаВыгрузки + """"" не существует. Создать?",      
 РежимДиалогаВопрос.ДаНет, 10, КодВозвратаДиалога.Нет, , КодВозвратаДиалога.Нет);    
 Если Ответ = КодВозвратаДиалога.Да Тогда      
   СоздатьКаталог(ПапкаВыгрузки);  
   Иначе            Возврат;      
КонецЕсли;
 КонецЕсли;
Макет = ПолучитьМакет("Макет");
ОбластьСклад = Макет.ПолучитьОбласть("Склад");
ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Дата",ТекущаяДата());
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст = "ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто2 КАК Склад,
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
| СУММА(ХозрасчетныйОстатки.КоличествоОстатокДт) КАК Количество,
| ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения КАК Единица
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &Дата,
| Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы)
| И (НЕ Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.МатериалыПереданныеВПереработку))
| И (НЕ Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаВЭксплуатации)),
| ,
| Организация = &Организация) КАК ХозрасчетныйОстатки
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОстатки.Субконто2,
| ХозрасчетныйОстатки.Субконто1
| |УПОРЯДОЧИТЬ ПО
| Склад,
| Номенклатура |ИТОГИ ПО
| Склад"; РезультатЗапроса = Запрос.Выполнить();
ВыборкаПоСкладам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСкладам.Следующий() Цикл ТабДокумент = Новый ТабличныйДокумент;
ОбластьСклад.Параметры.Дата = Формат(ТекущаяДата(),"ДЛФ=DD");
ОбластьСклад.Параметры.Заполнить(ВыборкаПоСкладам);
ТабДокумент.Вывести(ОбластьСклад);
Выборка = ВыборкаПоСкладам.Выбрать();
Пока Выборка.Следующий() Цикл ОбластьНоменклатура.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьНоменклатура);
КонецЦикла;
ТабДокумент.ФиксацияСверху = 5;
ТабДокумент.Записать(ПапкаВыгрузки + СокрП(ВыборкаПоСкладам.Склад) + ".xls",ТипФайлаТабличногоДокумента.XLS97);
КонецЦикла;
КонецПроцедуры"
"Перепишите код таким образом, чтобы создание и запись табличного документа были вне цикла


ТабДокумент = Новый ТабличныйДокумент;

Пока ВыборкаПоСкладам.Следующий() Цикл
 
 ОбластьСклад.Параметры.Дата = Формат(ТекущаяДата(),"ДЛФ=DD");
 ОбластьСклад.Параметры.Заполнить(ВыборкаПоСкладам);
 ТабДокумент.Вывести(ОбластьСклад);
 Выборка = ВыборкаПоСкладам.Выбрать();
    Пока Выборка.Следующий() Цикл
         ОбластьНоменклатура.Параметры.Заполнить(Выборка);
         ТабДокумент.Вывести(ОбластьНоменклатура);
    КонецЦикла;
 
КонецЦикла;

ТабДокумент.ФиксацияСверху = 5;
ТабДокумент.Записать(ПапкаВыгрузки + СокрП(ВыборкаПоСкладам.Склад) + ".xls",ТипФайлаТабличногоДокумента.XLS97);

КонецПроцедуры
"
так он тогда сохранит только последний склад и все
"> так он тогда сохранит только последний склад и все

Почему? Сохранятся все склады. Единственное, убрать из имени файла название склада:
ТабДокумент.Записать(ПапкаВыгрузки + "ОстаткиПоСкладам.xls",ТипФайлаТабличногоДокумента.XLS97);"
так он же в цикле берет данные и ни куда их не записывает и при следующем цикле берет другие данные и в итоге после цикла остаются данные с последнего склада
"Как же не записывает в цикле, а:
ТабДокумент.Вывести(ОбластьСклад); и ТабДокумент.Вывести(ОбластьНоменклатура);"
он выводит последний шаг цикла и все а это один слад а у меня их 14
Такой код выведет все склады. Попробуйте.
"
ТабДокумент = Новый ТабличныйДокумент; выведен из цикла?
"
Читают тему
(гостей: 1)

Быстрый переход