Выделение строк цветом в 1С:Предприятие — полезный инструмент для визуального анализа данных. С его помощью можно быстро находить критические значения, группировать записи по статусу или подсвечивать ошибки в отчетах. Однако стандартный интерфейс программы не всегда предлагает очевидные способы такой настройки. В этой статье мы разберем все доступные методы: от простых настроек условного оформления до программного кода для опытных пользователей.
Особенность работы с цветами в 1С 8.3 заключается в том, что возможности зависят от конкретного объекта: табличный документ, динамический список, отчет или управляемая форма. Где-то достаточно пары кликов, а где-то потребуется написать обработчик на встроенном языке. Мы рассмотрим универсальные решения, которые работают в большинстве конфигураций (Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и других).
Важно: если вы работаете с управляемыми формами, часть методов будет отличаться от обычных форм. В статье мы отметим такие случаи специальными пометками. Также учтите, что настройки цветов могут сбрасываться при обновлении конфигурации — об этом мы расскажем в разделе про сохранение пользовательских параметров.
1. Условное оформление в табличных документах
Самый простой способ выделить строки — использовать условное оформление в табличных документах (например, в отчетах или печатных формах). Этот метод не требует программирования и доступен даже начинающим пользователям.
Чтобы настроить цветовые правила:
- Откройте нужный отчет или табличный документ
- Перейдите в меню
Действия → Условное оформление - Нажмите "Добавить правило" и укажите условие (например, "Если значение в колонке 'Сумма' > 10000")
- Выберите цвет фона или шрифта для подсветки
- Сохраните настройки
Пример условия для выделения просроченных документов:
ДатаОплаты < ТекущаяДата()
Убедитесь, что колонка для условия существует в таблице|
Проверьте формат данных (даты сравниваются с датами, числа с числами)|
Тестируйте правила на реальных данных, а не на пустой таблице|
Сохраните настройки как пользовательский вариант отчета
-->
Ограничение метода: условное оформление работает только в табличных документах и не распространяется на динамические списки или формы ввода. Для них потребуются другие подходы, о которых пойдет речь далее.
2. Настройка цветов в динамических списках
Динамические списки (например, в журналах документов) позволяют выделять строки через настройки представления. Этот метод подходит для пользователей без доступа к конфигуратору.
Инструкция:
- Откройте нужный журнал или список (например, "Счета к оплате")
- Нажмите
Еще → Настройка списка - Перейдите на вкладку "Условное оформление"
- Добавьте новое правило с условием и цветом
- Примените настройки
Пример для выделения счетов с большой суммой:
- 🔹 Условие:
СуммаДокумента > 50000 - 🔹 Цвет фона: светло-красный (#FFCCCC)
- 🔹 Цвет текста: темно-красный (#990000)
Для быстрого доступа к настройкам условного оформления в динамических списках используйте сочетание клавиш Ctrl+Shift+N (работает в большинстве конфигураций на управляемых формах).
Важный нюанс: настройки условного оформления в динамических списках сохраняются индивидуально для каждого пользователя и не затрагивают других сотрудников. Это удобно для персональной работы, но не подходит для корпоративных стандартов оформления.
3. Программное выделение строк (для разработчиков)
Если вам нужно гибкое решение с сложной логикой выделения, потребуется написать код на встроенном языке. Этот метод подходит для управляемых форм и позволяет реализовать любую логику окраски.
Базовый пример кода для обработчика события "ПриАктивизацииСтроки":
Процедура СписокДокументовПриАктивизацииСтроки(Элемент, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.СписокДокументов.ТекущиеДанные;
// Выделяем просроченные документы
Если ТекущаяСтрока.ДатаОплаты < ТекущаяДата() Тогда
Элемент.Оформление.ЦветФона = ВебЦвет.СветлоКрасный;
Элемент.Оформление.ЦветТекста = ВебЦвет.ТемноКрасный;
Иначе
// Сбрасываем цвет для остальных строк
Элемент.Оформление.ЦветФона = Неопределено;
Элемент.Оформление.ЦветТекста = Неопределено;
КонецЕсли;
КонецПроцедуры
Более сложный вариант с несколькими условиями:
Процедура СписокНоменклатурыПриОформленииСтроки(Элемент, ОформляемаяСтрока, СтандартнаяОбработка)
ДанныеСтроки = ОформляемаяСтрока.Данные;
// Выделяем товары с низким остатком
Если ДанныеСтроки.Остаток < ДанныеСтроки.МинимальныйОстаток Тогда
ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоОранжевый;
// Выделяем неактивные позиции
ИначеЕсли НЕ ДанныеСтроки.Активность Тогда
ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоСерый;
ОформляемаяСтрока.ЦветТекста = ВебЦвет.Серый;
КонецЕсли;
КонецПроцедуры
Как получить доступ к обработчикам формы?
Чтобы добавить программный код, откройте форму в конфигураторе (меню Файл → Открыть конфигурацию), найдите нужную форму в дереве объектов, перейдите на вкладку "Модуль" и выберите соответствующее событие (например, ПриАктивизацииСтроки или ПриОформленииСтроки).
Преимущество программного метода — гибкость. Вы можете:
- 🔹 Использовать сложные условия с несколькими параметрами
- 🔹 Динамически менять цвета в зависимости от данных
- 🔹 Применять разные стили для разных колонок
- 🔹 Сохранять настройки для всех пользователей
4. Выделение в отчетах и СКД
Для отчетов, созданных с помощью Системы Компоновки Данных (СКД), есть специальные настройки условного оформления. Они позволяют выделять не только строки, но и отдельные ячейки.
Как настроить:
- Откройте нужный отчет в режиме редактирования
- Перейдите на вкладку "Условное оформление"
- Добавьте новое правило
- Укажите выражение (например,
Сумма > 10000) - Выберите стиль оформления (цвет фона, шрифта, шрифт)
- Примените настройки
Пример выражения для выделения убыточных позиций:
СуммаПрихода - СуммаРасхода < 0
| Тип отчета | Доступные настройки | Ограничения |
|---|---|---|
| Табличный документ | Цвет фона, цвет текста, шрифт | Не работает в динамических списках |
| Динамический список | Цвет фона, цвет текста | Настройки индивидуальны для каждого пользователя |
| СКД-отчет | Цвет фона, цвет текста, шрифт, границы | Требует прав на редактирование отчета |
| Управляемая форма | Полный контроль через код | Требуются навыки программирования |
Для сложных отчетов с группировками можно использовать Вычисляемые поля в СКД, которые будут служить основой для условного оформления. Например, создать поле "СтатусОплаты" со значениями "Просрочено"/"В срок"/"Оплачено" и выделять каждую категорию своим цветом.
5. Использование расширений для цветовой маркировки
Если вам нужно выделить строки в стандартных отчетах без изменения конфигурации, можно воспользоваться расширениями. Это безопасный способ кастомизации, который не затрагивает основную конфигурацию.
Как создать расширение для выделения строк:
- Откройте конфигуратор в режиме предприятия
- Перейдите в
Администрирование → Печатные формы, отчеты и обработки → Расширения - Создайте новое расширение
- Добавьте обработчик события для нужной формы/отчета
- Напишите код выделения (аналогично примеру из раздела 3)
- Сохраните и подключите расширение
Пример кода для расширения, выделяющего отрицательные остатки:
Процедура ДокументСписокПриОформленииСтроки(Элемент, ОформляемаяСтрока, СтандартнаяОбработка)
Если ОформляемаяСтрока.Данные.Остаток < 0 Тогда
ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоРозовый;
ОформляемаяСтрока.ЦветТекста = ВебЦвет.Красный;
КонецЕсли;
КонецПроцедуры
Преимущества расширений:
- 🔹 Не требуют изменения основной конфигурации
- 🔹 Легко отключаются при необходимости
- 🔹 Можно распределять между пользователями
- 🔹 Сохраняются при обновлении 1С
6. Сохранение и перенос настроек цветов
Одна из распространенных проблем — сброс настроек цветов после обновления конфигурации или при работе на другом компьютере. Чтобы этого избежать, нужно правильно сохранять и переносить пользовательские параметры.
Способы сохранения:
- 🔹 Для условного оформления в отчетах: сохраните вариант отчета как пользовательский (кнопка "Сохранить вариант")
- 🔹 Для динамических списков: настройки сохраняются автоматически в пользовательском профиле
- 🔹 Для программных решений: экспортируйте расширение или конфигурацию
- 🔹 Для переноса между базами: используйте файлы
.epf(для обычных форм) или.cfe(для управляемых)
Чтобы перенести настройки условного оформления между пользователями:
- Экспортируйте настройки через
Файл → Сохранить данные пользователя - Выберите нужные параметры (включая "Настройки условного оформления")
- Сохраните в файл
.dt - Импортируйте на другом компьютере через
Файл → Загрузить данные пользователя
Настройки условного оформления в динамических списках привязаны к конкретному пользователю и компьютеру. Для их переноса обязательно используйте механизм экспорта/импорта пользовательских данных.
Для программных решений лучший способ сохранения — создание общих модулей с процедурами оформления. Тогда при обновлении конфигурации достаточно будет только переподключить модуль, не переписывая код в каждой форме отдельно.
7. Типичные ошибки и их решения
При работе с цветовым выделением строк пользователи часто сталкиваются с типичными проблемами. Вот наиболее распространенные из них и способы их решения:
⚠️ Внимание: Если цвета не применяются к строкам, проверьте сначала, что условие написано правильно. Частая ошибка — сравнение дат в разных форматах или чисел с текстом.
| Проблема | Возможная причина | Решение |
|---|---|---|
| Цвета не отображаются | Неверное условие в правиле | Проверьте синтаксис выражения, используйте отладчик |
| Цвета сбрасываются | Обновление конфигурации | Используйте расширения или сохраняйте пользовательские варианты |
| Медленная работа | Слишком много правил оформления | Оптимизируйте условия, используйте индексируемые поля |
| Цвета не печатаются | Настройки принтера игнорируют фон | Настройте параметры печати или экспортируйте в PDF |
Еще одна частая ошибка — попытка выделить строки в неправильном объекте. Например, некоторые пользователи пытаются настроить условное оформление в форме документа, где это технически невозможно. В таких случаях нужно либо использовать программный код, либо выгружать данные в табличный документ.
Если вы работаете с тонким клиентом, учтите, что некоторые настройки оформления могут не поддерживаться. В этом случае попробуйте:
- 🔹 Использовать веб-клиент
- 🔹 Упростить условия оформления
- 🔹 Применять выделение только к критически важным данным
8. Альтернативные способы визуального выделения
Если цветовая маркировка по каким-то причинам недоступна или неудобна, можно использовать альтернативные методы визуального выделения строк:
1. Значки и пиктограммы
В управляемых формах можно добавлять колонку со значками, которые будут отображать статус записи. Например:
Если Сумма > 10000 Тогда
Картинка = БиблиотекаКартинок.Деньги;
ИначеЕсли Дата < ТекущаяДата() Тогда
Картинка = БиблиотекаКартинок.Внимание;
КонецЕсли;
2. Группировка данных
Вместо выделения цветом можно сгруппировать данные по нужному признаку. Например, в отчете по контрагентам создать группы "Крупные клиенты", "Мелкие клиенты", "Просроченные платежи".
3. Выделение шрифтом
Вместо цвета фона можно использовать:
- 🔹 Жирный шрифт для важных строк
- 🔹 Курсив для вторичной информации
- 🔹 Подчеркивание для ссылок
4. Дополнительные колонки со статусами
Добавляйте текстовые колонки, которые будут явно показывать статус записи:
Статус = ?(ДатаОплаты < ТекущаяДата(), "ПРОСРОЧЕНО",
?(Сумма > 100000, "КРУПНЫЙ", "СТАНДАРТНЫЙ"));
Эти методы часто оказываются даже более эффективными, чем цветовая маркировка, особенно когда нужно выделить много разных категорий данных.
Для лучшей читаемости комбинируйте цветовое выделение с другими методами. Например, просроченные документы можно выделять красным цветом И значком часов, а крупные суммы — зеленым цветом И жирным шрифтом.
Часто задаваемые вопросы
Можно ли выделить цветом отдельные ячейки в таблице, а не всю строку?
Да, в табличных документах и СКД-отчетах можно выделять отдельные ячейки. Для этого в настройках условного оформления укажите конкретную колонку в условии. Например: Колонка("Сумма") > 10000. В динамических списках и управляемых формах обычно доступно только выделение всей строки.
Почему после обновления 1С пропали все мои настройки цветов?
Это происходит потому, что настройки условного оформления в динамических списках и некоторых отчетах хранятся в пользовательском профиле, который может сбрасываться при обновлении. Чтобы избежать потери:
- Сохраняйте пользовательские варианты отчетов
- Используйте расширения для программных решений
- Экспортируйте настройки перед обновлением
Если настройки уже пропали, попробуйте восстановить их из резервной копии базы или перенастройте вручную.
Как выделить цветом строки в мобильном приложении 1С?
В мобильном приложении возможности выделения строк ограничены. Вы можете:
- 🔹 Использовать стандартные настройки условного оформления (если они поддерживаются в вашей конфигурации)
- 🔹 Добавлять текстовые пометки в колонках (например, "[ВАЖНО]")
- 🔹 Сортировать данные так, чтобы важные строки были вверху
Цветовое оформление в мобильной версии часто игнорируется из-за ограничений платформы. Для критических задач рекомендуем использовать десктопную версию.
Можно ли автоматически рассылать отчеты с цветовым выделением по email?
Да, но с некоторыми оговорками:
- 🔹 При экспорте в
Excelцветовое оформление сохраняется - 🔹 В
PDFцвета обычно сохраняются, но это зависит от настроек экспорта - 🔹 При отправке как картинка (например, скриншот) цвета будут видны
- 🔹 В текстовом формате (
TXT,CSV) оформление теряется
Для автоматической рассылки с сохранением цветов настройте экспорт отчета в Excel и используйте стандартный функционал отправки почты из 1С.
Как сделать, чтобы разные пользователи видели разные цвета для одних и тех же данных?
Это можно реализовать несколькими способами:
- Через настройки прав: создать разные роли с разными настройками условного оформления
- Программно: в коде обработчика проверять текущего пользователя и применять разные стили:
Если ТекущийПользователь().Имя = "Иванов" ТогдаЦвет = ВебЦвет.СветлоЗеленый;
ИначеЕсли ТекущийПользователь().Имя = "Петров" Тогда
Цвет = ВебЦвет.СветлоГолубой;
КонецЕсли;
- Через пользовательские настройки: позволить каждому пользователю настраивать свои цвета в личном профиле
Самый гибкий вариант — программное решение с проверкой пользователя, но оно требует доступа к конфигуратору.