Шрифты в 1С:Предприятии: чем рисуется интерфейс, печатные формы и код

· 9 мин

Содержание

Своих шрифтов у платформы 1С нет. Она берёт шрифты операционной системы и обращается к ним по имени: Arial, Tahoma, Courier New, Consolas. Если нужного шрифта на компьютере нет, Windows подставит похожий, и экран или печатная форма поплывут.

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

Откуда 1С берёт шрифты

Платформа 8.3 не встраивает шрифты в конфигурацию. В конфигурации хранится только описание: имя гарнитуры, размер, жирность, наклон. Рисует текст операционная система клиента.

Из этого следуют три вещи:

  • 🖥 один и тот же отчёт на двух компьютерах может выглядеть по-разному, если набор шрифтов разный;
  • 🌐 в веб-клиенте шрифт подбирает браузер, а не Windows. Набор гарнитур зависит от браузера и системы пользователя;
  • 🖨 при выводе в PDF на сервере нужны шрифты на сервере, а не на рабочем месте. Это отдельная частая проблема, о ней дальше.

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

Шрифты интерфейса: стиль «Такси» и стили конфигурации

Внешний вид управляемого интерфейса задаёт стиль. Это объект конфигурации, в нём собраны цвета и шрифты для заголовков, надписей, полей ввода, кнопок, списков. У каждого элемента стиля есть имя, например «Обычный шрифт» или «Крупный шрифт», и к нему привязана конкретная гарнитура с размером.

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

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

Что хотите изменитьГде менятьКто меняет
Шрифты всех форм конфигурацииСтиль в конфигуратореРазработчик
Шрифт одного поля или надписиСвойство «Шрифт» элемента формыРазработчик
Размер всего интерфейсаМасштаб приложения или базыПользователь
Масштаб WindowsПараметры экрана ОСПользователь, администратор

Шрифты в печатных формах и табличных документах

Печатная форма — это макет с табличным документом. Шрифт здесь задаётся у ячеек: гарнитура, размер, начертание. В макете откройте свойства выделенной области и найдите настройки шрифта на панели форматирования.

Чаще всего в макетах встречаются Arial и Times New Roman. Они есть в любой Windows, поэтому форма выглядит одинаково везде. Экзотические гарнитуры лучше не брать.

Что стоит знать практику:

  1. Шрифт ячейки приоритетнее стиля. Если в макете явно задан Arial 10, смена стиля интерфейса печатную форму не затронет.
  2. Размер влияет на разбивку по страницам. Форма УПД или счёта на Arial 9 уместится на страницу, на Arial 11 перенесётся на вторую. Проверяйте предварительный просмотр.
  3. Штрихкоды. Для печати штрихкодов обычно используют либо встроенный элемент «Штрихкод» табличного документа, либо отдельный шрифт штрихкода. Во втором случае шрифт должен стоять на каждом компьютере, где печатают, иначе вместо полос будут буквы.
  4. Автоподбор высоты строки. При замене шрифта на более крупный текст в ячейке может обрезаться. Включите автоподбор высоты у строк с длинным текстом.

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

Моноширинные шрифты: редактор кода и конфигуратор

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

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

  • Courier New — по умолчанию, есть везде, но тонкий и на больших мониторах читается плохо;
  • Consolas — современнее, чётче, есть в Windows начиная с Vista;
  • Lucida Console — компактный, подходит для небольших экранов.

Для разработчика важен ещё и один момент: в моноширинном шрифте различимы похожие знаки. Ноль и буква «О», единица и «l», запятая и точка. При разборе ошибок в файлах обмена или в логах это экономит время.

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

Проблемы отображения: «квадратики», кракозябры, съехавшая вёрстка

Три разные болезни часто путают.

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

Вместо русского текста «Ð¿Ñ€Ð¸Ð²ÐµÑ‚». Это не шрифт, а кодировка. Текст прочитали как однобайтовую кодировку, хотя он записан в UTF-8, или наоборот. Смотрите, в какой кодировке сохранён файл и с какой читает его 1С при загрузке. Чаще всего проблема возникает на обмене через текстовые файлы и на старых внешних обработках.

Печатная форма пустая или без текста. При выводе на сервере в PDF нет подходящего шрифта. Проверьте шрифты на сервере, а на Linux ещё и наличие пакета с шрифтами, совместимыми с Arial и Times New Roman.

Быстрая диагностика:

  1. Откройте ту же форму на другом компьютере. Если там всё в порядке, дело в шрифтах или масштабе первого компьютера.
  2. Сравните масштаб Windows. Значение 125% и 150% раздувает интерфейс и ломает старые обычные формы.
  3. Откройте форму в другом клиенте: тонком, толстом, веб. Если проблема только в одном, виноват его механизм отрисовки.
Диагностика: выберите симптом

Как пользователю и администратору поменять шрифт

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

Администратор решает задачи на уровне рабочих мест:

  1. Единый набор шрифтов. Если в компании используются нестандартные гарнитуры, их устанавливают всем клиентам одним способом: групповой политикой или скриптом входа. Ручная установка на каждый компьютер приводит к тому, что у части пользователей форма выглядит иначе.
  2. Масштаб экрана. На ноутбуках с высоким разрешением Windows по умолчанию ставит 125–150%. Для 1С это может быть неудобно, и размер нужно подстроить под конкретного пользователя.
  3. Терминальные серверы. На RDS-сервере шрифты устанавливаются один раз на сервер, а пользователи получают их через сеанс. Если сменили шрифт на сервере, пользователям нужно переподключиться.

А вот что делать не нужно: подменять системные шрифты Windows ради 1С. Заменив Arial файлом другого шрифта, вы повлияете на все программы, и откатить такое изменение сложно.

Свой шрифт в конфигурации: что нужно учесть при внедрении

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

Порядок такой:

  1. Проверьте лицензию на шрифт. Многие коммерческие шрифты разрешают установку на ограниченное число компьютеров.
  2. Установите шрифт на все клиенты и на сервер, если печать идёт и там. Шрифт нужно ставить в систему, а не «рядом с 1С».
  3. Задайте шрифт в нужном стиле или в макете.
  4. Определите запасной вариант. Если шрифта нет, должен подставиться безопасный Arial, а не случайная гарнитура. В макетах это достигается выбором распространённого шрифта.
  5. Проверьте веб-клиент. Браузеры берут системные шрифты и не знают о ваших настройках 1С.

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

Перед внедрением нового шрифта
Выполнено: 0 / 5

Шрифт из кода: как задать гарнитуру программно

Если печатную форму собирает код, шрифт можно задать прямо в нём. В языке 1С для этого есть объект Шрифт: конструктору передают имя гарнитуры, размер и признак жирности.

ТабДок = Новый ТабличныйДокумент;
Область = ТабДок.Область("R1C1:R1C3");
Область.Шрифт = Новый Шрифт("Arial", 10, Истина);
Область.Текст = "Заголовок таблицы";

Что здесь важно:

  • 🔤 имя гарнитуры пишется точно так, как оно называется в системе. Опечатка не вызовет ошибку, платформа просто подставит другой шрифт;
  • 📏 размер задаётся в пунктах, дробные значения допустимы;
  • ✅ жирность, наклон и подчёркивание передаются следующими параметрами. Какие именно, смотрите в синтакс-помощнике по объекту Шрифт.

Шрифт, заданный программно, перекрывает шрифт макета. Поэтому, если в готовой форме «не работает» правка в макете, поищите в модуле строку с Новый Шрифт.

Как проверить, что шрифт на компьютере установлен

Перед тем как искать причину в 1С, проверьте сам шрифт. Это занимает две минуты и снимает половину вопросов.

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

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

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

Частые вопросы

Какой шрифт в 1С используется по умолчанию?
В управляемом интерфейсе его определяет стиль конфигурации, обычно это шрифт без засечек из набора Windows. В макетах печатных форм по умолчанию распространён Arial.
Можно ли поменять шрифт во всей программе сразу?
Для управляемых форм да, через стиль конфигурации в конфигураторе. Пользователю доступен масштаб интерфейса, но не замена гарнитуры.
Почему в PDF с сервера нет текста, а на экране всё нормально?
Сервер рисует документ своими шрифтами. На клиенте нужная гарнитура есть, на сервере нет. Установите её на сервере.
Какой шрифт лучше для редактора кода?
Любой моноширинный. Consolas читается лучше Courier New, особенно на больших мониторах.
Нужно ли ставить шрифты для веб-клиента на сервер 1С?
Нет. В веб-клиенте текст рисует браузер пользователя, поэтому шрифты нужны на его компьютере.
Шрифт штрихкода показывает буквы вместо полос. Что делать?
Установите шрифт штрихкода на компьютер, где открывается документ, или перейдите на встроенный элемент штрихкода в табличном документе.