Как программно увеличить текст и сделать его жирным в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

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

Разграничение: код и интерфейс

Прежде всего, проанализируем ситуацию, описанную в вопросе. Если разработчик хочет сделать строку Текст = "Любой текст"; жирной прямо в Модуле объекта, чтобы она выделялась среди других строк кода, то встроенными средствами платформы это сделать невозможно. Редактор кода в конфигураторе работает по принципу синтаксического выделения, где цвета и стили жестко привязаны к типам конструкций (ключевые слова, комментарии, строки).

Однако, если задача состоит в том, чтобы переменная Текст при выводе на форму или в печатную форму стала крупной и жирной, у нас есть несколько мощных инструментов. Рассмотрим их по порядку.

Способ 1. Использование объекта ФорматированнаяСтрока

Это основной и наиболее современный способ оформления текста в управляемых формах. Объект ФорматированнаяСтрока позволяет комбинировать различные стили в рамках одной надписи.

Разберем по шагам, как создать увеличенный жирный текст:

  1. Создадим объект Шрифт, указав нужный размер и признак жирности.
  2. Сформируем ФорматированнуюСтроку, передав в нее текст и созданный шрифт.
  3. Выведем результат на форму в поле типа Поле надписи.

Пример программной реализации:


// 1. Создаем шрифт: имя (пусто - системный), размер (14), жирный (Истина)
НужныйШрифт = Новый Шрифт(,, 14, Истина);

// 2. Создаем форматированную строку
ТекстДляВывода = Новый ФорматированнаяСтрока("Внимание! Важное сообщение", НужныйШрифт, ЦветаСтиля.ЦветОшибки);

// 3. Присваиваем реквизиту формы, который связан с декорацией или полем надписи
Объект.ИмяРеквизитаФормы = ТекстДляВывода;

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

Способ 2. Использование HTML-поля (максимальная гибкость)

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

Выясним, как это реализовать кодом:


// Формируем строку с HTML-разметкой
// b - жирный, style font-size - размер в пикселях
ТекстHTML = "<html><body>";
ТекстHTML = ТекстHTML + "<p style='font-size:20px; font-weight:bold; font-family:Arial;'>";
ТекстHTML = ТекстHTML + "Этот текст очень крупный и жирный";
ТекстHTML = ТекстHTML + "</p></body></html>";

// Присваиваем реквизиту формы с типом "Строка", 
// связанному с элементом "Поле HTML документа"
ЭтаФорма.РеквизитHTML = ТекстHTML;

Этот подход позволяет обойти любые ограничения платформы по оформлению, так как 1С просто отрисовывает HTML-код внутри своей формы.

Способ 3. Условное оформление (для списков и таблиц)

Когда нам нужно выделить текст в строках динамического списка или табличной части, ФорматированнаяСтрока не поможет. В этой ситуации мы используем механизм Условного оформления — есть инструмент настройки интерфейса и правил отображения.

Рассмотрим, как программно добавить правило оформления:


// Добавляем новый элемент условного оформления
ЭлементОформления = УсловноеОформление.Элементы.Добавить();

// Указываем, ЧТО именно менять (шрифт)
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,, 12, Истина));

// Указываем, для КАКИХ полей применять
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ИмяКолонкиТаблицы");

// Указываем УСЛОВИЕ (необязательно, если нужно для всех строк)
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ИмяКолонки");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.ПравоеЗначение = 100;

Проанализируем ситуацию: этот код заставит все значения в указанной колонке стать жирными и крупными, если выполняется условие (значение больше 100). Это стандартный путь для работы с табличными данными в управляемом интерфейсе.

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

Если текст должен быть жирным и крупным в печатной форме (макете), мы работаем с объектом ОбластьЯчеекТабличногоДокумента — для этого подойдёт визуальный конструктор макетов печатных форм. Часто разработчики забывают, что можно менять шрифт не всей области, а только конкретной ячейки программно после её вывода.

Посмотрим на пример работы с областью макета:


// Получаем область из макета
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");

// Изменяем шрифт конкретной ячейки в этой области
// Берем текущий шрифт и меняем только размер и жирность
ТекущийШрифт = ОбластьМакета.Область("R1C1").Шрифт;
ОбластьМакета.Область("R1C1").Шрифт = Новый Шрифт(ТекущийШрифт, , 16, Истина);

// Выводим в итоговый табличный документ
ТабДок.Вывести(ОбластьМакета);

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

Ограничения и важные нюансы

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

  1. Стандартные сообщения: Функции Сообщить() и ПоказатьПредупреждение() используют системный шрифт. Вы не сможете сделать текст внутри них жирным. Если нужно красивое уведомление — создавайте отдельную маленькую форму — в этом поможет конструктор оповещений с настраиваемыми шаблонами.
  2. Заголовки окон: Заголовок всей программы или заголовок формы (через свойство Заголовок) также не поддерживает форматирование.
  3. Подсказки: Всплывающие подсказки у кнопок и полей ввода имеют фиксированный системный стиль.

Настройка шрифта в самом Конфигураторе

Если же ваш вопрос все-таки касался того, как ВАМ как разработчику видеть код более крупным, разберем настройку самой среды 1С:

Перейдите в меню Сервис — Параметры. На вкладке Текстовый редактор выберите пункт Цвета и шрифты. Здесь вы можете установить шрифт (например, Consolas или Courier New) и его размер (например, 14 или 16). Для этой задачи есть набор инструментов разработчика для настройки среды 1С. Это изменение применится ко всем модулям, которые вы открываете, что значительно снизит нагрузку на зрение при длительной работе.

Таким образом, мы выяснили, что для каждой конкретной задачи в 1С предусмотрен свой объект: ФорматированнаяСтрока для надписей на формах, Шрифт для таблиц и макетов, и HTML для самых сложных случаев дизайна.

← На главную