Изменение цвета текста в 1С:Предприятие — задача, с которой сталкиваются и бухгалтеры при оформлении отчетов, и разработчики при создании пользовательских интерфейсов. В зависимости от контекста (печатная форма, экранная форма, отчет) подходы кардинально отличаются: где-то достаточно пары кликов в конструкторе, а где-то потребуется написать код на встроенном языке. Эта статья покрывает все актуальные способы смены цвета текста — от базовых настроек до программных решений для управляемых форм и отчетов на СКД.

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

Если вы не программист, начните с раздела про визуальные настройки — там нет кода. Разработчикам пригодятся sniппеты для динамического изменения цвета в зависимости от условий (например, подсветка отрицательных значений в отчетах красным).

1. Изменение цвета текста в печатных формах (без программирования)

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

Инструкция:

  • 📄 Откройте печатную форму в режиме редактирования: Файл → Открыть → [Выберите вашу форму].
  • 🎨 Выделите текстовый элемент (например, заголовок "Счет на оплату").
  • 🖌️ В панели свойств найдите поле Цвет текста (или Color в английской версии).
  • 🎨 Кликните на поле — откроется палитра цветов. Выберите нужный оттенок или введите hex-код (например, #FF0000 для красного).

⚠️ Внимание: Если после изменения цвета текст в предварительном просмотре остался черным, проверьте:

  • 🔍 Настройки принтера: некоторые драйверы игнорируют цвета из 1С.
  • 📑 Формат экспорта: при сохранении в PDF цвета сохранятся, а в Word могут сброситься.
  • 🔄 Режим совместимости: в старых конфигурациях (до 8.2) цвет мог не поддерживаться.
💡

Если вам нужно применить один цвет ко всем заголовкам в форме, используйте функцию "Найти и заменить" в конструкторе: ищите по стилю "Заголовок1", "Заголовок2" и т.д.

2. Динамическое изменение цвета в управляемых формах (через свойства)

В управляемых формах (используемых в современных конфигурациях типа 1С:ERP или 1С:УТ 11) цвет текста можно менять как статически, так и динамически — в зависимости от условий. Например, подсвечивать красным поля с просроченными задолжностями.

Способ 1: Через свойства элемента формы

  1. Откройте форму в Конфигураторе (правый клик на форме → Открыть форму).
  2. Выделите элемент (например, поле ввода СуммаДолга).
  3. В палитре свойств найдите ЦветТекста и установите значение (например, Красный или WebЦвета.Красный).
  4. Для динамического изменения перейдите на вкладку События и создайте обработчик ПриИзменении.

Пример кода для динамического изменения:

Процедура СуммаДолгаПриИзменении(Элемент)

Если СуммаДолга < 0 Тогда

Элементы.СуммаДолга.ЦветТекста = WebЦвета.Красный;

Иначе

Элементы.СуммаДолга.ЦветТекста = WebЦвета.Черный;

КонецЕсли;

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

⚠️ Внимание: В управляемых формах цвет, установленный через код, может сброситься при обновлении формы. Чтобы этого избежать, прописывайте логику изменения цвета в событии ПриАктивизацииСтроки (для таблиц) или ПриОткрытии (для всей формы).

📊 Какой цвет вы чаще используете для подсветки важных данных?
Красный
Зеленый
Синий
Оранжевый
Другой

3. Изменение цвета текста в отчетах (СКД и обычные отчеты)

В отчетах, построенных на Системе Компоновки Данных (СКД), цвет текста меняется через настройки условного оформления. Это позволяет, например, выделять красным строки с убытками или зеленым — с прибылью.

Пошаговая инструкция для СКД:

  1. Откройте отчет в Конфигураторе и перейдите на вкладку Настройки.
  2. В дереве настроек выберите Условное оформлениеДобавить.
  3. Задайте условие (например, Сумма < 0) и выберите стиль оформления.
  4. В стиле укажите Цвет текста (например, RGB(255,0,0) для красного).

Для обычных отчетов (не на СКД) цвет меняется через код в процедуре вывода. Пример:

Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, ДанныеВывода)

Если ДанныеВывода.Сумма < 0 Тогда

ДанныеВывода.ЦветТекста = Новый Цвет(255, 0, 0); // Красный

КонецЕсли;

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

Тип отчета Метод изменения цвета Пример условия
СКД Условное оформление Сумма < 0 → красный
Обычный отчет Код в ПриКомпоновкеРезультата Если Значение > 1000 Тогда ЦветТекста = Зеленый
Табличный документ Метод УстановитьЦветТекста() Область.ЦветТекста = Новый Цвет(0, 0, 255)

4. Программное изменение цвета в табличных документах

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

Пример кода для подсветки отрицательных значений в таблице:

Процедура ЗаполнитьТабличныйДокумент(ТабДок)

Область = ТабДок.Область(1, 1, 10, 5); // Диапазон ячеек

Для Каждого Строка Из Область.Строки Цикл

Если Значение(Строка.Текст) < 0 Тогда

Строка.ЦветТекста = Новый Цвет(255, 0, 0); // Красный

КонецЕсли;

КонецЦикла;

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

⚠️ Внимание: При экспорте табличного документа в Excel цвета сохранятся, но при печати на некоторых принтерах могут преобразоваться в оттенки серого. Чтобы избежать этого, настройте драйвер принтера на печать в режиме "Цветная".

Выделен правильный диапазон ячеек|Учтена разрядность чисел (например, 1000.00 vs 1000)|Проверены права доступа к объекту|Сохранена резервная копия отчета-->

5. Использование стилей для массового изменения цвета

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

Как создать стиль:

  1. В Конфигураторе откройте ветку Общие → Стили.
  2. Создайте новый стиль (например, СтильОтрицательныхЗначений).
  3. В настройках стиля укажите Цвет текста = Красный.
  4. Примените стиль к нужным элементам через свойство Стиль.

Пример применения стиля в коде:

ЭлементыФормы.СуммаДолга.Стиль = Стили.СтильОтрицательныхЗначений;

Преимущества подхода:

  • ⚡ Быстрое изменение оформления во всей конфигурации.
  • 🔄 Легкое обновление: достаточно поменять стиль в одном месте.
  • 🎨 Поддержка сложных условий (например, градиенты или полужирный текст + цвет).
Как перенести стили между конфигурациями?

Стили хранятся в дереве конфигурации как отдельные объекты. Чтобы перенести их в другую базу:

1. Выгрузите стили через "Сравнить и объединить конфигурации" (.cf файл).

2. Или скопируйте код стилей вручную (откройте стиль в текстовом режиме и перенесите XML-описание).

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

6. Особенности изменения цвета в мобильном приложении 1С

В 1С:Мобильное приложение (например, для 1С:ERP или 1С:УНФ) настройки цвета текста частично отличаются от десктопной версии. Здесь используется ограниченная палитра, а некоторые методы (например, WebЦвета) могут не работать.

Рекомендации для мобильной версии:

  • 📱 Используйте стандартные цвета из палитры ЦветаСтиля (например, ЦветаСтиля.Ошибка для красного).
  • 🔍 Проверяйте отображение на разных устройствах: на Android и iOS цвета могут рендериться по-разному.
  • 📏 Избегайте слишком ярких цветов: на маленьких экранах они плохо читаются.

Пример кода для мобильного приложения:

ЭлементыФормы.Сумма.ЦветТекста = ЦветаСтиля.Ошибка; // Красный цвет

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

7. Типичные ошибки и их решения

Даже опытные разработчики сталкиваются с проблемами при изменении цвета текста в 1С. Вот самые распространенные ошибки и способы их исправления:

Ошибка Причина Решение
Цвет не меняется в печатной форме Драйвер принтера игнорирует цвета Экспортируйте в PDF или настройте принтер на цветную печать
Цвет сбрасывается после обновления формы Логика изменения цвета прописана не в том событии Перенесите код в ПриОткрытии или ПриАктивизацииСтроки
В отчете СКД не работает условное оформление Неверно задано условие (например, сравнение строки с числом) Проверьте типы данных в условии: используйте Значение() для приведения типов
Цвет отображается некорректно в мобильном приложении Использован неsupported цвет из палитры WebЦвета Замените на ЦветаСтиля.ИмяЦвета

Если ни один из способов не помог, проверьте:

  • 🔍 Права доступа: у пользователя могут быть ограничения на изменение форм.
  • 🔄 Режим совместимости: в старых конфигурациях (до 8.2) часть методов не поддерживается.
  • 📋 Конфликты стилей: если к элементу применено несколько стилей, цвет может наследоваться неожиданно.
💡

Всегда тестируйте изменение цвета в режиме "1С:Предприятие" — в Конфигураторе некоторые настройки могут отображаться некорректно.

FAQ: Частые вопросы по изменению цвета текста в 1С

Можно ли изменить цвет текста в стандартных отчетах (например, в оборотно-сальдовой ведомости) без программирования?

В большинстве стандартных отчетов (например, в Оборотно-сальдовой ведомости или Анализе счета) цвет текста меняется через условное оформление в настройках отчета. Откройте отчет, нажмите Еще → Изменить вариант → Условное оформление и добавьте правило. Например, для подсветки отрицательных остатков красным:

  1. Добавьте новое условие: Остаток < 0.
  2. Выберите стиль оформления с красным цветом текста.
  3. Сохраните вариант отчета.

Если в вашей версии 1С нет кнопки "Условное оформление", значит отчет не поддерживает эту функцию — потребуется доработка через Конфигуратор.

Как сделать градиентный текст в 1С?

В стандартных средствах 1С нет поддержки градиентного текста. Однако можно эмулировать этот эффект:

  • 🎨 Для печатных форм: разбейте текст на несколько элементов с разным цветом (например, каждая буква — отдельный текстовый блок).
  • 🖼️ Для экранных форм: используйте ПолеHTMLДокумента и вставьте HTML-код с градиентом через CSS.

Пример кода для HTML-поля:

ЭлементыФормы.ПолеHTML.HTMLТело =

"<span style='background: linear-gradient(to right, red, blue);

-webkit-background-clip: text;

color: transparent;'>Градиентный текст</span>";

⚠️ Учтите, что такой подход может не работать в тонком клиенте или мобильном приложении.

Почему после обновления конфигурации пропал цвет текста в формах?

Это типичная проблема при обновлении типовой конфигурации (например, 1С:Бухгалтерия или 1С:ЗУП). Причины:

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

Решения:

  • 🔄 Сравнение конфигураций: используйте инструмент Сравнить и объединить конфигурации, чтобы перенести ваши изменения в новую версию.
  • 📋 Расширения: вынесите изменения цвета в расширение конфигурации — оно не затрагивается при обновлении.
  • 🔧 Скрипты обновления: если обновление регулярное, напишите скрипт, который будет автоматически применять ваши стили после обновления.
Как изменить цвет текста в таблице значений программно?

В таблице значений (например, в документе или справочнике) цвет текста меняется через свойство ЦветТекста для конкретной ячейки. Пример:

Таблица = Новый ТаблицаЗначений;

Таблица.Колонки.Добавить("Сумма");

Строка = Таблица.Добавить();

Строка.Сумма = -1000;

// Меняем цвет текста для ячейки

Таблица.ПолучитьСтроку(0).ЦветТекстаСумма = Новый Цвет(255, 0, 0); // Красный

Если нужно изменить цвет для всей колонки:

Для Каждого Строка Из Таблица Цикл

Если Строка.Сумма < 0 Тогда

Строка.ЦветТекстаСумма = Новый Цвет(255, 0, 0);

КонецЕсли;

КонецЦикла;

⚠️ Обратите внимание: свойство ЦветТекста[ИмяКолонки] появилось в платформе 8.3.10. В более ранних версиях придется использовать обход через ПолучитьЯчейку().

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

В большинстве случаев нет — стандартные справочники и документы не предоставляют интерфейса для изменения цвета текста без доработок. Исключения:

  • 📋 Печатные формы: цвет меняется в конструкторе (см. раздел 1).
  • 🔍 Управляемые формы: если форма поддерживает редактирование, можно поменять цвет для конкретных элементов через Конфигуратор (но это уже требует прав разработчика).

Для массового изменения оформления (например, подсветки просроченных документов) потребуется:

  1. Создать расширение конфигурации.
  2. Добавить обработчик события (например, ПриОткрытии формы документа).
  3. В коде прописать логику изменения цвета в зависимости от даты или статуса.