К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как сделать текст жирным в строке 1С

Как сделать текст жирным в строке 1С: форматированная строка, табличный документ, HTML-поле и макеты. Готовые примеры кода, ошибки и проверка результата.

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

Выбор способа зависит от того, где результат должен отобразиться. Для сообщений пользователю и подписей на форме подходит форматированная строка. Для печатных форм и отчётов — табличный документ с настройкой шрифта области. Для произвольной разметки — поле HTML-документа. Ниже разобран каждый вариант с готовым кодом.

Почему обычную строку нельзя сделать жирной

Тип «Строка» во встроенном языке 1С — это последовательность символов Unicode. В ней нет свойств оформления: ни шрифта, ни размера, ни начертания. Функции вроде СтрЗаменить или СокрЛП работают только с символами, и никакой параметр «жирный» в них не предусмотрен.

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

Жирный текст через форматированную строку

Форматированная строка — основной способ вывести жирный текст в сообщениях, предупреждениях, декорациях формы и полях, которые поддерживают форматированный текст. Создаётся она конструктором Новый ФорматированнаяСтрока, куда передаются фрагменты текста и объекты оформления.

ЖирныйШрифт = Новый Шрифт(, , Истина); // третий параметр — жирное начертание

ФСтрока = Новый ФорматированнаяСтрока(

"Остаток на складе: ",

Новый ФорматированнаяСтрока("недостаточен", ЖирныйШрифт)

);

Сообщить(ФСтрока);

Конструктор шрифта Новый Шрифт(ИмяШрифта, Размер, Жирный, Наклонный, Подчеркнутый, Зачеркнутый) принимает параметры по позиции. Если нужно задать только жирность, первые два параметра пропускаются — тогда используются шрифт и размер по умолчанию из настроек формы или системы.

Жирный фрагмент внутри обычного текста

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

Жирный = Новый Шрифт(, , Истина);

Текст = Новый ФорматированнаяСтрока(

"Документ ",

Новый ФорматированнаяСтрока(НомерДокумента, Жирный),

" проведён успешно."

);

bsl
ЖирныйШрифт = Новый Шрифт(, , Истина);
Текст = Новый ФорматированнаяСтрока("Итого: ", Новый ФорматированнаяСтрока(Формат(Сумма, "ЧДЦ=2"), ЖирныйШрифт));
Элементы.ДекорацияИтог.Заголовок = Текст;

Жирный текст на форме: надписи и поля

На управляемой форме жирным можно сделать заголовок декорации, поля надписи или кнопки. Есть два пути: статический, через палитру свойств элемента в конфигураторе (свойство «Шрифт»), и программный, когда оформление меняется в зависимости от данных.

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

Элементы.ДекорацияПредупреждение.Шрифт = Новый Шрифт(, , Истина);

КонецПроцедуры

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

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

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

Макет = ПолучитьМакет("МакетНакладной");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ТабДок = Новый ТабличныйДокумент;

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

// Жирный итог в отдельной ячейке

ОбластьИтог = ТабДок.Область("R10C2");

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

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

Условное выделение в отчётах на СКД

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

Жирный шрифт в макете печатной формы
  1. 1
    Откройте макет в конфигураторе и выделите нужную ячейку или область
  2. 2
    В палитре свойств найдите свойство «Шрифт» и откройте диалог выбора
  3. 3
    Установите флажок «Жирный» и подтвердите выбор
  4. 4
    Сохраните конфигурацию и выведите печатную форму для проверки

Жирный текст в HTML-поле и текстовом документе

Если текст выводится в поле HTML-документа, форматирование задаётся стандартными тегами: <b> или <strong>, либо стилем font-weight: bold. Строка с тегами формируется в коде и присваивается полю HTML.

ТекстHTML = "<html><body>Обычный текст, <b>жирный фрагмент</b></body></html>";

Элементы.ПолеHTML.Документ.body.innerHTML = ТекстHTML; // вариант зависит от платформы

В текстовом документе (тип «ТекстовыйДокумент») форматирования нет — это чистый текст. Жирность там невозможна в принципе, как и в файлах CSV или обычных TXT. Если нужен форматированный файл, выгружайте в формат HTML, табличный документ с сохранением в Excel или PDF.

Способы вывода жирного текста

Форматированная строка

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

Шрифт области табличного документа

Печатные формы и отчёты. Ограничение: оформляется вся ячейка целиком, а не часть текста внутри неё.

HTML-поле с тегом <b>

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

Условное оформление СКД

Отчёты без изменения кода. Ограничение: применяется только к отчётам на компоновке данных.

Частые ошибки и как проверить результат

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

Вторая типичная проблема — путаница в параметрах конструктора шрифта. Параметры позиционные: Новый Шрифт("Arial", , Истина) задаёт жирный Arial, а Новый Шрифт(, 12, Истина) — жирный шрифт размером 12 с гарнитурой по умолчанию. Если случайно передать размер первым параметром, платформа выдаст ошибку типа или проигнорирует настройку.

Типичные ошибки
01
Присвоение форматированной строки строковому реквизиту — оформление теряется, остаётся чистый текст
02
Передача параметров шрифта не в том порядке — размер попадает в имя шрифта, жирность не применяется
03
Ожидание жирного текста в сообщении через Сообщить() с обычной строкой — нужна именно ФорматированнаяСтрока
04
Вставка тегов <b> в поле, которое не является HTML-полем — теги выводятся как обычные символы

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

Контрольные точки

Как проверить результат

Отображение на форме
Норма

Фрагмент текста визуально толще остального

Тревожный признак

Текст однородный — шрифт не применён или элемент не поддерживает форматирование

Печатная форма
Норма

Ячейка жирная и в предпросмотре, и в PDF

Тревожный признак

Жирность видна на экране, но пропадает при печати — проблема с доступностью шрифта

Сохранение в базу
Норма

После повторного открытия текст на месте

Тревожный признак

Оформление исчезло — значение сохранено как обычная строка

FAQ

Можно ли сделать жирной часть текста в ячейке табличного документа?

Нет, свойство «Шрифт» ячейки применяется ко всему её содержимому. Чтобы выделить часть текста, разбейте содержимое на несколько ячеек с разным оформлением или используйте HTML-поле вместо табличного документа.

Работает ли жирный шрифт в сообщениях пользователю?

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

Почему жирность пропадает после записи данных в базу?

Реквизиты типа «Строка» хранят только символы. Форматирование существует только в момент отображения. Если нужно хранить форматированный текст, используйте реквизит типа «ФорматированнаяСтрока» (доступен, например, для полей формы) или храните HTML-разметку в строковом реквизите и рендерьте её в HTML-поле.

Как сделать жирный текст в мобильном клиенте или веб-клиенте?

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

Можно ли выделить жирным текст в запросе или в СКД без кода?

В запросе — нет, запрос возвращает только данные. В СКД оформление настраивается на вкладке «Условное оформление» в настройках отчёта: добавьте условие и выберите шрифт с жирным начертанием, код не требуется.

Итог

Что важно запомнить

Обычная строка в 1С не хранит оформление. Жирность задаётся в точке вывода: форматированная строка с объектом Шрифт — для форм и сообщений, свойство Шрифт области — для табличных документов и печати, тег <b> — для HTML-полей, условное оформление — для отчётов на СКД. При сохранении в строковые реквизиты оформление теряется.