Как изменить межзнаковый интервал и сжать шрифт в макете печатной формы 1С

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

При верстке макетов печатных форм и отчетов в табличных документах (MXL) разработчики часто сталкиваются с ситуацией, когда длинный текст не помещается в ячейку стандартной ширины. В текстовых процессорах вроде Microsoft Word эту проблему можно решить путем горизонтального сжатия текста или уменьшения межзнакового интервала (трекинга). Разберем, почему аналогичный эффект не получается получить стандартными средствами 1С и какие решения существуют для данной задачи.

Выясним причину: почему 1С не ужимает шрифт

Проанализируем работу графического движка табличных документов платформы «1С:Предприятие». В объекте Шрифт и в редакторе табличных документов MXL отсутствуют параметры для прямого управления трекингом (межсимвольным интервалом), горизонтальным сжатием (масштабированием текста по оси X) или межстрочным интервалом.

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

Решение 1: Использование сжатых (Condensed) шрифтов

Самый простой и стандартный вариант решения проблемы внутри табличного документа 1С — применение специально разработанных узких гарнитур. Такие шрифты имеют в своем названии пометку Condensed или Narrow.

Рассмотрим порядок действий для настройки печатной формы:

  1. Подберем подходящий узкий TrueType или OpenType шрифт (например, гарнитуры с модификаторами Condensed).
  2. Установим выбранный шрифт в операционную систему.
  3. В редакторе макета 1С в свойствах ячейки выберем новый сжатый шрифт в поле Шрифт.

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

Решение 2: Использование Поля HTML-документа вместо табличного документа

Если печатная форма отображается в форме отчета или выводится во внутреннем окне, её можно сформировать на базе CSS и HTML-верстки. В веб-технологиях параметры плотности текста поддерживаются нативно.

Разберем основные свойства CSS, которые позволяют гибко управлять текстом:

  1. letter-spacing — напрямую задает межзнаковый интервал (например, letter-spacing: -1px; для уплотнения).
  2. font-stretch или трансформация transform: scaleX(0.8) — позволяет сжать текст по горизонтали без изменения его высоты.

Сформированный HTML-код выводится в элемент формы ПолеHTMLДокумента, откуда при необходимости также доступна стандартная печать.

Решение 3: Формирование печатной формы через COM-объекты (MS Word или MS Excel)

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

Посмотрим на пример использования COM-соединения с Microsoft Word из кода 1С:

Через объект Word.Application доступно прямое управление параметрами шрифта. В коде 1С можно обращаться к свойствам выделенного фрагмента Font.Spacing (межсимвольный интервал) и Font.Scaling (горизонтальное масштабирование в процентах).

Решение 4: Динамический подбор размера шрифта

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

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

Ограничения и важные нюансы при работе со сторонними шрифтами

При выборе варианта с установкой сторонних сжатых шрифтов (Condensed) необходимо учитывать особенности инфраструктуры 1С:

  1. Установка на всех рабочих местах: Шрифт должен быть физически установлен не только на сервере 1С (при серверном формировании печатных форм), но и на всех клиентских компьютерах (в случае работы через тонкий или толстый клиент). Если у пользователя шрифт не установлен, система автоматически заменит его на базовый системный шрифт (например, Arial), и верстка «поплывет».
  2. Экспорт документов: При сохранении или отправке табличного документа в форматы PDF или Excel нестандартный шрифт будет отображаться корректно у стороннего получателя только при условии внедрения шрифта в итоговый файл или его наличии на ПК получателя.
← На главную