Почему в 1С обрезается текст в печатных формах после обновления платформы и как это исправить?

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

Многие технические специалисты и пользователи 1С столкнулись с неприятной ситуацией: после планового обновления платформы до версий 8.3.16 или 8.3.17 внешние и типовые печатные формы стали отображаться некорректно. Основная жалоба заключается в том, что текст в ячейках выглядит «обкусанным» — последние буквы или знаки препинания в конце строк исчезают, хотя в конфигураторе макет выглядит абсолютно правильным.

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

Выясним причину: почему буквы стали «съедаться»?

Для начала проанализируем ситуацию с технической точки зрения. Начиная с версии 8.3.15.1508, компания «1С» начала постепенный переход на новую библиотеку для работы со шрифтами и текстом под названием HarfBuzz. До этого момента платформа 1С использовала стандартные средства операционной системы Windows — интерфейс GDI (Graphics Device Interface).

Переход на новый движок отрисовки (Font Engine) был необходим для обеспечения идентичного отображения текстов на разных операционных системах (Windows, Linux, macOS, Android, iOS), что критично для кроссплатформенности. Однако алгоритмы расчета ширины символов в HarfBuzz и GDI различаются. В результате текст, который раньше идеально вписывался в границы ячейки, стал занимать на несколько пикселей больше места. Если для ячейки установлено свойство «Переносить», текст может неожиданно перескочить на новую строку, а если установлено «Авто» — последние символы просто скрываются за границей ячейки.

Способ 1: Использование параметра запуска /UseOldFontEngine

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

Разберем по шагам, как применить этот параметр:

  1. Откроем окно запуска 1С:Предприятия.
  2. Выберем нужную информационную базу в списке и нажмем кнопку «Изменить».
  3. Перейдем на последнюю закладку настроек, где находится поле «Дополнительные параметры запуска».
  4. Введем в это поле следующую строку:

/UseOldFontEngine

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

Способ 2: Корректировка макета печатной формы

Если проблема наблюдается только в одной конкретной внешней печатной форме, мы можем отредактировать сам макет. Это более трудоемкий, но «чистый» с точки зрения разработки путь. Проанализируем настройки свойств ячеек в макете ТабличныйДокумент.

Выполним следующие действия в конфигураторе:

  1. Откроем макет печатной формы.
  2. Выделим проблемные ячейки, в которых текст обрезается.
  3. В палитре свойств найдем параметр «Размещение». По умолчанию там часто стоит «Авто». Попробуем изменить его на «Забивать». В некоторых случаях это предотвращает обрезку последнего символа при выводе на печать.
  4. Обратим внимание на свойство «Отступ справа». Если установить там значение 1 или 2, платформа принудительно оставит небольшое свободное пространство в конце ячейки, что компенсирует разницу в расчетах нового движка шрифтов.
  5. Немного увеличим ширину колонок в макете. Иногда расширение колонки всего на 1-2 пикселя полностью решает проблему для всех типов шрифтов.

Способ 3: Настройка масштабирования Windows (DPI)

Проанализируем влияние системных настроек. Ошибка часто проявляется наиболее остро на компьютерах с мониторами высокого разрешения, где установлено масштабирование экрана (например, 125% или 150%). Платформа 1С может некорректно интерпретировать эти настройки при расчете размеров шрифта.

Посмотрим, как можно скорректировать поведение системы:

  1. Нажмем правой кнопкой мыши на ярлык запуска 1С и выберем «Свойства».
  2. Перейдем на вкладку «Совместимость».
  3. Нажмем кнопку «Изменить параметры высокого DPI».
  4. Установим галочку «Переопределите режим масштабирования высокого разрешения».
  5. В выпадающем списке выберем пункт «Система» (или «System»).

Это заставит Windows самостоятельно масштабировать интерфейс приложения, что часто исправляет микроскопические ошибки в расчете ширины символов, которые приводят к обрезке текста.

Способ 4: Смена шрифта в печатной форме

Практика показывает, что новый движок HarfBuzz ведет себя по-разному с разными семействами шрифтов. Наиболее часто проблемы возникают со шрифтами без засечек, такими как Arial. Если мы проанализируем альтернативные варианты, то заметим, что шрифты Tahoma или MS Sans Serif менее подвержены эффекту «обкусывания».

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

Способ 5: Обновление платформы до исправленных релизов

Компания «1С» признала наличие проблем с расчетом ширины текста в первых сборках веток 8.3.16 и 8.3.17. В последующих минорных обновлениях были внесены правки в алгоритмы работы HarfBuzz.

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

Резюме и рекомендации

Подводя итог, можно сказать, что проблема «обкусанного» текста — это побочный эффект технологического развития платформы. Для оперативного решения мы рекомендуем использовать параметр /UseOldFontEngine. В долгосрочной же перспективе наиболее правильным подходом будет адаптация макетов (увеличение отступов и ширины колонок) и использование актуальных релизов платформы, где ошибки в новом движке отрисовки сведены к минимуму.

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

← На главную