Как выгрузить данные из 1С в существующий файл Excel

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

Часто в практической работе возникает задача не просто сформировать новый отчет, а дополнить готовый шаблон или существующий файл Excel новыми данными из 1С (например, расчетными показателями или сведениями из унифицированных форм, таких как Т-13). Рассмотрим подробно, какими способами можно реализовать выгрузку данных в файл Excel средствами платформы 1С:Предприятие.

Способ 1. Использование COM-объекта Excel.Application

Разберем классический подход к программному заполнению ячеек Excel с использованием механизма COM-автоматизации. Этот метод позволяет открыть исходную книгу, заполнить требуемые ячейки на указанном листе и сохранить результат в новый или текущий файл.

Посмотрим на базовый пример реализации:


Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Книга = Excel.Workbooks.Open(ПутьКФайлу);
    Лист = Excel.ActiveSheet;
Исключение
    Предупреждение("Не удалось открыть файл: " + ОписаниеОшибки(), 5);
    Возврат;
КонецПопытки;

Для Каждого Стр Из тзДанные Цикл
    // Записываем значение в указанную строку и колонку
    Лист.Cells(Стр.Номер + 1, колКолонок + 3).Value = СокрЛП(Стр.НайденноеЗначение);
КонецЦикла;

НовоеИмя = СформироватьНовоеИмяФайла(ПутьКФайлу);
Excel.ActiveWorkbook.SaveAs(НовоеИмя);

// Обязательное освобождение ресурсов
Лист = Неопределено;
Excel.Quit();
Excel = Неопределено;

Проанализируем ключевые моменты и правила оптимизации при работе через COMОбъект:

  1. Завершение процессов в памяти: Если внутри цикла возникнет исключение, процесс EXCEL.EXE останется висеть в диспетчере задач операционной системы. Чтобы этого избежать, закрытие приложения через Excel.Quit() и обнуление переменных необходимо оборачивать в блок Попытка ... Исключение ... КонецПопытки.
  2. Отключение визуальных обновлений: При записи больших объемов данных поячеечный вывод работает медленно. Для ускорения работы перед началом цикла рекомендуется отключать отрисовку экрана через свойство Excel.ScreenUpdating = Ложь и подавлять системные предупреждения Excel.DisplayAlerts = Ложь.
  3. Окружение выполнения: Способ работает только в операционной системе Windows при условии, что на рабочем месте пользователя (или на сервере при серверном вызове) установлен пакет Microsoft Excel.

Способ 2. Использование объекта ТабличныйДокумент

Платформа 1С предоставляет возможность читать и сохранять файлы формата Excel без необходимости устанавливать стороннее офисное ПО. Это кроссплатформенный вариант, который стабильно работает как на клиенте, так и на сервере под управлением Linux.

Рассмотрим порядок действий при таком подходе:

  1. Загружаем существующий файл в объект ТабличныйДокумент с помощью метода Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Значение).
  2. Находим необходимые ячейки или строки по координатам и присваиваем им новые значения через свойство Текст.
  3. Сохраняем измененный документ методом Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLSX).

Способ 3. Выгрузка промежуточной таблицы и связывание через формулу ВПР

Если структура итогового файла сложная или часто меняется, можно применить организационно-технический подход:

  1. Выгрузить "сырые" данные из 1С в отдельный плоский файл или на отдельный лист книги Excel (например, в виде таблицы соответствий «Код сотрудника — Значение»).
  2. В итоговом расчетном файле настроить стандартную формулу Excel ВПР (VLOOKUP), которая автоматически подтянет данные из выгруженного листа по ключевому полю.

Особенности получения данных из отчетов типа Т-13

Если требуется выгрузить сведения из сложных типовых печатных форм (например, табеля Т-13), разбор готового макета по номерам колонок часто приводит к сбоям из-за объединенных ячеек и сложной структуры шапки. В таких случаях надежнее получать исходные данные с помощью запроса к регистрам информационной базы или программно формировать таблицу значений на базе типовой схемы компоновки данных (СКД), после чего производить выгрузку чистых показателей.

← На главную