с просторов:
Процедура СохранитьОтчетыВФайлExcelСЛистами(СписокОтчетов, ИмяФайла) Экспорт
Эксель = New COMObject("Excel.Application");
Первый = истина;
//Для защиты от дублей имен
СооИмена = Новый СписокЗначений();
//Перебираем отчеты в MXL
Для Каждого Элемент ИЗ СписокОтчетов Цикл
ТабДок = Элемент.Значение;
//ТабДок.Показать();
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLS");
ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS); //Сохраняем в временный файл
ТекКнига = Эксель.Workbooks.Open(ИмяВременногоФайла);
Если Первый Тогда
Книга = ТекКнига; //Первый файл и есть результат, чтобы сохранялись цвета
Иначе
ТекКнига.Sheets(
1).Copy(, Книга.Sheets(Книга.Sheets.Count)); //Copy(Before, After)
КонецЕсли;
//Защита от одинаковых ярлыков
ТекБазаНаименование = Элемент.Представление;
ТекНаименование = ТекБазаНаименование; СчНаименований = 2;
Пока СооИмена.НайтиПоЗначению(ТекНаименование) <> Неопределено Цикл
ТекНаименование = ТекБазаНаименование + "(" + СчНаименований + ")";
СчНаименований = СчНаименований + 1;
КонецЦикла;
СооИмена.Добавить(ТекНаименование);
Книга.Sheets(Книга.Sheets.Count).Name = ТекНаименование; //Переименовываем
Если Первый Тогда
//Делаем доступными ярлыки листов
Эксель.ActiveWindow.DisplayWorkbookTabs = 1;
Эксель.ActiveWindow.TabRatio = 0.6;
Первый = ложь;
Иначе
ТекКнига.Close();
КонецЕсли;
КонецЦикла;
//Удаляем, чтобы не переспрашивал
Файл = Новый Файл(ИмяФайла);
Если Файл.Существует() Тогда
УдалитьФайлы(ИмяФайла);
КонецЕсли;
Книга.SaveAs(ИмяФайла, -4143); //xlWorkbookNormal -4143 Workbook normal
Книга.Close();
КонецПроцедуры