используется следующий простой метод.
1. Сначала сохраняем табличное поле как файл формата "Документ HTML4" (//infostart.ru/public/77128/).
2. Полученный файл программно открываем и пересохраняем в нужном формате Excel.
Для реализации - в реквизиты формы отчета добавляем "ПутьКФайлу" - тип строка, к которому добавим функцию "ПутьКФайлуНачалоВыбора"
&НаКлиенте Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; РежимДиалога = РежимДиалогаВыбораФайла.Сохранение; ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога); ДиалогВыбораФайла.МножественныйВыбор = Ложь; ДиалогВыбораФайла.Заголовок = "Укажите путь выгрузки файла..."; ДиалогВыбораФайла.ПолноеИмяФайла = ПутьКФайлу; ДиалогВыбораФайла.Фильтр = "Excel(2007)(*.xlsx)|*.xlsx"; Если ДиалогВыбораФайла.Выбрать() Тогда ПутьКФайлу = ДиалогВыбораФайла.ПолноеИмяФайла; КонецЕсли; КонецПроцедурыТакже на форму выводим кнопку "ФормаКнопкаСохранитьВЭксель", с командой "СохранитьВЭксель"
&НаКлиенте Процедура СохранитьВЭксель(Команда)
ИмяФайлаHTML4 = СтрЗаменить(ПутьКФайлу,"xlsx","htm");
Результат.Записать(ИмяФайлаHTML4,ТипФайлаТабличногоДокумента.HTML4);
Попытка
ЭксельОбъект = Новый COMОбъект("Excel.Application");
ЭксельОбъект.Application.Visible = Ложь;
Книга = ЭксельОбъект.Application.Workbooks.Open(ИмяФайлаHTML4);
Книга.Windows(1).Visible = Истина;
Книга.Application.DisplayAlerts = False;
Книга.SaveAs(ПутьКФайлу,51);
Книга.Close();
ЭксельОбъект.Application.Quit();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
КонецПроцедуры
Дополнительно.Для того чтобы не было потери информации (особенно в части чисел), рекомендуется использовать в 1С, при выводе числовых показателей, следующий формат сумм:
ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧГ=0
P.S. Исправлена строчка кода (приводила к невозможности в некоторых случаях увидеть полученный результат), новая строка выглядит так:
Книга.Windows(1).Visible = Истина;
Вступайте в нашу телеграмм-группу Инфостарт
