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

Отчеты и Аналитика · 12 мин

Как при сохранении файла в Excel из 1С сохранить формат текста

Разбираем, почему при выгрузке из 1С в Excel теряется форматирование текста, и как сохранить шрифты, переносы, объединения ячеек и числовые форматы в типовых и самописных отчетах.

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

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

Ниже разберем, какие форматы сохранения доступны в 1С, чем они отличаются, как настроить табличный документ, чтобы форматирование пережило выгрузку, и что делать, если файл уже сохранен с потерями.

Какие форматы сохранения предлагает 1С и что выбрать

При сохранении табличного документа через меню «Файл → Сохранить как» (или «Сохранить копию») 1С предлагает несколько типов файлов: «Лист Excel (*.xlsx)», «Лист Excel 95/97», «Электронная таблица OpenDocument», HTML, PDF, MXL и другие. От выбора типа напрямую зависит, какая часть форматирования дойдет до Excel.

Оптимальный вариант для передачи форматирования — современный формат XLSX. Он корректно переносит шрифты, цвета, границы, объединенные ячейки, переносы по словам и числовые форматы. Устаревший формат «Лист Excel 95/97» имеет ограничения по количеству строк и хуже передает оформление, его стоит использовать только если файл нужно открыть в очень старой версии Excel.

Формат HTML сохраняет внешний вид, но при открытии такого файла в Excel часто ломаются типы данных: числа становятся текстом, даты — строками. PDF вообще не предназначен для редактирования, это «отпечаток» документа. Если цель — рабочий файл Excel с сохраненным форматом текста, выбирайте именно XLSX.

Сравнение вариантов сохранения

Лист Excel (<em>.xlsx)

Лучший перенос шрифтов, границ, объединений и форматов чисел. Рекомендуемый вариант.

Лист Excel 95/97 (</em>.xls)

Подходит только для старых версий Excel, есть ограничения на объем и оформление.

HTML-документ

Сохраняет вид, но ломает типы данных: числа и даты могут стать текстом.

PDF

Фиксирует внешний вид для печати, но не редактируется в Excel.

Копирование через буфер обмена

Переносит значения, но часто теряет объединения, ширину колонок и форматы.

Как сохранить табличный документ через интерфейс без потери форматирования

Самый простой сценарий — сохранение уже сформированного отчета или печатной формы. Откройте табличный документ, выберите «Файл → Сохранить как» (в некоторых конфигурациях — кнопка с дискетой или пункт «Сохранить копию»), укажите тип файла «Лист Excel (*.xlsx)» и папку для сохранения.

Перед сохранением проверьте, как выглядит документ на экране: все, что видно в табличном документе 1С, в подавляющем большинстве случаев переносится в Excel один в один. Если на экране текст обрезан из-за узкой колонки, в Excel он тоже окажется обрезанным визуально, хотя значение в ячейке сохранится полностью.

После сохранения откройте файл в Excel и проверьте ключевые элементы: переносы строк внутри ячеек, объединенные шапки, числовые форматы (разделители тысяч, количество знаков после запятой), даты. Если что-то отображается иначе — проблема обычно в исходном макете, а не в механизме сохранения.

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

Почему форматирование теряется: типичные причины

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

Вторая причина — «текстовое» форматирование в макете. Если разработчик сформировал видимое оформление с помощью пробелов, символов подчеркивания или вставил несколько строк текста в одну ячейку без включенного свойства переноса, Excel интерпретирует это по-своему. Например, длинный текст без переноса по словам вылезет за границы ячейки или обрежется.

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

Типичные ошибки при выгрузке
01
Копирование через буфер обмена вместо «Сохранить как» — теряются объединения и ширина колонок
02
Сохранение в формат Excel 95/97 — ограничения по строкам и оформлению
03
Числа и даты, записанные в макете строкой — в Excel становятся текстом и не участвуют в расчетах
04
Отключенное свойство «Переносить» у многострочных ячеек — текст обрезается или растягивает строку
05
Редактирование макета под конкретную выгрузку без копии — риск испортить типовую печатную форму

Настройка табличного документа для корректной выгрузки

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

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

Числовые значения записывайте в ячейки как числа, а вид отображения задавайте через свойство «Формат» (форматную строку). Например, форматная строка вида «ЧЦ=15; ЧДЦ=2; ЧРГ= » даст разделители разрядов и два знака после запятой, и этот формат сохранится в Excel как числовой. Даты записывайте значением типа «Дата» с форматной строкой — тогда Excel получит настоящую дату, а не текст.

bsl
ТабДок = Новый ТабличныйДокумент;
Область = ТабДок.Область("R1C1");
Область.Текст = "Длинное наименование товара с переносом";
Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
Область.Шрифт = Новый Шрифт(, , Истина);

ОбластьЧисло = ТабДок.Область("R2C1");
ОбластьЧисло.Текст = "";
ОбластьЧисло.СодержитЗначение = Истина;
ОбластьЧисло.Значение = 1234567.89;
ОбластьЧисло.Формат = "ЧЦ=15; ЧДЦ=2; ЧРГ= ";

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

Программная выгрузка: метод Записать и тип файла

При программном сохранении ключевую роль играет метод Записать() табличного документа и второй параметр — тип файла. Указывайте ТипФайлаТабличногоДокумента.XLSX: это гарантирует, что 1С использует современный механизм экспорта с полной передачей оформления.

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

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

Выгрузка через COM-объект Excel: когда это оправдано

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

Однако у метода есть серьезные ограничения. COM-автоматизация требует установленного Excel на компьютере, где выполняется код, поэтому на сервере 1С без установленного Office этот способ не работает. Кроме того, COM-выгрузка заметно медленнее записи табличного документа, особенно на больших объемах.

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

Как проверить результат и исправить частые проблемы

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

Если числа стали текстом, источник проблемы — в макете: значение записывалось строкой. Временное решение в Excel — преобразование «текст в число», но правильное исправление делается в 1С: запись значения с типом «Число» и форматной строкой вместо формирования строки.

Если пропали переносы строк внутри ячейки, проверьте свойство «Переносить» у соответствующей области макета. Если обрезаны длинные тексты — увеличьте высоту строки или включите автоподбор высоты. Эти настройки задаются в макете 1С и корректно переносятся в XLSX.

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

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

Суммы в колонках
Норма

Выделение колонки показывает сумму в строке состояния Excel

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

Сумма не считается, слева от значений зеленый треугольник — это текст

Даты
Норма

Даты выравнены вправо и сортируются по возрастанию корректно

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

Даты прижаты влево и сортируются как строки

Многострочный текст
Норма

Текст переносится внутри ячейки, высота строк подстроена

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

Текст обрезан или налезает на соседние ячейки

Объединенные ячейки шапки
Норма

Заголовки объединены как в печатной форме 1С

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

Заголовки разбиты на отдельные ячейки

Часто задаваемые вопросы

Почему при копировании из 1С в Excel теряется форматирование?

Буфер обмена передает ограниченный набор данных: значения и частично оформление. Объединенные ячейки, точная ширина колонок, переносы и форматы чисел через буфер часто теряются. Для сохранения форматирования используйте «Файл → Сохранить как» с типом «Лист Excel (*.xlsx)» — этот механизм переносит оформление полностью.

Числа выгрузились в Excel как текст. Что делать?

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

Как сохранить переносы строк внутри ячейки при выгрузке?

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

Какой формат выбрать: XLSX или XLS?

Выбирайте XLSX: он без ограничений старого формата передает оформление, поддерживает больше строк и корректно открывается во всех актуальных версиях Excel. Формат XLS (Excel 95/97) оправдан только при необходимости открыть файл в очень старой версии Office.

Можно ли выгрузить из 1С сразу с автофильтром и закрепленной шапкой?

Штатная запись табличного документа в XLSX переносит фиксацию строк и колонок, если она задана в табличном документе (свойство фиксации). Автофильтр и условное форматирование стандартный экспорт не создает — для этого нужна доработка через COM-объект Excel или ручная настройка в уже сохраненном файле.

Файл большой, и выгрузка завершается ошибкой. В чем причина?

Экспорт в XLSX требует памяти пропорционально размеру табличного документа. При очень больших отчетах серверу может не хватить ресурсов. Решения: ограничить объем отчета отбором, разбить выгрузку на части, либо выгружать данные в CSV без оформления, а форматированный шаблон применять отдельно.

Итог

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

Формат текста при выгрузке из 1С в Excel сохраняется, если использовать «Сохранить как» с типом XLSX или метод Записать() с типом XLSX, а форматирование в макете задавать через свойства ячеек, а не через текст. Числа и даты записывайте значениями соответствующего типа с форматными строками. Копирование через буфер обмена и устаревший формат XLS — главные источники потери оформления.