Свой шрифт в 1С: установка, элемент стиля и код
Содержание
Файл шрифта нельзя положить внутрь конфигурации так, чтобы он сам появился у всех пользователей. 1С берёт гарнитуры из операционной системы, а в конфигурации хранит только ссылку на имя шрифта и его параметры: размер, жирность, наклон. Поэтому добавить шрифт в 1С значит сделать две вещи: поставить его на нужные компьютеры и указать в конфигурации или коде.
Ниже порядок действий: от проверки, что шрифт вообще виден платформе, до программного создания и вывода в PDF.
Как платформа 1С работает со шрифтами
В 1С:Предприятии 8.3 шрифт — это значение типа Шрифт. Он описывает имя гарнитуры, размер и начертание. Самих глифов в базе нет.
Откуда платформа берёт сам рисунок букв:
- 🖥 Толстый клиент и тонкий клиент — из шрифтов Windows, установленных на компьютере пользователя;
- 🌐 Веб-клиент — из шрифтов устройства, на котором открыт браузер;
- ⚙️ Серверные операции (формирование печатной формы на сервере, запись в PDF) — из шрифтов того компьютера, где работает сервер 1С.
Отсюда главное следствие: установили шрифт на одном ПК — на остальных он не появится. Если на другом компьютере нужной гарнитуры нет, система подставит похожую, и внешний вид документа поплывёт.
В конфигурации шрифт можно задать тремя способами:
| Способ | Где живёт | Когда подходит |
|---|---|---|
| Элемент стиля | Общие → Стили → Элементы стиля | Единый шрифт для интерфейса или повторяющихся элементов |
| Свойство «Шрифт» у элемента | Форма, ячейка макета | Разовое оформление поля, колонки, области |
Объект Шрифт в коде | Модуль формы или процедуры | Шрифт зависит от данных или режима |
Установка шрифта в систему
Без этого шага остальное не работает . Порядок для Windows:
- Закройте все сеансы 1С на этом компьютере. Уже запущенная программа новый шрифт может не увидеть.
- Откройте файл
.ttfили.otf, нажмите «Установить» (или «Установить для всех пользователей», если права позволяют). - Запустите 1С заново и проверьте, что гарнитура появилась в списке шрифтов, например в настройке шрифта поля.
Проверьте лицензию на шрифт. Многие бесплатные гарнитуры разрешают установку на личный компьютер, но не на рабочие станции организации. Для коммерческого шрифта нужна лицензия на каждое рабочее место.
Если база работает через терминальный сервер , шрифт ставится именно на сервер терминалов, а не на ПК, с которых подключаются. Для RDP-подключения это один раз на сервер. При публикации веб-клиента нужная гарнитура должна быть на устройстве читателя.
💡 Чтобы не ставить шрифт на десятки машин вручную, раздайте его групповой политикой или скриптом входа. Этим занимается системный администратор, 1С тут не участвует.
Шрифт в конфигураторе: элемент стиля
Когда нужен один фирменный шрифт для интерфейса, создавайте элемент стиля.
- Откройте конфигуратор:
Конфигурация → Открыть конфигурацию. - В дереве объектов найдите ветку
Общие → Стилии откройте стиль (или добавьте свой). - Создайте новый элемент стиля и в свойстве «Вид» выберите значение «Шрифт».
- Задайте имя шрифта, размер, жирность и наклон. Имя гарнитуры вводите ровно так, как оно отображается в системе.
- Сохраните и обновите конфигурацию базы данных (
F7).
Теперь элемент стиля можно назначать в свойстве «Шрифт» у поля формы, группы или колонки таблицы. Если потом поменять сам элемент стиля, шрифт изменится сразу везде, где он использован. Это удобнее, чем править поля по одному.
Для типовых конфигураций (Бухгалтерия, ЗУП, УТ) не меняйте типовой стиль. Заведите отдельный элемент в расширении, иначе при обновлении конфигурации правки будут потеряны.
Если у элемента формы шрифт не задан, он наследует значение от родителя: группы, формы, затем стиля. Поэтому смену шрифта для всей формы удобно делать на верхнем уровне.
Как задать шрифт у поля, колонки и ячейки
Для уже существующих объектов не обязательно создавать элемент стиля.
Поле или колонка управляемой формы. Выделите элемент в редакторе формы, откройте палитру свойств и найдите «Шрифт». Нажмите кнопку выбора и укажите гарнитуру и размер либо выберите готовый элемент стиля.
Макет печатной формы. Выделите нужные ячейки, откройте их свойства и задайте шрифт на закладке оформления. Свойство применяется к выделенной области целиком, поэтому сначала выделите блок, потом меняйте.
Табличный документ. Область имеет собственное свойство «Шрифт». Задать его можно и из кода, как показано дальше.
Если нужный шрифт в списке не виден, значит, он не установлен на компьютере, где открыт конфигуратор. Установите его и перезапустите конфигуратор.
Программное создание объекта «Шрифт»
Когда шрифт зависит от данных, например выделяем просроченные строки или меняем размер по настройке пользователя, создайте объект в коде. Конструктор принимает базовый шрифт (или имя), размер и признаки начертания.
Пример для поля формы:
&НаКлиенте
Процедура УстановитьШрифтПоля()
Элементы.Комментарий.Шрифт = Новый Шрифт("Arial", 12, Истина);
КонецПроцедуры
Здесь "Arial" — имя гарнитуры, 12 — размер в пунктах, Истина — жирное начертание. Остальные признаки (курсив, подчёркивание, зачёркивание) идут следующими параметрами конструктора.
Пример для области табличного документа:
Область = ТабДок.Область("R2C2:R2C5");
Область.Шрифт = Новый Шрифт("Times New Roman", 11);
Чтобы изменить уже существующий шрифт, не теряя остальных настроек, передайте его первым параметром конструктора:
НовыйШрифт = Новый Шрифт(Элементы.Комментарий.Шрифт, , 14);
Элементы.Комментарий.Шрифт = НовыйШрифт;
Здесь имя не указано, значит, сохраняется гарнитура базового шрифта, а размер заменяется на 14.
⚠️ Свойство формы Шрифт у элемента меняется на клиенте. Если пытаетесь задать его в серверной процедуре формы, проверьте, что элемент доступен в этом контексте, иначе получите ошибку.
Размер в коде задавайте числом. Не склеивайте его со строкой имени вроде "Arial 12": платформа воспримет всю строку как название гарнитуры, не найдёт её и подставит другой шрифт.
Шрифт по условию
Чтобы выделить значения в списке, используйте условное оформление формы: Все действия → Условное оформление в конфигураторе или настройка у пользователя. Шрифт там задаётся в оформлении строки, поэтому писать код не нужно. Код нужен, когда условий много или они берутся из регистра настроек.
Печатные формы и вывод в PDF с нестандартным шрифтом
Здесь чаще всего «ломается» внешний вид: на экране красиво, в файле иначе.
Что нужно знать:
- Печать на принтер использует шрифт того компьютера, откуда печатают. Принтеру отправляется уже подготовленная страница.
- Сохранение табличного документа в PDF выполняет та машина, где запущен код. Если форма формируется на сервере, нужный шрифт обязан стоять на сервере 1С.
- Если шрифта на этой машине нет, в PDF попадёт замена. Размеры букв отличаются, строки переносятся иначе, таблица съезжает.
Практический порядок проверки:
- Определите, где выполняется формирование: на клиенте или на сервере.
- Установите шрифт именно там, перезапустите сеансы (для сервера — службу, см. предупреждение ниже).
- Сформируйте документ и сохраните в PDF.
- Откройте файл на другом компьютере, где шрифта нет, и убедитесь, что вид сохранился.
Перезапуск службы сервера 1С оборвёт сеансы всех пользователей и фоновые задания. Делайте это в нерабочее время или после того, как люди завершат работу.
Шрифты PDF обычно встраиваются в файл при сохранении, поэтому у получателя документ выглядит одинаково. Но это зависит от настроек лицензии самого шрифта: если гарнитура запрещает встраивание, результат может отличаться. Для документов, которые уходят клиентам, надёжнее брать распространённые гарнитуры с открытой лицензией.
Для печатных форм типовых конфигураций правьте макет в расширении, а не в основной конфигурации, чтобы после обновления шрифт остался на месте.
Проверка штрихкодов и спецсимволов
Штрихкоды и символы вроде «№» или «₽» зависят от гарнитуры: если в ней нужного знака нет, вместо него появится квадрат или другой символ. При выборе шрифта для бланков сначала проверьте наличие этих знаков на пробной печати.
Какой шрифт выбрать для бланков и интерфейса
Выбор гарнитуры влияет на читаемость не меньше, чем сама установка.
- 📄 Печатные формы. Берите распространённые гарнитуры с кириллицей: Arial, Times New Roman, Calibri. Они есть почти на любом компьютере, поэтому документ у контрагента откроется так же, как у вас.
- 🔢 Таблицы с числами. Нужен шрифт, где цифры одной ширины. Тогда суммы в колонках выстраиваются ровно, а разряды не «гуляют».
- 👀 Интерфейс. Для длинной работы с формами размер ниже 9 пунктов утомляет глаза. Лучше увеличить масштаб, чем уменьшать шрифт.
- 🧾 Бланки строгой отчётности. Если форму утверждает регулятор, меняйте только то, что допускает порядок заполнения. Шрифт и размер часто оговорены отдельно.
Перед внедрением нестандартной гарнитуры сделайте пробную печать на реальном принтере и откройте PDF на втором компьютере. Две минуты проверки видны сразу: если строки переносятся одинаково, шрифт можно раздавать остальным.
Частые ошибки и как их найти
Если шрифт не применился, идите по списку сверху вниз.
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
| Шрифта нет в списке | Не установлен на этом ПК | Установить в систему, перезапустить 1С |
| Работает у вас, не работает у коллеги | Установлен на одной машине | Раздать шрифт всем пользователям |
| На экране верно, в PDF иначе | Формирование идёт на сервере | Установить шрифт на сервер 1С |
| Вместо шрифта «стандартный» | Опечатка в имени гарнитуры | Сверить имя с системным списком |
| Изменения не видны после правки стиля | Не обновлена конфигурация БД | Нажать F7 и перезапустить клиент |
| Пропали правки после обновления | Правка внесена в типовой объект | Перенести в расширение |
Имя гарнитуры сверяйте точно: «Arial Narrow» и «ArialNarrow» для системы разные вещи. Откройте шрифт в просмотрщике Windows, там указано полное название.
Если не помогло
Бывает, что шрифт установлен везде, а картинка всё равно не та. Проверьте три вещи.
Кеш и сеанс. Закройте клиент полностью, а не только окно базы. На терминальном сервере завершите сеанс пользователя и зайдите снова.
Режим масштаба. Масштаб интерфейса в настройках 1С и масштаб экрана Windows складываются. Шрифт может быть верным, а размер казаться другим. Сравните при одинаковом масштабе.
Другой путь. Если нужен именно фирменный вид документа, а не интерфейса, сделайте макет с картинкой: логотип или заголовок в виде изображения вставляется в макет и не зависит от шрифтов. Текст при этом остаётся обычным системным.