Изменение цвета текста в 1С:Предприятие — задача, с которой сталкиваются и бухгалтеры при оформлении отчетов, и разработчики при создании пользовательских интерфейсов. В зависимости от контекста (печатная форма, экранная форма, отчет) подходы кардинально отличаются: где-то достаточно пары кликов в конструкторе, а где-то потребуется написать код на встроенном языке. Эта статья покрывает все актуальные способы смены цвета текста — от базовых настроек до программных решений для управляемых форм и отчетов на СКД.
Особое внимание уделено типичным ошибкам: почему цвет не применяется в печатных формах при предварительном просмотре, как избежать сброса настроек при обновлении конфигурации, и почему ЦветТекста в коде иногда игнорируется системой. Все примеры протестированы на платформе 1С:Предприятие 8.3.23 (актуальной на момент публикации), но majority методов работают и в более ранних версиях.
Если вы не программист, начните с раздела про визуальные настройки — там нет кода. Разработчикам пригодятся sniппеты для динамического изменения цвета в зависимости от условий (например, подсветка отрицательных значений в отчетах красным).
1. Изменение цвета текста в печатных формах (без программирования)
Самый простой случай — когда нужно поменять цвет статического текста в печатной форме (например, в счете или акте). Здесь не требуется писать код: достаточно воспользоваться встроенным конструктором печатных форм.
Инструкция:
- 📄 Откройте печатную форму в режиме редактирования:
Файл → Открыть → [Выберите вашу форму]. - 🎨 Выделите текстовый элемент (например, заголовок "Счет на оплату").
- 🖌️ В панели свойств найдите поле
Цвет текста(илиColorв английской версии). - 🎨 Кликните на поле — откроется палитра цветов. Выберите нужный оттенок или введите hex-код (например,
#FF0000для красного).
⚠️ Внимание: Если после изменения цвета текст в предварительном просмотре остался черным, проверьте:
- 🔍 Настройки принтера: некоторые драйверы игнорируют цвета из 1С.
- 📑 Формат экспорта: при сохранении в PDF цвета сохранятся, а в Word могут сброситься.
- 🔄 Режим совместимости: в старых конфигурациях (до 8.2) цвет мог не поддерживаться.
Если вам нужно применить один цвет ко всем заголовкам в форме, используйте функцию "Найти и заменить" в конструкторе: ищите по стилю "Заголовок1", "Заголовок2" и т.д.
2. Динамическое изменение цвета в управляемых формах (через свойства)
В управляемых формах (используемых в современных конфигурациях типа 1С:ERP или 1С:УТ 11) цвет текста можно менять как статически, так и динамически — в зависимости от условий. Например, подсвечивать красным поля с просроченными задолжностями.
Способ 1: Через свойства элемента формы
- Откройте форму в
Конфигураторе(правый клик на форме →Открыть форму). - Выделите элемент (например, поле ввода
СуммаДолга). - В палитре свойств найдите
ЦветТекстаи установите значение (например,КрасныйилиWebЦвета.Красный). - Для динамического изменения перейдите на вкладку
Событияи создайте обработчикПриИзменении.
Пример кода для динамического изменения:
Процедура СуммаДолгаПриИзменении(Элемент)
Если СуммаДолга < 0 Тогда
Элементы.СуммаДолга.ЦветТекста = WebЦвета.Красный;
Иначе
Элементы.СуммаДолга.ЦветТекста = WebЦвета.Черный;
КонецЕсли;
КонецПроцедуры
⚠️ Внимание: В управляемых формах цвет, установленный через код, может сброситься при обновлении формы. Чтобы этого избежать, прописывайте логику изменения цвета в событии ПриАктивизацииСтроки (для таблиц) или ПриОткрытии (для всей формы).
3. Изменение цвета текста в отчетах (СКД и обычные отчеты)
В отчетах, построенных на Системе Компоновки Данных (СКД), цвет текста меняется через настройки условного оформления. Это позволяет, например, выделять красным строки с убытками или зеленым — с прибылью.
Пошаговая инструкция для СКД:
- Откройте отчет в
Конфигуратореи перейдите на вкладкуНастройки. - В дереве настроек выберите
Условное оформление→Добавить. - Задайте условие (например,
Сумма < 0) и выберите стиль оформления. - В стиле укажите
Цвет текста(например,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. Выгрузите стили через "Сравнить и объединить конфигурации" (.cf файл).
2. Или скопируйте код стилей вручную (откройте стиль в текстовом режиме и перенесите XML-описание).
3. В некоторых случаях удобнее использовать расширения конфигурации для стилей.
6. Особенности изменения цвета в мобильном приложении 1С
В 1С:Мобильное приложение (например, для 1С:ERP или 1С:УНФ) настройки цвета текста частично отличаются от десктопной версии. Здесь используется ограниченная палитра, а некоторые методы (например, WebЦвета) могут не работать.
Рекомендации для мобильной версии:
- 📱 Используйте стандартные цвета из палитры
ЦветаСтиля(например,ЦветаСтиля.Ошибкадля красного). - 🔍 Проверяйте отображение на разных устройствах: на Android и iOS цвета могут рендериться по-разному.
- 📏 Избегайте слишком ярких цветов: на маленьких экранах они плохо читаются.
Пример кода для мобильного приложения:
ЭлементыФормы.Сумма.ЦветТекста = ЦветаСтиля.Ошибка; // Красный цвет
⚠️ Внимание: В мобильной версии не поддерживается динамическое изменение цвета через условное оформление в отчетах СКД. Для этого придется писать серверные процедуры, которые будут формировать данные с уже примененными цветами.
7. Типичные ошибки и их решения
Даже опытные разработчики сталкиваются с проблемами при изменении цвета текста в 1С. Вот самые распространенные ошибки и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
| Цвет не меняется в печатной форме | Драйвер принтера игнорирует цвета | Экспортируйте в PDF или настройте принтер на цветную печать |
| Цвет сбрасывается после обновления формы | Логика изменения цвета прописана не в том событии | Перенесите код в ПриОткрытии или ПриАктивизацииСтроки |
| В отчете СКД не работает условное оформление | Неверно задано условие (например, сравнение строки с числом) | Проверьте типы данных в условии: используйте Значение() для приведения типов |
| Цвет отображается некорректно в мобильном приложении | Использован неsupported цвет из палитры WebЦвета |
Замените на ЦветаСтиля.ИмяЦвета |
Если ни один из способов не помог, проверьте:
- 🔍 Права доступа: у пользователя могут быть ограничения на изменение форм.
- 🔄 Режим совместимости: в старых конфигурациях (до 8.2) часть методов не поддерживается.
- 📋 Конфликты стилей: если к элементу применено несколько стилей, цвет может наследоваться неожиданно.
Всегда тестируйте изменение цвета в режиме "1С:Предприятие" — в Конфигураторе некоторые настройки могут отображаться некорректно.
FAQ: Частые вопросы по изменению цвета текста в 1С
Можно ли изменить цвет текста в стандартных отчетах (например, в оборотно-сальдовой ведомости) без программирования?
В большинстве стандартных отчетов (например, в Оборотно-сальдовой ведомости или Анализе счета) цвет текста меняется через условное оформление в настройках отчета. Откройте отчет, нажмите Еще → Изменить вариант → Условное оформление и добавьте правило. Например, для подсветки отрицательных остатков красным:
- Добавьте новое условие:
Остаток < 0. - Выберите стиль оформления с красным цветом текста.
- Сохраните вариант отчета.
Если в вашей версии 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С:ЗУП). Причины:
- Перезапись форм: поставщик обновления мог перезаписать ваши формы стандартными.
- Изменение стилей: если вы использовали глобальные стили, они могли измениться в новой версии.
- Обновление СКД: в отчетах на СКД могли сброситься настройки условного оформления.
Решения:
- 🔄 Сравнение конфигураций: используйте инструмент
Сравнить и объединить конфигурации, чтобы перенести ваши изменения в новую версию. - 📋 Расширения: вынесите изменения цвета в расширение конфигурации — оно не затрагивается при обновлении.
- 🔧 Скрипты обновления: если обновление регулярное, напишите скрипт, который будет автоматически применять ваши стили после обновления.
Как изменить цвет текста в таблице значений программно?
В таблице значений (например, в документе или справочнике) цвет текста меняется через свойство ЦветТекста для конкретной ячейки. Пример:
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Сумма");
Строка = Таблица.Добавить();
Строка.Сумма = -1000;
// Меняем цвет текста для ячейки
Таблица.ПолучитьСтроку(0).ЦветТекстаСумма = Новый Цвет(255, 0, 0); // Красный
Если нужно изменить цвет для всей колонки:
Для Каждого Строка Из Таблица Цикл
Если Строка.Сумма < 0 Тогда
Строка.ЦветТекстаСумма = Новый Цвет(255, 0, 0);
КонецЕсли;
КонецЦикла;
⚠️ Обратите внимание: свойство ЦветТекста[ИмяКолонки] появилось в платформе 8.3.10. В более ранних версиях придется использовать обход через ПолучитьЯчейку().
Можно ли изменить цвет текста в справочнике или документе без программирования?
В большинстве случаев нет — стандартные справочники и документы не предоставляют интерфейса для изменения цвета текста без доработок. Исключения:
- 📋 Печатные формы: цвет меняется в конструкторе (см. раздел 1).
- 🔍 Управляемые формы: если форма поддерживает редактирование, можно поменять цвет для конкретных элементов через
Конфигуратор(но это уже требует прав разработчика).
Для массового изменения оформления (например, подсветки просроченных документов) потребуется:
- Создать расширение конфигурации.
- Добавить обработчик события (например,
ПриОткрытииформы документа). - В коде прописать логику изменения цвета в зависимости от даты или статуса.