В конфигурации имеется документ, табличная часть которого создается программно из таблицы значений. Хочется подсветить определенную строку табличной части (например, со значением 1 к колонке Количество). Как сделать перебор табличной части и проверить значение в строке? Пробовал программно задавать условное оформление, но что выбирать в левой части? Колонку таблицы значения? Не выходит.
Табличная часть из таблицы значения получается с помощью ЗначениеВРеквизитФормы(ТабЗнач,"Таб"). Остается ли между ними связь? Допустим, я знаю номер нужной строки в ТабЗнач. Как по этому номеру установить цвет в Таб?
---
Вот это неправильно.
```1c
    Новый ПолеКомпоновкиДанных("Элементы.Таб_Место");
```

Нужно
```1c
    Новый ПолеКомпоновкиДанных("Таб_Место");
```

И вот это неправильно
```1c
    Новый ПолеКомпоновкиДанных("ТабЗнач.Место");
```

Надо
```1c
    Новый ПолеКомпоновкиДанных("Таб.Место");
```
---
Только условное оформление
---
Таблицы значений нет в реквизитах формы. Сейчас попробую добавить.
---
Ошибка: "Нельзя изменять поле, содержащее объект данных формы"
Мне нужно динамически менять колонки в таблице, потому и программно все.
---
Тогда динамически рисуй условное оформление
```1c
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();

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

    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Текст", "Это строка №1");

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

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

ТабЗнач нет в реквизитах формыЭто не важно

Upd: У тебя реквизит формы называется Таб? ЗначениеВРеквизитФормы(ТабЗнач,"Таб"). Значит Новый ПолеКомпоновкиДанных("Таб.Количество")
---
Таб.Количество

Нет, не работает. Это первое, что я пробовал.
---
Тогда выкладывай код создания реквизитов ТЧ
---
```1c
    Процедура ЗаполнитьОбщую(ЭтоПервый=0)
    КЧ = Новый КвалификаторыЧисла(3,0);
    КС = Новый КвалификаторыСтроки(20);
    КД = Новый КвалификаторыДаты(ЧастиДаты.Время);
    Массив = Новый Массив;
    Массив.Добавить(Тип("Строка"));
    ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
    Массив.Добавить(Тип("Число"));
    ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);
    Массив.Добавить(Тип("Дата"));
    ОписаниеТиповД = Новый ОписаниеТипов(Массив, , ,КД);
    ТабЗнач = Объект.Регистрация.Выгрузить(,"Участник,ГР,Город,НомерУчастника,Категория");
    ИдТаблицы = "Регистрация";
    Для каждого ТекКол Из ТабЗнач.Колонки Цикл
    ТабЭлемент = Элементы.Найти(ИдТаблицы+ТекКол.Имя);
    ТекКол.Заголовок = ТабЭлемент.Заголовок;
    КонецЦикла;
    ТабЗнач.Колонки.Добавить("Кругов",ОписаниеТиповЧ,"Кр.",3);
    Для сч = 1 По Объект.ВсегоКругов+1 Цикл
    ТабЗнач.Колонки.Добавить("Круг"+Строка(сч),ОписаниеТиповД,Строка(сч),13);
    КонецЦикла;
    ТабЗнач.Колонки.Добавить("Место",ОписаниеТиповЧ,"Место",3);
    Если Объект.Протокол.Количество() > 0 Тогда
    Для Каждого Стр Из ТабЗнач Цикл
    НайденныеСтроки = Объект.Протокол.НайтиСтроки(Новый Структура("НомерУчастника", Стр.НомерУчастника));
    Если НайденныеСтроки.Количество() > 0 Тогда
    Для Каждого Строка Из НайденныеСтроки Цикл
    Стр.Кругов = Строка.Круг; Стр.Установить(Строка.Круг+5, Строка.ВремяЧистое);
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    Сортировка = "Круг1 Возр";
    Для Сч = 1 По Объект.ВсегоКругов+1 Цикл
    Сортировка = "Круг"+Строка(сч)+" Возр,"+Сортировка;
    КонецЦикла;
    Сортировка = "Кругов Убыв,"+Сортировка;
    Если НЕ(Объект.ВидТаблицы) Тогда
    Сортировка = "Категория Убыв, "+Сортировка;
    КонецЕсли;
    ТабЗнач.Сортировать(Сортировка);
    Место = 0;
    Категория = Неопределено;
    Для Каждого Стр Из ТабЗнач Цикл
    Место = Место + 1;
    Если (НЕ(Стр.Категория = Категория)) И (НЕ(Объект.ВидТаблицы)) Тогда
    Категория = Стр.Категория; Место = 1;
    КонецЕсли;
    Если Не(Стр.Кругов = Неопределено) Тогда
    Стр.Место = Место;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    Если ЭтоПервый = 1 Тогда
    ЭлементТаблица = Элементы.Найти("Таб");
    Если НЕ(ЭлементТаблица = Неопределено) Тогда
    Элементы.Удалить(ЭлементТаблица);
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить("Таб");
    ИзменитьРеквизиты(,МассивРеквизитов);
    КонецЕсли;
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("Таб", Новый ОписаниеТипов("ТаблицаЗначений"), ", "Таб"));
    Для Каждого Колонка Из ТабЗнач.Колонки Цикл
    МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Таб", Колонка.Заголовок));
    КонецЦикла;
    ИзменитьРеквизиты(МассивРеквизитов);
    Таблица = Элементы.Добавить("Таб", Тип("ТаблицаФормы"),ЭтаФорма.Элементы["Таблица"]);
    Таблица.ПутьКДанным = "Таб";
    Таблица.Отображение = ОтображениеТаблицы.Список;
    Таблица.Шрифт = Новый Шрифт("Arial", 8,Ложь);
    Для Каждого Колонка Из ТабЗнач.Колонки Цикл
    НовыйЭлемент = Элементы.Добавить("Таб_" + Колонка.Имя, Тип("ПолеФормы"), Таблица);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.Заголовок = Колонка.Заголовок;
    НовыйЭлемент.ПутьКДанным = "Таб." + Колонка.Имя;
    Если Лев(Колонка.Имя,4) = "Круг" И НЕ(Колонка.Имя = "Кругов") Тогда
    Если Объект.Сотые Тогда
    НовыйЭлемент.Ширина = 13;
    Иначе НовыйЭлемент.Ширина = 9;
    КонецЕсли;
    ИначеЕсли Колонка.Имя = "Категория" Тогда
    НовыйЭлемент.Ширина = 12;
    ИначеЕсли Колонка.Имя = "Город" Тогда
    НовыйЭлемент.Ширина = 10;
    ИначеЕсли Колонка.Имя = "Кругов" Тогда
    НовыйЭлемент.Ширина = 4;
    ИначеЕсли Колонка.Имя = "ГР" Тогда
    НовыйЭлемент.Ширина = 5;
    НовыйЭлемент.Формат = "ДФ="гггг"";
    ИначеЕсли Колонка.Имя = "Участник" Тогда
    НовыйЭлемент.Ширина = 25;
    ИначеЕсли Колонка.Имя = "Место" Тогда
    НовыйЭлемент.Ширина = 6;
    КонецЕсли;
    КонецЦикла;
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТабЗнач.Место");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = 1;
    ЭлементОтбора.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
    ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
    ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Элементы.Таб_Место");
    ПолеОформления.Использование = Истина;
    ЭлементОформления.Использование = Истина;
    КонецЕсли;

    ЗначениеВРеквизитФормы(ТабЗнач,"Таб");

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

Колонка для оформления - Место, я просто для примера Количество указал.
---
Вот это неправильно.
```1c
    Новый ПолеКомпоновкиДанных("Элементы.Таб_Место");
```

Нужно
```1c
    Новый ПолеКомпоновкиДанных("Таб_Место");
```

И вот это неправильно
```1c
    Новый ПолеКомпоновкиДанных("ТабЗнач.Место");
```

Надо
```1c
    Новый ПолеКомпоновкиДанных("Таб.Место");
```
---
И так, и эдак пробовал. Это уже результаты экспериментов.
---
http://forum.infostart.ru/forum9/topic263981/message2668226/#message2668226
---
Ура! Заработало! Спасибо большое
---
Пожалуйста =)
---
но что выбирать в левой части? Объект.ИмяТабличнойЧасти.ИмяРеквизита
---
для созданной ТЧ написать условие кол-во = 1 тогда добавить условное оформление ...