Вместо Таб.Показать() используем глобальную функцию — и отчет показывается сразу в Excel в удобоваримом виде — с форматированием колонок по ширине, автофильтром и ярлычками листов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Процедура глОткрытьВЭкселе(Таб,ИмяФайла="",НеИзменятьВысотуСтроки=0) Экспорт Попытка // запускаем Excel-Server Excel = СоздатьОбъект("Excel.Application"); Исключение Excel = 0; Предупреждение("MS Excel не загружен!"); Возврат; КонецПопытки; Если ТипЗначенияСтр(Таб)="Строка" Тогда Excel.WorkBooks.Open(Таб); Иначе Если НеИзменятьВысотуСтроки=0 Тогда ШиринаТаблицы=Таб.ШиринаТаблицы(); Область=Таб.Область(1,1,Таб.ВысотаТаблицы(),ШиринаТаблицы); Область.ВысотаСтроки(12); КонецЕсли; Если Найти(ИмяФайла,":")=0 Тогда ИмяФайла=КаталогПользователя()+ИмяФайла; КонецЕсли; Если Найти(Врег(ИмяФайла),"XLS")=0 Тогда ИмяФайла=ИмяФайла+".xls"; КонецЕсли; Таб.Записать(?(ПустоеЗначение(ИмяФайла)=0,ИмяФайла,КаталогПользователя()+"Таблица.xls"),"XLS"); Excel.WorkBooks.Open(ИмяФайла); Excel.Visible = 0; //добавляем автофильтр и форматирование колонок по ширине Excel.Columns.AutoFit(); Range = Excel.Range(Excel.Cells(1, 1), Excel.Cells(1, ШиринаТаблицы)); Range.S_elect(); Range.AutoFilter(); //показываем вечно прячущиеся ярлычки листов Excel.ActiveWindow.DisplayWorkbookTabs = -1; Excel.ActiveWindow.TabRatio = 0.25; КонецЕсли; Excel.Visible=1; Excel=0; КонецПроцедуры |
mikukrnet