1C-CodeКак сделать → Как выгрузить таблицу значений в Excel

Как выгрузить таблицу значений в Excel из 1С

Через табличный документ: заполнить его из таблицы значений и записать в файл с типом XLSX. Работать с Excel через COM на сервере не нужно и обычно нельзя.

Код

Таб = Новый ТабличныйДокумент;

// шапка
Обл = Таб.Область(1, 1, 1, ТЗ.Колонки.Количество());
Для Сч = 0 По ТЗ.Колонки.Количество() - 1 Цикл
	Таб.Область(1, Сч + 1).Текст = ТЗ.Колонки[Сч].Заголовок;
КонецЦикла;

// строки
Стр = 2;
Для Каждого Строка Из ТЗ Цикл
	Для Сч = 0 По ТЗ.Колонки.Количество() - 1 Цикл
		Таб.Область(Стр, Сч + 1).Текст = Строка[ТЗ.Колонки[Сч].Имя];
	КонецЦикла;
	Стр = Стр + 1;
КонецЦикла;

Таб.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);

Что здесь важно

1. Табличный документ — штатный путь

Он умеет писать и XLSX, и ODS, и MXL, и не требует установленного Excel. Работает и на сервере, и на клиенте одинаково.

2. COM-подключение к Excel — крайняя мера

Оно требует установленного Excel на той машине, где выполняется код. На сервере его обычно нет и быть не должно. Плюс каждый забытый COM-объект — это повисший процесс Excel в памяти сервера.

3. Заголовок колонки и её имя — разные вещи

Имя — идентификатор для кода, Заголовок — то, что увидит человек. В шапку выгрузки идёт заголовок; если он не задан, платформа подставит имя.

Где обычно спотыкаются

На сервере файл кладут во временное хранилище и отдают клиенту ссылкой, а не пишут в произвольный путь: у серверного процесса свои права и свои каталоги, и «C:\Отчёты» там либо не существует, либо недоступно. На клиенте — НачатьПолучениеФайлов или сохранение через диалог.

Проверить на практике. В тренажёре такой код запускается на настоящем интерпретаторе языка 1С с демонстрационной базой: справочники, документы, регистры. Без установки платформы и без риска для рабочей базы.

Открыть тренажёр

Разобраться глубже

Другие вопросы

Как получить остатки на дату запросом в 1С Как программно провести документ в 1С Как избавиться от запроса в цикле в 1С Как добавить колонку в таблицу значений программно Как свернуть таблицу значений Как найти строку в таблице значений Как выгрузить колонку таблицы значений в массив Как превратить массив в таблицу значений Как передать таблицу значений с сервера на клиент Как отобрать строки в таблице значений Как отсортировать таблицу значений Как записать движения регистра накопления программно Чем регистр остатков отличается от регистра оборотов Как контролировать остатки при проведении документа Как добавить реквизит расширением конфигурации Как сравнить две таблицы значений Какие бывают соединения в запросе 1С и чем отличаются Чем дерево значений отличается от таблицы значений Как задать условное оформление таблицы на форме