1C-Code → Как сделать → Как выгрузить таблицу значений в Excel
Через табличный документ: заполнить его из таблицы значений и записать в файл с типом XLSX. Работать с Excel через COM на сервере не нужно и обычно нельзя.
Таб = Новый ТабличныйДокумент;
// шапка
Обл = Таб.Область(1, 1, 1, ТЗ.Колонки.Количество());
Для Сч = 0 По ТЗ.Колонки.Количество() - 1 Цикл
Таб.Область(1, Сч + 1).Текст = ТЗ.Колонки[Сч].Заголовок;
КонецЦикла;
// строки
Стр = 2;
Для Каждого Строка Из ТЗ Цикл
Для Сч = 0 По ТЗ.Колонки.Количество() - 1 Цикл
Таб.Область(Стр, Сч + 1).Текст = Строка[ТЗ.Колонки[Сч].Имя];
КонецЦикла;
Стр = Стр + 1;
КонецЦикла;
Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
Он умеет писать и XLSX, и ODS, и MXL, и не требует установленного Excel. Работает и на сервере, и на клиенте одинаково.
Оно требует установленного Excel на той машине, где выполняется код. На сервере его обычно нет и быть не должно. Плюс каждый забытый COM-объект — это повисший процесс Excel в памяти сервера.
Имя — идентификатор для кода, Заголовок — то, что увидит человек. В шапку выгрузки идёт заголовок; если он не задан, платформа подставит имя.
На сервере файл кладут во временное хранилище и отдают клиенту ссылкой, а не пишут в произвольный путь: у серверного процесса свои права и свои каталоги, и «C:\Отчёты» там либо не существует, либо недоступно. На клиенте — НачатьПолучениеФайлов или сохранение через диалог.
Проверить на практике. В тренажёре такой код запускается на настоящем интерпретаторе языка 1С с демонстрационной базой: справочники, документы, регистры. Без установки платформы и без риска для рабочей базы.