Добрый день.

Пришла в голову идея реализации данного куска кода в виде условного оформления

```1c
    If OrderTotalPallets <> Int(OrderTotalPallets) Then
    Items.OrderTotalPallets.TextColor = WebColors.Red;
    Else
    Items.OrderTotalPallets.TextColor = WebColors.Black;
    Endif;
```

Тут мы сравниваем поле с его округленным вариантом
Был создан тестовый стенд который не сработал

```1c
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(250, 191, 143));
    //ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт("Arial", 11, Истина));

    ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Attribute1");
    ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных(");
    //ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ВЫРАЗИТЬ( Attribute1 КАК (Число(10,0)) ");
    //ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Вычислить("ОКР(Attribute1,0)")");
    //ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ОКР(Attribute1,0)");
    ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.неРавно;
    ЭлементУсловия.Использование = Истина;

    ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Attribute1");
```

Может у кого ещё есть идеи как это красиво реализовать, и возможно ли вообще как то?
в интернете нигде не видел чтобы в Компоновку вставляли выражение.
---
Обычно делаю как указано в (2) . Но тут можно добавить новую колонку с округленными значениями и на нее бы настроил условное оформление
---
Делал подобную раскраску в табличной части документа поступления: если товар штучный, а количество не целое, то подкрашивать такие ячейки. Необходимо создать свою колонку (реквизит формы) типа булево и заполнять ее программно. Условное же оформление повесить на эту колонку.
---
Я не хочу добавлять ещё какие то реквизиты пусть даже и невидимые, так как это только всё усложняет, хранить в данных такой бесполезный реквизит не оптимально, а если этот реквизит не хранится в данных то заполнять его при открытии и каждый раз при изменении костыль какой то и смысл в таком условном оформлении пропадает.

Меня именно интересовала возможность выражения при использовании условного оформления, но видимо 1С ещё не созрела для такого.
---
Вот пример программного наложения формата, вы забыли указать использование для поля

```1c
    ЭлементОформления = КомпоновщикНастроек_.Настройки.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;

    Поле = ЭлементОформления.Поля.Элементы.Добавить() ;
    Поле.Использование = Истина;
    Поле.Поле = Новый ПолеКомпоновкиДанных("ЦенаРозничная");

    Поле = ЭлементОформления.Поля.Элементы.Добавить() ;
    Поле.Использование = Истина;
    Поле.Поле = Новый ПолеКомпоновкиДанных("Себестоимость");

    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Формат", "ЧДЦ=2");
```
---
Меня не программное наложение формата интересует а подсветка поля если в нём находится не целое число.
---
Да я вас понял, просто пример привел Допишите у себя:

```1c
    ОформляемоеПоле.Использование = Истина;
```
---
почему то оформление и так работает...
---
Если есть номер строки, то можно использовать его.
Само условие заполнять в цикле.

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

    Если Строка.Attribute1 = Окр(Строка.Attribute1) Тогда
    Продолжить;
    КонецЕсли;

    //...

    ЭлементУсловия = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Таблица.НомерСтроки");
    ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементУсловия.ПравоеЗначение = Строка.НомерСтроки;

    //...

    КонецЦикла;
```
---
вы предлагаете при изменении каждый раз пересобирать условное оформление?
т.е. найти старое условное оформление и затирать его новым или удалять? это ж ерунда неудобная получится.
---
один из вариантов, если не хотите добавлять реквизит. Очищается одной командой. Опять же зависит от конкретной задачи, если список каждый раз меняется, то самое простое добавить реквизит и по нему оформлять. С выражением сравнивать все равно не получится.
---
у меня были надежды что ПолеКомпоновкиДанных достаточно хитрое чтобы понять выражение
---
Обычно делаю как указано в (2) . Но тут можно добавить новую колонку с округленными значениями и на нее бы настроил условное оформление
---
Эта идея кажется самой адекватной, но хотелось бы избежать лишних реквизитов чтобы не следить за их актуальностью.
---
если хотите еще одно не адекватное решение то можно перед наложением условного оформления формировать СЗ со значениями от 0 до 1000000 и вид сравнения неВсписке))
Зато без лишних реквизитов))
---
это забавный подход)