К статье
Практический материал

Документы и Печать · 10 мин

Как создать файл Excel в 1С: все рабочие способы

Как создать файл Excel из 1С: сохранение табличного документа, выгрузка отчётов и списков, программная запись через ТабличныйДокумент и COM-объект, типичные ошибки.

Создать файл Excel из 1С можно несколькими способами: сохранить уже сформированный табличный документ (отчёт, печатную форму, список), выгрузить данные типовой обработкой или записать файл программно из встроенного языка. Выбор зависит от задачи: разовая выгрузка отчёта делается в пару кликов, регулярный обмен — через обработку или код.

Важно понимать: 1С не работает с Excel напрямую как с «родным» форматом. Платформа оперирует табличными документами, которые умеют сохраняться в форматах XLS, XLSX, ODS, CSV и других. Поэтому почти любой способ сводится к одному действию — получить табличный документ и записать его на диск в нужном формате.

Ниже разобраны все практические сценарии: от простого «Файл → Сохранить как» до программной выгрузки через COM-объект Excel, с ограничениями каждого метода, проверкой результата и разбором типичных ошибок.

Сохранение отчёта или печатной формы в Excel через интерфейс

Самый простой сценарий: у вас уже есть сформированный отчёт, печатная форма документа или любой табличный документ на экране. Чтобы превратить его в файл Excel, откройте меню «Файл → Сохранить как…» либо нажмите сочетание клавиш Ctrl+S, когда фокус стоит на табличном документе. В диалоге сохранения укажите имя файла и в поле «Тип файла» выберите «Лист Excel (.xlsx)» или «Лист Excel 97-2003 (.xls)».

Формат XLSX предпочтительнее: он поддерживает больше строк и лучше совместим с современными версиями Excel. Старый XLS имеет ограничение около 65 тысяч строк на лист — при выгрузке крупных отчётов данные могут обрезаться без предупреждения.

После сохранения откройте файл в Excel и убедитесь, что структура таблицы, объединённые ячейки и числовые форматы перенеслись корректно. Сложные печатные формы с многоуровневыми шапками иногда «разваливаются» — колонки смещаются, а объединения исчезают.

Порядок действий
  1. 1
    Сформируйте отчёт или откройте печатную форму документа
  2. 2
    Нажмите «Файл → Сохранить как» или Ctrl+S
  3. 3
    Выберите тип файла «Лист Excel (*.xlsx)»
  4. 4
    Укажите папку и имя файла, нажмите «Сохранить»
  5. 5
    Откройте файл в Excel и проверьте структуру и данные

Выгрузка списков и табличных частей в Excel

Списки документов, справочников и табличные части выгружаются иначе, чем отчёты: у них нет кнопки «Сохранить как». В типовых конфигурациях (УТ, ERP, Бухгалтерия) используйте команду «Ещё → Вывести список…». В появившемся окне отметьте нужные колонки, нажмите «ОК» — список сформируется как табличный документ, который уже можно сохранить в Excel стандартным способом.

Для табличной части документа (например, товаров в накладной) аналогично: правой кнопкой по табличной части → «Вывести список». Если такой команды нет, выделите строки, скопируйте их через Ctrl+C и вставьте в Excel — 1С передаёт данные в буфер обмена в табличном виде, и вставка в Excel обычно проходит корректно.

Учитывайте ограничение: копирование через буфер обмена пригодно для сотен и тысяч строк, но для десятков тысяч строк надёжнее «Вывести список» с последующим сохранением.

Выбор формата: XLSX, XLS, CSV или MXL

Платформа 1С поддерживает несколько форматов записи табличного документа, и выбор влияет на то, что получит пользователь на выходе. XLSX — основной рабочий вариант для передачи данных в Excel. CSV подходит, когда нужен «плоский» файл для загрузки в другую систему: в нём нет форматирования, объединённых ячеек и нескольких листов, только значения через разделитель.

MXL — внутренний формат табличных документов 1С. Он сохраняет всё оформление идеально, но открывается только в 1С, поэтому для обмена с пользователями Excel не подходит.

ФорматКогда использоватьОграничения
XLSXПередача отчётов и таблиц пользователям ExcelСложные макеты могут искажаться
XLSСовместимость со старыми версиями ExcelОколо 65 тыс. строк на лист
CSVОбмен данными с другими системамиОдин лист, без форматирования, проблемы с кодировкой
MXLХранение и обмен внутри 1СНе открывается в Excel

Программное создание файла Excel через табличный документ

Если выгрузка должна выполняться регулярно — по расписанию, из обработки или по кнопке в форме — файл создаётся кодом. Базовый приём: заполнить табличный документ (объект типа ТабличныйДокумент) и записать его методом Записать() с указанием типа файла.

bsl
ТабДок = Новый ТабличныйДокумент;
// ... заполнение табличного документа из макета или вручную ...
ТабДок.Записать("C:\\Выгрузки\\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Заполнение обычно делается через макет: создаётся макет табличного документа с областями (шапка, строка, подвал), области выводятся в цикле по данным запроса. Это даёт контроль над структурой и оформлением. Альтернатива — построить отчёт на СКД и вывести результат в табличный документ, затем записать его тем же методом Записать().

При работе на сервере учтите: путь к файлу должен быть доступен серверу 1С, а не клиентскому компьютеру. Файл, записанный в «C:\Выгрузки» на сервере, пользователь на своём ПК не увидит. Для передачи на клиент используйте временное хранилище и метод НачатьПолучениеФайлаССервера либо сохраняйте в сетевую папку, доступную обеим сторонам.

Типичные ошибки
01
Запись файла на сервере в локальный путь клиента — пользователь не находит файл у себя на диске
02
Использование формата XLS для больших выгрузок — строки сверх лимита теряются
03
Отсутствие проверки занятости файла — если файл открыт в Excel, запись завершится ошибкой
04
Выгрузка чисел как строк — в Excel суммы не считаются без преобразования

Запись напрямую через COM-объект Excel

Третий способ — управление Excel через COM-соединение: 1С запускает Excel как COM-объект и заполняет ячейки напрямую. Это даёт полный доступ к возможностям Excel: формулы, несколько листов, автофильтры, условное форматирование.

bsl
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);
Лист.Cells(1, 1).Value = "Номенклатура";
Книга.SaveAs("C:\\Выгрузки\\Данные.xlsx");
Excel.Quit();

У метода серьёзные ограничения. На компьютере, где выполняется код, должен быть установлен Microsoft Excel — на серверах 1С его обычно нет, поэтому COM-подход работает в основном в файловых базах или при клиентском выполнении. Кроме того, пословая запись в ячейки через COM работает медленно: выгрузка десятков тысяч строк может занять минуты, тогда как запись табличного документа выполняется за секунды.

Обязательно завершайте работу вызовом Quit() и освобождением объекта, иначе в системе останутся «висеть» невидимые процессы EXCEL.EXE, которые со временем блокируют файлы и потребляют память.

Проверка результата и решение типичных проблем

После создания файла проверьте три вещи: файл открывается без предупреждений Excel, количество строк совпадает с данными в 1С, числовые колонки распознаются как числа (по ним работает автосумма). Если Excel при открытии сообщает, что «формат файла не соответствует расширению», скорее всего файл записан в одном формате, а назван другим расширением — перезапишите с корректным типом.

Частая жалоба — числа и даты, выгруженные как текст. Это происходит, когда в табличный документ значения выводятся строковым представлением. В макете задайте ячейкам правильный тип значения или выводите в табличный документ сами значения, а не их строковое представление через Строка() или Формат().

Контрольные точки

Как проверить результат

Открытие файла
Норма

Excel открывает файл без предупреждений

Тревожный признак

Сообщение о несоответствии формата или повреждении

Числовые колонки
Норма

Автосумма в Excel считает значения

Тревожный признак

Числа выровнены влево и не суммируются — это текст

Полнота данных
Норма

Число строк совпадает с отчётом в 1С

Тревожный признак

Строк меньше — вероятно обрезание лимитом XLS

Какой способ выбрать под вашу задачу

Разовая выгрузка готового отчёта — только «Сохранить как», ничего программировать не нужно. Регулярная выгрузка по кнопке или расписанию — программная запись табличного документа. Тонкая настройка листов, формул и оформления Excel — COM-объект, если на машине установлен Excel и объёмы данных небольшие.

Маршрут решения

Как выбрать действие

Нужно один раз сохранить сформированный отчётИспользуйте «Файл → Сохранить как» с типом XLSX
Выгрузка выполняется регулярно или по расписаниюЗаписывайте табличный документ методом Записать() в коде
Нужны формулы, несколько листов и оформление ExcelИспользуйте COM-объект Excel при установленном Excel
Файл нужен для загрузки в другую системуВыгружайте в CSV и согласуйте кодировку и разделитель

Если типовых средств не хватает — например, нужна выгрузка в строго заданный шаблон Excel с формулами — рассмотрите готовые обработки или доработку через расширение конфигурации, чтобы не менять типовой код.

Итог

Что важно запомнить

Любой файл Excel из 1С создаётся через табличный документ: вручную — командой «Сохранить как», программно — методом Записать() с типом XLSX. COM-объект нужен только для сложного оформления и требует установленного Excel. После выгрузки всегда проверяйте полноту строк и типы данных в числовых колонках.

Частые вопросы

Можно ли создать файл Excel из 1С без установленного Excel?

Да. Сохранение табличного документа в форматы XLSX, XLS и CSV выполняется средствами платформы и не требует установленного Excel. Установленный пакет нужен только для работы через COM-объект и для открытия результата.

Почему при открытии файла Excel пишет, что формат не соответствует расширению?

Файл записан в одном формате, а сохранён с другим расширением — например, табличный документ записан как MXL, но назван файлом .xlsx. Пересохраните файл, явно выбрав тип «Лист Excel (*.xlsx)», либо в коде укажите правильный ТипФайлаТабличногоДокумента.

Как выгрузить в Excel больше 65 тысяч строк?

Используйте формат XLSX — он поддерживает значительно больший объём строк на лист. Устаревший XLS физически ограничен, и лишние строки при записи теряются. Если объём превышает и возможности XLSX, разбейте выгрузку на несколько файлов или листов.

Почему числа после выгрузки в Excel не суммируются?

Значения попали в файл как текст. Причина обычно в том, что в табличный документ выводилось строковое представление числа или в макете ячейке задан текстовый тип. Выводите в табличный документ сами числовые значения и проверьте формат ячеек макета.

Как сохранить файл на компьютер пользователя, если код выполняется на сервере?

Запишите файл во временный файл на сервере, поместите его во временное хранилище, а на клиенте получите через НачатьПолучениеФайлаССервера или откройте диалог сохранения. Либо записывайте файл в общую сетевую папку, доступную и серверу, и пользователю.

Чем CSV хуже XLSX для выгрузки?

CSV не хранит форматирование, типы данных, объединённые ячейки и поддерживает только один лист. Дополнительно возникают вопросы кодировки и разделителя при открытии в Excel. Для передачи отчётов людям используйте XLSX, а CSV оставьте для машинного обмена между системами.