Шрифты печатных форм 1С: где задаются и как заменить

· 9 мин

Содержание

Единого «шрифта печати» в 1С 8.3 нет. Шрифт хранится в самой печатной форме: у каждой ячейки макета табличного документа свой шрифт, свой размер и начертание. Поэтому в одной базе счёт может печататься Arial, а договор — Times New Roman. Глобальной настройки «поменять шрифт всех печатных форм» в пользовательских параметрах нет.

Типичный набор у типовых макетов: Arial для бланков и накладных, Times New Roman для текстовых документов, Courier New там, где нужна моноширинность. Размер чаще всего 8–10 пунктов для табличной части и 10–12 для шапки. Если в новом макете ничего не менять, получите шрифт по умолчанию, обычно Arial 10.

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

Откуда платформа берёт шрифты

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

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

ШрифтГде применяетсяЗамечание
Arialбланки, накладные, счетаесть в Windows всех версий
Times New Romanдоговоры, акты, письмаесть в Windows всех версий
Courier Newсверки, текстовые отчёты, моноширинные колонкикаждая буква одной ширины
Tahoma, Verdanaинтерфейс, редко печатные формыпо возможности не использовать в бланках

На Windows эти шрифты уже установлены. На Linux их придётся ставить отдельно, об этом ниже.

Как узнать, какой шрифт у конкретной печатной формы

Откройте нужную форму и посмотрите в сам макет. Есть два способа.

  1. В режиме Конфигуратор найдите объект (документ, обработку, отчёт), раскройте ветку «Макеты» и откройте макет печатной формы двойным щелчком.
  2. Выделите ячейку или область и откройте палитру свойств (клавиша F4). Нужное поле называется «Шрифт»: рядом с ним имя, размер и признаки начертания.
  3. Если макет вынесен во внешнюю обработку или расширение, открывайте его оттуда. Типовые макеты правят только через расширение или копию, подробнее в следующем разделе.

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

Меняем шрифт в макете

В типовых конфигурациях (БП 3.0, ЗУП 3.1, УТ 11) макеты стоят на поддержке. Править их напрямую значит потом каждый раз сливать изменения при обновлении. Есть три подхода, от безопасного к рискованному.

  1. Подсистема «Печатные формы» в пользовательском режиме. В БП 3.0 есть возможность редактировать макеты без конфигуратора: раздел Администрирование → Печатные формы, отчёты и обработки → Макеты печатных форм. В списке выберите нужный макет, нажмите «Изменить макет» и правьте шрифт в открывшемся редакторе. Исходный макет остаётся нетронутым, изменённая копия хранится в базе. Если название пункта в вашей конфигурации отличается, поищите «макеты печатных форм» в поиске по командам.
  2. Расширение конфигурации. Создаёте расширение, заимствуете объект и макет, меняете шрифт. Типовая конфигурация не затрагивается, обновление проходит без слияния. Расширения доступны начиная с платформы 8.3.6. После загрузки расширения не забудьте обновить конфигурацию базы данных.
  3. Прямая правка типового макета. Только если конфигурация снята с поддержки или вы осознанно принимаете ручное слияние при каждом обновлении.

Перед правкой макета в рабочей базе сделайте копию базы или проверьте изменение на тестовой. Неудачный размер шрифта легко ломает разбивку по страницам у форм вроде УПД.

Порядок действий в самом макете:

  1. Выделите всю форму (Ctrl+A) или нужную область.
  2. В палитре свойств найдите «Шрифт» и нажмите кнопку выбора.
  3. Задайте имя, размер и начертание.
  4. Проверьте результат кнопкой предварительного просмотра формы и обязательно прокрутите на другую страницу: изменение ширины букв сдвигает разбиение.

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

Программное управление шрифтом

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

// Табличный документ уже создан и заполнен
Макет = Новый ТабличныйДокумент;
Область = Макет.Область("R1C1:R1C5");

// Новый Шрифт(Шрифт, Имя, Размер, Жирный, Курсив, Подчеркивание, Зачеркивание, Масштаб)
Область.Шрифт = Новый Шрифт(, "Arial", 12, Истина);
Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;

// Остальной текст — Times New Roman 10 без выделения
Остальное = Макет.Область("R2C1:R20C5");
Остальное.Шрифт = Новый Шрифт(, "Times New Roman", 10);

Здесь первый параметр пропущен намеренно: он нужен, когда новый шрифт строится на основе уже существующего. Обращение по R1C1 — это адрес области в нотации «строка-столбец».

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

СтарыйШрифт = Область.Шрифт;
Область.Шрифт = Новый Шрифт(СтарыйШрифт, , 9);

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

Иногда задачу решают через стили (оформление интерфейса). Для печатных форм это не лучший путь: стили управляют внешним видом форм на экране, а шрифт печатной формы лучше задавать явно, в макете или в коде. Тогда результат не зависит от темы оформления.

Кракозябры вместо русских букв

«Кракозябры» при печати бывают по трём разным причинам, и лечатся они по-разному.

  1. У шрифта нет кириллицы. Декоративные шрифты и шрифты для штрихкодов не содержат русских букв. Если в ячейке стоит такой шрифт, вместо текста появятся квадраты или вопросительные знаки. Лечится заменой шрифта на Arial или другой с кириллицей.
  2. Шрифта нет в системе, и подстановка работает плохо. Бывает на серверах и тонких клиентах без полного набора шрифтов.
  3. Проблема не в шрифте, а в кодировке файла. Если вы выгрузили текст в .txt или .csv, а потом открываете не в той кодировке, русские буквы превращаются в набор символов вроде «Ð¡Ð». Здесь шрифт ни при чём: откройте файл в кодировке Windows-1251 или UTF-8 и сравните.

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

Принтер печатает «не тем»

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

Особенности PDF и Excel

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

Excel. При сохранении в .xls или .xlsx в файл записывается только имя шрифта. Если на компьютере получателя Arial нет (редко, но бывает на Linux и Mac), Excel подставит свой. Для Courier New, как правило, всё в порядке, но размер букв в точках соотносится с шириной столбца неточно, поэтому после выгрузки ячейки иногда обрезаются. Лечится увеличением ширины колонок или уменьшением шрифта на один-два пункта в макете.

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

Нет нужного шрифта: Windows и Linux

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

На рабочих станциях Windows недостающие шрифты ставят обычным способом: скопировать файл .ttf в папку C:\Windows\Fonts или через контекстное меню «Установить для всех пользователей». Для терминального сервера устанавливайте именно для всех пользователей, иначе шрифт увидит только администратор. После установки перезапустите 1С: уже запущенные сеансы список шрифтов не обновляют.

На Linux (клиент 1С, сервер приложений, веб-сервер для тонкого клиента ) шрифтов Microsoft обычно нет. Для Ubuntu и Debian ставится пакет ttf-mscorefonts-installer. Он скачивает Arial, Times New Roman, Courier New и другие. Установка требует согласия с лицензией шрифтов.

Если скачать нельзя, подойдёт набор Liberation: он метрически совместим с основными шрифтами Microsoft. То есть ширина символов у Liberation Sans такая же, как у Arial, у Liberation Serif такая же, как у Times New Roman, у Liberation Mono такая же, как у Courier New. Текст не «поедет» при подстановке. Эти замены обычно настраиваются автоматически через fontconfig.

После установки обновите кеш и проверьте, что система видит шрифты:

fc-cache -f -v
fc-list | grep -i -E "arial|times|courier|liberation"

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

Что учесть при выборе шрифта для своих форм

Несколько практических правил, которые избавят от возни позже:

  • 🔹 Используйте один-два шрифта на форму. Три и больше выглядят небрежно и мешают разбивке на страницы.
  • 🔹 Для печати на обычном принтере хватает 9–10 пунктов в таблице. Меньше 8 пунктов плохо читается после копирования или факса.
  • 🔹 Не берите экзотику ради оформления. Любой нестандартный шрифт нужно ставить на каждую рабочую станцию, сервер и компьютер контрагента.
  • 🔹 Для табличных колонок с цифрами подходит Courier New или шрифт с моноширинными цифрами: суммы выравниваются по разрядам.
  • 🔹 Перед массовой правкой макетов договоритесь о едином стандарте. Иначе через год в базе окажется десять вариантов «акта» с разным оформлением.
Можно ли поменять шрифт сразу во всех печатных формах базы?
Одной настройкой нельзя. Шрифт задан в каждом макете отдельно. Массово меняют программно: обработкой обходят макеты и правят свойство шрифта, либо делают расширение с изменёнными макетами. Предварительно проверьте результат на копии.
Почему форма на экране красивая, а в PDF шрифт другой?
PDF формируется на вашем компьютере из того, что есть в системе. Если шрифт из макета не установлен, при сохранении подставляется замена. Установите шрифт или смените его в макете на Arial или Times New Roman.
Какой шрифт лучше для официальных документов?
Для бланков с таблицами чаще берут Arial, для текстов договоров и писем Times New Roman. Обязательных требований к гарнитуре у большинства внутренних форм нет, важно, чтобы форма читалась и помещалась на лист.
Зачем в 1С нужен Courier New?
Это моноширинный шрифт: все символы занимают одинаковую ширину. Он выручает там, где нужны ровные колонки без таблицы, например в текстовых выгрузках и сверках.
Что делать, если при печати из веба русские буквы в квадратиках?
Проверьте, какой шрифт указан в макете и есть ли в нём кириллица. Затем убедитесь, что на устройстве, где формируется или открывается печать, установлены нужные шрифты.