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

Программист 1С v8.3 (Обычные формы) Управленческий учет
← На главную

При переходе на новые релизы платформы 1С:Предприятие 8.3 (в частности, на ветку 8.3.22) многие технические специалисты столкнулись с неприятным визуальным артефактом: в табличных документах пропадает текст. Особенно часто это проявляется в группировках строк или колонок. При этом, если зайти в свойства ячейки, текст там присутствует, но на экране отображается «пустота». В этой статье мы подробно разберем, почему это происходит в режиме обычного приложения и какие шаги нужно предпринять для восстановления корректного отображения данных.

Анализируем ситуацию: симптомы и окружение

Прежде всего, давайте определим условия, при которых возникает данная проблема. Как правило, она проявляется в конфигурациях, работающих в режиме Толстого клиента (Обычное приложение). Например, это может быть «Бюджетирование корпорации», «Управление производственным предприятием» или самописные решения на базе старых версий 1С. Основной симптом — текст в макете или сформированном отчете есть, но он невидим для пользователя.

Рассмотрим ключевые параметры среды, при которых баг дает о себе знать:

Выясняем причину: коварный «Масштаб 0%»

Проанализируем техническую составляющую проблемы. В платформе версии 8.3.22 были внесены существенные изменения в движок отрисовки интерфейса и взаимодействие с системными метриками Windows. Выяснилось, что при использовании системных шрифтов или шрифтов по умолчанию в режиме обычного приложения платформа некорректно вычисляет свойство Масштаб (Scale) для текста.

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

Способ 1. Программное исправление через переопределение шрифта

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


// Пример исправления шрифта в области табличного документа
Область = Макет.ПолучитьОбласть("Группировка");
ТекущийШрифт = Область.Область(1, 1).Шрифт;

// Устанавливаем конкретное имя шрифта вместо системного
// и явно задаем масштаб 100%
НовыйШрифт = Новый Шрифт(ТекущийШрифт, "Arial", ТекущийШрифт.Размер, ТекущийШрифт.Жирный, ТекущийШрифт.Наклонный);
Область.Область(1, 1).Шрифт = Новый Шрифт(НовыйШрифт, , , , , , 100); 

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

В данном примере мы берем существующий шрифт, заменяем неопределенное «системное» имя на конкретное Arial и, что самое важное, в конструкторе Новый Шрифт последним параметром указываем масштаб 100. Это заставляет платформу игнорировать ошибочные автоматические расчеты и отображать текст нормально.

Способ 2. Изменение макета в конфигураторе

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

  1. Откройте проблемный макет в Конфигураторе.
  2. Выделите ячейки группировок, где пропадает текст.
  3. Откройте палитру свойств (F4).
  4. Найдите свойство Шрифт.
  5. Вместо «Шрифт диалогов и меню» или «Авто» выберите конкретный шрифт из списка (например, Tahoma или Verdana).
  6. Убедитесь, что размер шрифта задан числом (например, 8 или 9), а не значением «0».

После сохранения изменений платформа перестанет полагаться на системные настройки, которые в версии 8.3.22.1709 обрабатываются с ошибкой.

Способ 3. Диагностика через сохранение в файл

Для того чтобы окончательно убедиться, что проблема именно в отрисовке, а не в данных, выполним проверку через формат .mxl. Сохраните сформированный «пустой» табличный документ на диск. Затем попробуйте открыть этот файл в более старой версии платформы (например, 8.3.18) или в мобильном клиенте 1С. Если текст в файле отображается корректно, значит, мы имеем дело именно с багом рендеринга текущего релиза 8.3.22. Это подтверждает, что данные в базе целостны, а проблема носит чисто визуальный характер.

Способ 4. Обновление платформы (рекомендуемое решение)

Самый надежный способ решения проблемы — переход на исправленную версию платформы. Фирма «1С» признала наличие ошибок отрисовки в первых релизах ветки 8.3.22. Проанализируем список версий, где данная ошибка (Bug ID: 00142835) уже исправлена:

При обновлении крайне желательно также очистить локальный кэш шрифтов на рабочих станциях пользователей. Это можно сделать, удалив содержимое папки %LOCALAPPDATA%\1C\1cv8\ExtLvl.

Дополнительные рекомендации по настройке Windows

Иногда масштаб шрифта в 1С сбивается из-за нестандартных настроек DPI в операционной системе. Если пользователи работают на мониторах с высоким разрешением (4K), проверьте параметры масштабирования в настройках экрана Windows. Установка масштаба 100% часто временно решает проблему исчезновения текста, хотя и делает интерфейс слишком мелким. Также стоит попробовать запустить 1С с параметром /DisableAcceleration в строке запуска, чтобы исключить влияние аппаратного ускорения видеокарты на отрисовку шрифтов в старом графическом движке «Обычного приложения».

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

← На главную