Документы и Печать · 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Сформируйте отчёт или откройте печатную форму документа
- 2Нажмите «Файл → Сохранить как» или Ctrl+S
- 3Выберите тип файла «Лист Excel (*.xlsx)»
- 4Укажите папку и имя файла, нажмите «Сохранить»
- 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 через табличный документ
Если выгрузка должна выполняться регулярно — по расписанию, из обработки или по кнопке в форме — файл создаётся кодом. Базовый приём: заполнить табличный документ (объект типа ТабличныйДокумент) и записать его методом Записать() с указанием типа файла.
ТабДок = Новый ТабличныйДокумент;
// ... заполнение табличного документа из макета или вручную ...
ТабДок.Записать("C:\\Выгрузки\\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);Заполнение обычно делается через макет: создаётся макет табличного документа с областями (шапка, строка, подвал), области выводятся в цикле по данным запроса. Это даёт контроль над структурой и оформлением. Альтернатива — построить отчёт на СКД и вывести результат в табличный документ, затем записать его тем же методом Записать().
При работе на сервере учтите: путь к файлу должен быть доступен серверу 1С, а не клиентскому компьютеру. Файл, записанный в «C:\Выгрузки» на сервере, пользователь на своём ПК не увидит. Для передачи на клиент используйте временное хранилище и метод НачатьПолучениеФайлаССервера либо сохраняйте в сетевую папку, доступную обеим сторонам.
Запись напрямую через COM-объект Excel
Третий способ — управление Excel через COM-соединение: 1С запускает Excel как COM-объект и заполняет ячейки напрямую. Это даёт полный доступ к возможностям Excel: формулы, несколько листов, автофильтры, условное форматирование.
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 и объёмы данных небольшие.
Как выбрать действие
Если типовых средств не хватает — например, нужна выгрузка в строго заданный шаблон 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 оставьте для машинного обмена между системами.