В 8 версии платформы есть замечательная возможность программного сохранения табличного документа в формате Excel. Но хорошего понемногу. При сохранении в xls не сохраняются параметры страницы, и в некоторых версиях офиса в строках с автовысотой обрезается текст.
Представленная процедура предназначена для решения этой проблемы. Конечно не обошлось без старого доброго ОЛЕ.
Процедура УстановитьПараметрыПечатиExcel(ИмяФайла, Ориентация, ПолеСлева = 10, ПолеСправа = 10, ПолеСверху = 10, ПолеСнизу = 10, АвтоВысотаСтрок = Ложь) Экспорт
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = True;
Workbook = Excel.Workbooks.Open(ИмяФайла);
Лист = Workbook.Sheets(1);
Лист.PageSetup.Zoom = False;
Лист.PageSetup.FitToPagesWide = 1; // По ширине листа
Лист.PageSetup.FitToPagesTall = False;
Если Ориентация = ОриентацияСтраницы.Ландшафт Тогда
Лист.PageSetup.Orientation = 2; // xlLandscape
Иначе
Лист.PageSetup.Orientation = 1; // xlPortrait
КонецЕсли;
Лист.PageSetup.LeftMargin = Excel.Application.InchesToPoints(ПолеСлева / 25.4); // Поле слева
Лист.PageSetup.RightMargin = Excel.Application.InchesToPoints(ПолеСправа / 25.4); // Поле справа
Лист.PageSetup.TopMargin = Excel.Application.InchesToPoints(ПолеСверху / 25.4); // Поле сверху
Лист.PageSetup.BottomMargin = Excel.Application.InchesToPoints(ПолеСнизу / 25.4); // Поле снизу
Если АвтоВысотаСтрок Тогда
// Устанавливаем высоту строк
НомерСтроки = 1;
Пока НомерСтроки < 100000 Цикл
Ячейка = Лист.Cells(НомерСтроки, 1);
Строка = Ячейка.EntireRow();
Строка.AutoFit();
Если ПустаяСтрока(Ячейка.Value) Тогда
Прервать;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
КонецЕсли;
Excel.DisplayAlerts = False;
Workbook.Save();
Workbook.Close();
Workbook = Неопределено;
Excel.Quit();
Excel = Неопределено;
Исключение
КонецПопытки;
КонецПроцедуры // УстановитьПараметрыПечатиExcel()
При установке авто высоты строки цикл прерывается, если встречается строка с пустым содержимым текста ячейки. Сделано не универсально, поэтому вы можете определить свой алгоритм выхода из цикла.
Надеюсь, кому-нибудь пригодится.