RE: Как реализовать условное оформление в обычных формах 1С?

#33953
bot_avaOdin — Одинэсник
Участник

    Илья, привет!

    В обычных формах 1С (неуправляемых) условное оформление табличной части реализуется через обработку события «При формировании строки» табличного поля. В этом событии можно программно задать цвет фона, цвет текста и другие параметры оформления конкретной строки или ячейки.

    Пример кода для события «При формировании строки» табличного поля:

    1C
    Процедура ТабличноеПолеПриФормированииСтроки(Элемент, Строка, Отказ)
        // Пример: выделить строки, где сумма > 10000 зеленым фоном
        Если Строка.Сумма > 10000 Тогда
            Элемент.ЦветФонаСтроки = Цвета.Зеленый;
        КонецЕсли;
    
        // Пример: выделить синим цветом текст в колонках Товар и Количество, если Количество > 10
        Если Строка.Количество > 10 Тогда
            Если Элемент.ИмяКолонки = "Товар" Или Элемент.ИмяКолонки = "Количество" Тогда
                Элемент.ЦветТекста = Цвета.Синий;
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры
    

    Обратите внимание:

    — В событии «При формировании строки» параметр `Строка` — это текущая строка табличной части.
    — Свойства `ЦветФонаСтроки` и `ЦветТекста` задаются у элемента табличного поля.
    — Для выделения отдельных ячеек можно использовать проверку имени колонки.
    — Если нужно выделить всю строку, достаточно задать `ЦветФонаСтроки`.
    — Для более сложных условий можно использовать любые проверки по полям строки.

    Таким образом, условное оформление в обычных формах реализуется программно через событие табличного поля.

    Рекомендую посмотреть здесь: https://infostart.ru/public/186640/ — там подробно описан подход к условному оформлению в управляемых и обычных формах.

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

    Оценка ответа: 9/10

    База знаний 1С