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

Особенность работы с цветами в 1С 8.3 заключается в том, что возможности зависят от конкретного объекта: табличный документ, динамический список, отчет или управляемая форма. Где-то достаточно пары кликов, а где-то потребуется написать обработчик на встроенном языке. Мы рассмотрим универсальные решения, которые работают в большинстве конфигураций (Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и других).

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

1. Условное оформление в табличных документах

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

Чтобы настроить цветовые правила:

  1. Откройте нужный отчет или табличный документ
  2. Перейдите в меню Действия → Условное оформление
  3. Нажмите "Добавить правило" и укажите условие (например, "Если значение в колонке 'Сумма' > 10000")
  4. Выберите цвет фона или шрифта для подсветки
  5. Сохраните настройки

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

ДатаОплаты < ТекущаяДата()

Убедитесь, что колонка для условия существует в таблице|

Проверьте формат данных (даты сравниваются с датами, числа с числами)|

Тестируйте правила на реальных данных, а не на пустой таблице|

Сохраните настройки как пользовательский вариант отчета

-->

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

2. Настройка цветов в динамических списках

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

Инструкция:

  1. Откройте нужный журнал или список (например, "Счета к оплате")
  2. Нажмите Еще → Настройка списка
  3. Перейдите на вкладку "Условное оформление"
  4. Добавьте новое правило с условием и цветом
  5. Примените настройки

Пример для выделения счетов с большой суммой:

  • 🔹 Условие: СуммаДокумента > 50000
  • 🔹 Цвет фона: светло-красный (#FFCCCC)
  • 🔹 Цвет текста: темно-красный (#990000)
💡

Для быстрого доступа к настройкам условного оформления в динамических списках используйте сочетание клавиш Ctrl+Shift+N (работает в большинстве конфигураций на управляемых формах).

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

3. Программное выделение строк (для разработчиков)

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

Базовый пример кода для обработчика события "ПриАктивизацииСтроки":

Процедура СписокДокументовПриАктивизацииСтроки(Элемент, СтандартнаяОбработка)

ТекущаяСтрока = Элементы.СписокДокументов.ТекущиеДанные;

// Выделяем просроченные документы

Если ТекущаяСтрока.ДатаОплаты < ТекущаяДата() Тогда

Элемент.Оформление.ЦветФона = ВебЦвет.СветлоКрасный;

Элемент.Оформление.ЦветТекста = ВебЦвет.ТемноКрасный;

Иначе

// Сбрасываем цвет для остальных строк

Элемент.Оформление.ЦветФона = Неопределено;

Элемент.Оформление.ЦветТекста = Неопределено;

КонецЕсли;

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

Более сложный вариант с несколькими условиями:

Процедура СписокНоменклатурыПриОформленииСтроки(Элемент, ОформляемаяСтрока, СтандартнаяОбработка)

ДанныеСтроки = ОформляемаяСтрока.Данные;

// Выделяем товары с низким остатком

Если ДанныеСтроки.Остаток < ДанныеСтроки.МинимальныйОстаток Тогда

ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоОранжевый;

// Выделяем неактивные позиции

ИначеЕсли НЕ ДанныеСтроки.Активность Тогда

ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоСерый;

ОформляемаяСтрока.ЦветТекста = ВебЦвет.Серый;

КонецЕсли;

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

Как получить доступ к обработчикам формы?

Чтобы добавить программный код, откройте форму в конфигураторе (меню Файл → Открыть конфигурацию), найдите нужную форму в дереве объектов, перейдите на вкладку "Модуль" и выберите соответствующее событие (например, ПриАктивизацииСтроки или ПриОформленииСтроки).

Преимущество программного метода — гибкость. Вы можете:

  • 🔹 Использовать сложные условия с несколькими параметрами
  • 🔹 Динамически менять цвета в зависимости от данных
  • 🔹 Применять разные стили для разных колонок
  • 🔹 Сохранять настройки для всех пользователей

4. Выделение в отчетах и СКД

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

Как настроить:

  1. Откройте нужный отчет в режиме редактирования
  2. Перейдите на вкладку "Условное оформление"
  3. Добавьте новое правило
  4. Укажите выражение (например, Сумма > 10000)
  5. Выберите стиль оформления (цвет фона, шрифта, шрифт)
  6. Примените настройки

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

СуммаПрихода - СуммаРасхода < 0
Тип отчета Доступные настройки Ограничения
Табличный документ Цвет фона, цвет текста, шрифт Не работает в динамических списках
Динамический список Цвет фона, цвет текста Настройки индивидуальны для каждого пользователя
СКД-отчет Цвет фона, цвет текста, шрифт, границы Требует прав на редактирование отчета
Управляемая форма Полный контроль через код Требуются навыки программирования

Для сложных отчетов с группировками можно использовать Вычисляемые поля в СКД, которые будут служить основой для условного оформления. Например, создать поле "СтатусОплаты" со значениями "Просрочено"/"В срок"/"Оплачено" и выделять каждую категорию своим цветом.

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

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

Как создать расширение для выделения строк:

  1. Откройте конфигуратор в режиме предприятия
  2. Перейдите в Администрирование → Печатные формы, отчеты и обработки → Расширения
  3. Создайте новое расширение
  4. Добавьте обработчик события для нужной формы/отчета
  5. Напишите код выделения (аналогично примеру из раздела 3)
  6. Сохраните и подключите расширение

Пример кода для расширения, выделяющего отрицательные остатки:

Процедура ДокументСписокПриОформленииСтроки(Элемент, ОформляемаяСтрока, СтандартнаяОбработка)

Если ОформляемаяСтрока.Данные.Остаток < 0 Тогда

ОформляемаяСтрока.ЦветФона = ВебЦвет.СветлоРозовый;

ОформляемаяСтрока.ЦветТекста = ВебЦвет.Красный;

КонецЕсли;

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

Преимущества расширений:

  • 🔹 Не требуют изменения основной конфигурации
  • 🔹 Легко отключаются при необходимости
  • 🔹 Можно распределять между пользователями
  • 🔹 Сохраняются при обновлении 1С
📊 Какой метод выделения строк вы используете чаще?
Условное оформление в отчетах
Настройки динамических списков
Программный код
Расширения
Не использую

6. Сохранение и перенос настроек цветов

Одна из распространенных проблем — сброс настроек цветов после обновления конфигурации или при работе на другом компьютере. Чтобы этого избежать, нужно правильно сохранять и переносить пользовательские параметры.

Способы сохранения:

  • 🔹 Для условного оформления в отчетах: сохраните вариант отчета как пользовательский (кнопка "Сохранить вариант")
  • 🔹 Для динамических списков: настройки сохраняются автоматически в пользовательском профиле
  • 🔹 Для программных решений: экспортируйте расширение или конфигурацию
  • 🔹 Для переноса между базами: используйте файлы .epf (для обычных форм) или .cfe (для управляемых)

Чтобы перенести настройки условного оформления между пользователями:

  1. Экспортируйте настройки через Файл → Сохранить данные пользователя
  2. Выберите нужные параметры (включая "Настройки условного оформления")
  3. Сохраните в файл .dt
  4. Импортируйте на другом компьютере через Файл → Загрузить данные пользователя
💡

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

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

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

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

⚠️ Внимание: Если цвета не применяются к строкам, проверьте сначала, что условие написано правильно. Частая ошибка — сравнение дат в разных форматах или чисел с текстом.
Проблема Возможная причина Решение
Цвета не отображаются Неверное условие в правиле Проверьте синтаксис выражения, используйте отладчик
Цвета сбрасываются Обновление конфигурации Используйте расширения или сохраняйте пользовательские варианты
Медленная работа Слишком много правил оформления Оптимизируйте условия, используйте индексируемые поля
Цвета не печатаются Настройки принтера игнорируют фон Настройте параметры печати или экспортируйте в PDF

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

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

  • 🔹 Использовать веб-клиент
  • 🔹 Упростить условия оформления
  • 🔹 Применять выделение только к критически важным данным

8. Альтернативные способы визуального выделения

Если цветовая маркировка по каким-то причинам недоступна или неудобна, можно использовать альтернативные методы визуального выделения строк:

1. Значки и пиктограммы

В управляемых формах можно добавлять колонку со значками, которые будут отображать статус записи. Например:

Если Сумма > 10000 Тогда

Картинка = БиблиотекаКартинок.Деньги;

ИначеЕсли Дата < ТекущаяДата() Тогда

Картинка = БиблиотекаКартинок.Внимание;

КонецЕсли;

2. Группировка данных

Вместо выделения цветом можно сгруппировать данные по нужному признаку. Например, в отчете по контрагентам создать группы "Крупные клиенты", "Мелкие клиенты", "Просроченные платежи".

3. Выделение шрифтом

Вместо цвета фона можно использовать:

  • 🔹 Жирный шрифт для важных строк
  • 🔹 Курсив для вторичной информации
  • 🔹 Подчеркивание для ссылок

4. Дополнительные колонки со статусами

Добавляйте текстовые колонки, которые будут явно показывать статус записи:

Статус = ?(ДатаОплаты < ТекущаяДата(), "ПРОСРОЧЕНО",

?(Сумма > 100000, "КРУПНЫЙ", "СТАНДАРТНЫЙ"));

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

💡

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

Часто задаваемые вопросы

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

Да, в табличных документах и СКД-отчетах можно выделять отдельные ячейки. Для этого в настройках условного оформления укажите конкретную колонку в условии. Например: Колонка("Сумма") > 10000. В динамических списках и управляемых формах обычно доступно только выделение всей строки.

Почему после обновления 1С пропали все мои настройки цветов?

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

  1. Сохраняйте пользовательские варианты отчетов
  2. Используйте расширения для программных решений
  3. Экспортируйте настройки перед обновлением

Если настройки уже пропали, попробуйте восстановить их из резервной копии базы или перенастройте вручную.

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

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

  • 🔹 Использовать стандартные настройки условного оформления (если они поддерживаются в вашей конфигурации)
  • 🔹 Добавлять текстовые пометки в колонках (например, "[ВАЖНО]")
  • 🔹 Сортировать данные так, чтобы важные строки были вверху

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

Можно ли автоматически рассылать отчеты с цветовым выделением по email?

Да, но с некоторыми оговорками:

  • 🔹 При экспорте в Excel цветовое оформление сохраняется
  • 🔹 В PDF цвета обычно сохраняются, но это зависит от настроек экспорта
  • 🔹 При отправке как картинка (например, скриншот) цвета будут видны
  • 🔹 В текстовом формате (TXT, CSV) оформление теряется

Для автоматической рассылки с сохранением цветов настройте экспорт отчета в Excel и используйте стандартный функционал отправки почты из 1С.

Как сделать, чтобы разные пользователи видели разные цвета для одних и тех же данных?

Это можно реализовать несколькими способами:

  1. Через настройки прав: создать разные роли с разными настройками условного оформления
  2. Программно: в коде обработчика проверять текущего пользователя и применять разные стили:
    Если ТекущийПользователь().Имя = "Иванов" Тогда
    

    Цвет = ВебЦвет.СветлоЗеленый;

    ИначеЕсли ТекущийПользователь().Имя = "Петров" Тогда

    Цвет = ВебЦвет.СветлоГолубой;

    КонецЕсли;

  3. Через пользовательские настройки: позволить каждому пользователю настраивать свои цвета в личном профиле

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