Здравствуйте, пишу внешнюю обработку. Есть кнопка "Заполнить таблицу", при нажатии которой собственно происходит заполнение табличной части обработки. В табличной части 3 колонки: случайноеЧисло, платформа, числовойКод. И вот нужно чтобы строка табличной части, в которой колонка ЧисловойКод имеет наименьшее значение подсвечивалась красным, а где наибольшее значение - зелёным. Сейчас есть вот такая часть кода, но она естественно неправильная. Выдаёт ошибку: интератор для значения не определён. Уже всё перепробовал, ну вот не понимаю как перебрать строки табличной части самой формы именно, так как только для формы же можно оформление задавать. Либо я так понимаю придётся условное оформление программно писать, да? Извиняюсь зараннее за очень глупые вопросы, ещё новичок, буду благодарен за любые подсказки.
```1c
    Результат = ЗаполнитьТаблицуНаСервере(ДанныеВвода);

    МинимальныйКод = Результат.МинимальныйКод;
    МаксимальныйКод = Результат.МаксимальныйКод;

    Для Каждого Строка Из Элементы.ТаблицаДанных Цикл

    Если Строка.ЧисловойКод = МинимальныйКод Тогда

    Строка.ЦветФона = WebЦвета.Красный;
    КонецЕсли;

    Если Строка.ЧисловойКод = МаксимальныйКод Тогда

    Строка.ЦветФона = WebЦвета.Зеленый;
    КонецЕсли;

    КонецЦикла;
```
---
```1c
    Для Каждого Строка ИЗ ИмяРеквизитаФормыСТаблицей Цикл
```

Так получается список строк.

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

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

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

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

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

    // МаксимальныйКод
    ЭлементУО = УсловноеОформление.Элементы.Добавить();

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

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

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

    КонецПроцедуры
```
 Тогда приведенный вами код можно сократить до:
```1c
    Результат = ЗаполнитьТаблицуНаСервере(ДанныеВвода);

    МинимальныйКод = Результат.МинимальныйКод;
    МаксимальныйКод = Результат.МаксимальныйКод;
```
---
Здравствуйте, спасибо за помощь, я видел уже этот код на форуме, да, но был уверен, что в моём случае можно всё решить намного проще, так и оказалось к счастью, я ниже ответил пользователю starik-2005 как именно я решил задачу, но я не уверен что это оптимально))
---
```1c
    Для Каждого Строка ИЗ ИмяРеквизитаФормыСТаблицей Цикл
```

Так получается список строк.

Чтобы в УФ отобразить цвет, лучше юзать условное оформление. Для этого нужно добавить еще одну колонку, например, "цвет". Ну и писать туда что-то, что можно будет использовать в условном оформлении как условие.
---
Спасибо огромное!!! Всё получилось. Я просто добавил реквизит в табличную часть "Цвет", так же добавил условие оформление на самой форме, что: если реквизит "Цвет" = "Красный" то меняем на соответсвущий цвет, так же и для Зелёного. А код написал такой, не уверен, опять таки, что так вообще правильно, но как есть, главное что работает)
```1c
    МинимальныйКод = Результат.МинимальныйКод;
    МаксимальныйКод = Результат.МаксимальныйКод;

    Для Каждого Строка Из Объект.ТаблицаДанных Цикл

    Если Строка.ЧисловойКод = МинимальныйКод Тогда

    Строка.Цвет = "Красный";
    КонецЕсли;

    Если Строка.ЧисловойКод = МаксимальныйКод Тогда

    Строка.Цвет = "Зелёный";
    КонецЕсли;

    КонецЦикла;
```
---
не уверен, опять таки, что так вообще правильноНормально.

Но если результат - это результат запроса, условно, то можно было бы это все решить в самом запросе. Это было бы более оптимально. С другой стороны, всегда все решать запросами - тоже такое себе.

Вообще, я удивлен людям, которые так быстро схватывают. Далеко пойдете )))
---
Хах, спасибо конечно, но это ошибочное мнение)) На самом деле я очень жёсткий затуп, просто благодаря chatGpt удаётся часть проблем решать. Чтобы вы понимали, я даже ваш ответ, который пометил как решённый, отправлял gpt, чтобы он подробнее написал что нужно сделать, а дальше я уже сам как-то разбирался (настраивал оформление, писал код), как-то так)
---
В бан за неуважение к аксакалам.
---
)) Пришлось ещё у gpt спросить кто такие аксакалы...
---
Код не мой, взял со стороннего ресурса, но работает, спасибо разработчику
Яндексите по "очищаем ранее назначенные элементы оформления" и будет статья с примерами

```1c
    //очищаем ранее назначенные элементы оформления

    КолонкиИмена = Новый Массив();
    КолонкиИменаНеУчаствуют = Новый Массив();

    Для Каждого Колонка Из Объект.ВариантыОтчетаИсточник.Выгрузить(Новый Массив(),).Колонки Цикл
    КолонкиИмена.Добавить(Колонка.Имя);
    КонецЦикла;

    Для каждого Колонка Из КолонкиИмена Цикл

    //добавляем новый элемент условного оформления
    ЭлементУО = УсловноеОформление.Элементы.Добавить();
    //устанавливаем само оформление
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоЗеленый);
    //добавляем условие
    ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    //что сравниваем()
    ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ВариантыОтчетаИсточник."+Колонка);
    //как сравниваем
    ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    //с чем сравниваем
    //ЭлементУсловия.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ВариантыОтчетаИсточник.ЛучшаяЦена");
    ЭлементУсловия.ПравоеЗначение = Прав(НекаяСтруктура.КлючОбъекта, 36);

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

    КонецЦикла;

    //

    ЭлементУО = УсловноеОформление.Элементы.Добавить();
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоСерый);
    ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ВариантыОтчетаИсточникКлючНастроек")
```
---
(4) Здравствуйте, спасибо за помощь, я видел уже этот код на форуме, да, но был уверен, что в моём случае можно всё решить намного проще, так и оказалось к счастью, я ниже ответил пользователю starik-2005 как именно я решил задачу, но я не уверен что это оптимально))