Часто в практической работе возникает задача не просто сформировать новый отчет, а дополнить готовый шаблон или существующий файл Excel новыми данными из 1С (например, расчетными показателями или сведениями из унифицированных форм, таких как Т-13). Рассмотрим подробно, какими способами можно реализовать выгрузку данных в файл Excel средствами платформы 1С:Предприятие.
Разберем классический подход к программному заполнению ячеек Excel с использованием механизма COM-автоматизации. Этот метод позволяет открыть исходную книгу, заполнить требуемые ячейки на указанном листе и сохранить результат в новый или текущий файл.
Посмотрим на базовый пример реализации:
Попытка
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Лист = Excel.ActiveSheet;
Исключение
Предупреждение("Не удалось открыть файл: " + ОписаниеОшибки(), 5);
Возврат;
КонецПопытки;
Для Каждого Стр Из тзДанные Цикл
// Записываем значение в указанную строку и колонку
Лист.Cells(Стр.Номер + 1, колКолонок + 3).Value = СокрЛП(Стр.НайденноеЗначение);
КонецЦикла;
НовоеИмя = СформироватьНовоеИмяФайла(ПутьКФайлу);
Excel.ActiveWorkbook.SaveAs(НовоеИмя);
// Обязательное освобождение ресурсов
Лист = Неопределено;
Excel.Quit();
Excel = Неопределено;
Проанализируем ключевые моменты и правила оптимизации при работе через COMОбъект:
EXCEL.EXE останется висеть в диспетчере задач операционной системы. Чтобы этого избежать, закрытие приложения через Excel.Quit() и обнуление переменных необходимо оборачивать в блок Попытка ... Исключение ... КонецПопытки.Excel.ScreenUpdating = Ложь и подавлять системные предупреждения Excel.DisplayAlerts = Ложь.Платформа 1С предоставляет возможность читать и сохранять файлы формата Excel без необходимости устанавливать стороннее офисное ПО. Это кроссплатформенный вариант, который стабильно работает как на клиенте, так и на сервере под управлением Linux.
Рассмотрим порядок действий при таком подходе:
ТабличныйДокумент с помощью метода Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение).Текст.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX).Если структура итогового файла сложная или часто меняется, можно применить организационно-технический подход:
Если требуется выгрузить сведения из сложных типовых печатных форм (например, табеля Т-13), разбор готового макета по номерам колонок часто приводит к сбоям из-за объединенных ячеек и сложной структуры шапки. В таких случаях надежнее получать исходные данные с помощью запроса к регистрам информационной базы или программно формировать таблицу значений на базе типовой схемы компоновки данных (СКД), после чего производить выгрузку чистых показателей.