Выгрузить табличную часть в Excel

Задача: выгрузить табличную часть формы в файл формата XLSX. К сожалению на прямую это не сделать, но зато мы можем воспользоваться функционалом компонента ПостроительОтчета, который в свою очередь понимает на входе таблицу значений. В итоге нам остаётся лишь выгрузить табличную часть в таблицу значений, которую в свою оочередь скормить построителю отчетов. На выходе будет ТабличныйДокумент, который уже штатно может сохраняться в т.ч. и в формат xlsx. Код получается примерно такой::

&НаСервере
Функция ЭкспортВExcelНаСервере()
	ТабДок = Новый ТабличныйДокумент;
	
		Тз = Новый ТаблицаЗначений;
		тз.Колонки.Добавить("Отделение");
		тз.Колонки.Добавить("Подразделение");
		тз.Колонки.Добавить("ЛС");
		тз.Колонки.Добавить("КодСопоставления");
		тз.Колонки.Добавить("ДатаРождения");
		тз.Колонки.Добавить("МестоРождения");
		тз.Колонки.Добавить("СерияПаспорта");
		тз.Колонки.Добавить("НомерПаспорта");
		тз.Колонки.Добавить("СерияНомерПаспорта");
		тз.Колонки.Добавить("РезультатПроверки");
		
		для каждого стр из объект.РезультатСопоставления цикл
			нс=тз.Добавить();		
			нс.Отделение=стр.Отделение;
			нс.Подразделение=стр.Подразделение;
			нс.ЛС=стр.ЛС;
			нс.КодСопоставления=стр.КодСопоставления;
			нс.ДатаРождения=стр.ДатаРождения;
			нс.МестоРождения=стр.МестоРождения;
			нс.СерияПаспорта=стр.СерияПаспортаС;
			нс.НомерПаспорта=стр.НомерПаспортаС;
			нс.СерияНомерПаспорта=стр.СерияНомерПаспорта;
			нс.РезультатПроверки=стр.РезультатПроверки;
		конеццикла;
		
		Построитель = Новый ПостроительОтчета;
		Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Тз);
		Построитель.Выполнить();
		Построитель.Вывести(ТабДок);
		
	ИмяВременногоФайлаХар = ПолучитьИмяВременногоФайла(".xlsx");		
	ТабДок.Записать(ИмяВременногоФайлаХар,ТипФайлаТабличногоДокумента.XLSX);
	сообщить(ИмяВременногоФайлаХар);
	
	Двоичное=Новый ДвоичныеДанные(ИмяВременногоФайлаХар);
	Адрес=ПоместитьВоВременноеХранилище(Двоичное,ЭтаФорма.УникальныйИдентификатор);	
	
	Возврат Адрес;
	
КонецФункции

&НаКлиенте
Процедура ЭкспортВExcel(Команда)
	Адрес=ЭкспортВExcelНаСервере();
	
	Описание=Новый ОписаниеПередаваемогоФайла(ПолучитьИмяВременногоФайла(".xlsx"),Адрес);
	МассивОписаний=Новый Массив;
	МассивОписаний.Добавить(Описание);
	ПолучитьФайлы(МассивОписаний,,,Ложь);	
	
	 Для Каждого фф Из МассивОписаний Цикл
	  ЗапуститьПриложение(фф.Имя);
	 КонецЦикла;	
	
КонецПроцедуры

Пользователь нажимает кнопку «Экспорт в эксель», на сервере формируется файл и передаётся на клиент. На клиенте он открывается приложением по умолчанию для данного формата файла. Код получился кросс платформенный, что в наше время очень актуально.