```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Запрет = Константы.ЗапретИзменения.Получить();

    Если Объект.Проведен Тогда

    УсловноеОформление.Элементы.Очистить();
    Элемент = УсловноеОформление.Элементы.Добавить();

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

    Для Каждого Запись Из Объект.ГрафикВозврата Цикл
    Если Запись.Месяц < Запрет Тогда
    Сообщить(Запись.Месяц);
    Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГрафикВозврата.НомерСтроки");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.ПравоеЗначение = Запись.НомерСтроки;
    Отбор.Использование = Истина;
    КонецЕсли;
    КонецЦикла;

    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.БледноЗеленый);
    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр",Истина);

    КонецЕсли;

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

Сообщение с датой выводится, но цвет фона не меняется? Где ошибка. Все голову сломал.
Заранее спасибо.
---
В общем разобрался. Затыка была вот в том, что правильно писать

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ГрафикВозврата");
```

а не

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ГрафикВозврата);
```

Сбил с толку пример с оф сайта. Там это сделано вот так

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыУпаковка.Имя);
```

В принципе это тоже верно, но я почему-то решил, что в этом случае оформится только колонка "имя". Это и сбило с толку.
И да, ваш способ со списком значений - более элегантный =)
---
А не проще ли это без кода сделать?) Каких-то особых условий я у вас в коде не увидел
---
зачем в цикле добавлять условия отбора... получается несколько одновременных отборов на равенство... сделайте список нужных значений и один отбор с видом сравнения в списке
---
Отбор - условие оформления в цикле по строкам установить не получиться, это условие для таблицы в целом (если это таблица или дерево) и почему то вы в сначала сравниваете месяца

```1c
    Если Запись.Месяц < Запрет Тогда
```

Потом оформляете по номеру строки...

```1c
    Для Каждого Запись Из Объект.ГрафикВозврата Цикл
    Если Запись.Месяц < Запрет Тогда
    Сообщить(Запись.Месяц);
    КонецЕсли;
    КонецЦикла;

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

да и на сколько я понимаю Правое значение также может быть полем компоновки данных типа того

```1c
    Отбор.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ГрафикВозврата.Запрет");
```
---
Запрет - это дата, до которой запрещены изменения в конфигурации (защита от изменений задним числом), это не реквизит таблицы. А в таблице должны подсвечиваться только те строки, которые:
1. Были до начала редактирования.
2. При этом реквизит "Месяц" у них был меньше чем "Запрет".
Поэтому отобрать их можно только по номеру строки.
А сообщить это просто чтоб я был уверен, что какая-то строчка прошла проверку.

Да, с циклом я прогнал. Переделал вот так, но все равно не пашет

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Запрет = Константы.ЗапретИзменения.Получить();

    Если Объект.Проведен Тогда

    Элемент = УсловноеОформление.Элементы.Добавить();
    ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

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

    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.БледноЗеленый);
    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр",Истина);

    Для Каждого Запись Из Объект.ГрафикВозврата Цикл
    Если Запись.Месяц < Запрет Тогда
    Сообщить(Запись.Месяц);
    Отбор = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГрафикВозврата.НомерСтроки");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.ПравоеЗначение = Запись.НомерСтроки;
    Отбор.Использование = Истина;
    КонецЕсли;
    КонецЦикла;

    КонецЕсли;

    КонецПроцедуры
```
---
```1c
    СписокНомеровСтрок = Новый СписокЗначений;

    Для Каждого Запись Из Объект.ГрафикВозврата Цикл
    Если Запись.Месяц < Запрет Тогда
    Сообщить(Запись.Месяц);
    СписокНомеровСтрок.Добавить(Запись.НомерСтроки);
    КонецЕсли;
    КонецЦикла;

    Отбор = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ГрафикВозврата.НомерСтроки");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    Отбор.ПравоеЗначение = СписокНомеровСтрок;
    Отбор.Использование = Истина;
```
---
В общем разобрался. Затыка была вот в том, что правильно писать

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ГрафикВозврата");
```

а не

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ГрафикВозврата);
```

Сбил с толку пример с оф сайта. Там это сделано вот так

```1c
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыУпаковка.Имя);
```

В принципе это тоже верно, но я почему-то решил, что в этом случае оформится только колонка "имя". Это и сбило с толку.
И да, ваш способ со списком значений - более элегантный =)
---
Меня смущает, что пользователь может изменить порядок строк (если нет то все ОК), а строки раскрашены по номеру строки...
---
В свойствах таблицы есть галочка, запрещающая перемещения. Стрелки пропадают, мышкой тоже не перетаскиваются. А для удаления строк отдельную обработку сделал. Вроде намертво застолбил =))