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

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

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

Причины некорректного отображения текста в Excel

Выясним основные технические причины, по которым табличный документ 1С теряет исходный вид при конвертации в Excel:

  1. Объединенные ячейки в макете: В таблицах Excel механизм автоматического подбора высоты строки не работает для групп объединенных ячеек. Если в 1С выводится многострочный текст в объединенную ячейку, Excel при открытии файла сбрасывает высоту строки к стандартному значению.
  2. Разница в рендеринге шрифтов и DPI: 1С и Excel по-разному рассчитывают высоту шрифтов, межстрочные интервалы и масштаб. Высота строки, рассчитанная алгоритмом 1С, в Excel может оказаться недостаточной.
  3. Вертикальное выравнивание текста: Если у ячейки установлено выравнивание по центру или по нижнему краю, при недостаточной высоте строки в Excel верхняя часть букв уходит за верхнюю границу ячейки и обрезается.
  4. Ограничения формата XLS: Устаревший формат Excel 97–2003 жестче обрабатывает длинные строки и параметры стилей по сравнению со современным форматом XLSX.

Способ 1. Проверка базовых свойств ячеек в макете

Рассмотрим по шагам настройки ячеек табличного документа в режиме Конфигуратора или редактора макета:

  1. Убедимся, что для ячейки с длинным текстом свойство РазмещениеТекста установлено в значение Переносить.
  2. Проверим свойство Автовысота строки (`АвтовысотаСтроки`). Если нужно применить автовысоту ко всему документу, выделим все строки табличного документа, вызовем контекстное меню или палитру свойств и активируем данный флаг.
  3. Сменим Вертикальное выравнивание с центра или низа на Верх (свойство ВертикальноеВыравнивание.Верх). При таком выравнивании текст начинает отрисовываться от верхней границы ячейки вниз, поэтому верхняя часть символов перестанет срезаться даже при незначительных расхождениях в расчете высоты.

Способ 2. Явное задание высоты строк в макете или коде

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

Посмотрим на пример программного управления высотой строк перед выводом секции в табличный документ:


ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетПечати");
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаблицы");

// Заполняем параметры области
ОбластьСтрока.Параметры.Номенклатура = "Длинное наименование номенклатуры с переносом текста";

// Явно задаем высоту строки (в пунктах) с запасом под многострочный текст
ОбластьСтрока.ТекущаяОбласть.ВысотаСтроки = 35;

ТабДок.Вывести(ОбластьСтрока);

Способ 3. Оптимизация структуры макета и формата экспорта

Проанализируем дополнительные рекомендации для сохранения исходного внешнего вида документа:

  1. Отказ от объединения ячеек: По возможности избегаем объединения ячеек по горизонтали в динамических секциях, где выводится длинное наименование или описание.
  2. Использование формата XLSX: При сохранении файла выбираем современный тип файла ТипФайлаТабличногоДокумента.XLSX вместо устаревшего XLS. В формате XLSX лучше сохраняются параметры верстки и длинные тексты.
  3. Экспорт в PDF: Если пользователю требуется только просмотр или печать документа без необходимости редактировать таблицы, применим экспорт в PDF. Сохранение через ТипФайлаТабличногоДокумента.PDF полностью сохраняет визуальное оформление 1С.
← На главную