Условное оформление для программно созданных элементов формы

1. VoVo 18.09.23 10:54 Сейчас в теме
Здравствуйте. На форме создал ТЗ, с одной колонкой, затем программно добавляю реквизиты формы(колонки таблицы динамически создаются) и соответственно элементы формы под них, тут все норм. Делаю условное оформление ниже код1 отрабатывает, если применяю оформление для реквизита(колонки) добавленного на самой форме, а код2 ниже, ни как не получается если пытаюсь оформление добавить для элементов созданных программно. Как то неправильно такой элемент пишу может не пойму.

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



Код2
НовыйЭлементУФ = УсловноеОформление.Элементы.Добавить();
	ОформленийЦвет = НовыйЭлементУФ.Оформление.Элементы.Найти("ЦветФона");
	ОформленийЦвет.Значение = WebЦвета.Красный;
	ОформленийЦвет.Использование = Истина;
	
	НастройкаОтбора = НовыйЭлементУФ.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	НастройкаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Файл");
	НастройкаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	НастройкаОтбора.ПравоеЗначение = "";
	
	ОформляемыеПоля = НовыйЭлементУФ.Поля.Элементы.Добавить();
//Вариант 1 как пробовал
	ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗагрузки.ПодчиненныеЭлементы.Линейка"); // элемент в подчиненных отладка показывает
//Вариант 2 как пробовал
	ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗагрузкиЛинейка"); //отладка не показывает такой  
//элемент
//Вариант 3 как пробовал
	ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("Элементы.ТаблицаЗагрузкиЛинейка"); 
//Вариант 4 как пробовал
	ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("Элементы.ТаблицаЗагрузки.ПодчиненныеЭлементы.Линейка""); 
	ОформляемыеПоля.Использование = Истина;
Показать
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 18.09.23 14:03 Сейчас в теме
(1)С каким именем поле добавлял на форму, то имя и использовать надо.
ОформляемыеПоля.Поле = Новый ПолеКомпоновкиДанных("Линейка");
3. VoVo 18.09.23 17:00 Сейчас в теме
(2) Получилось, но сама логика не срабатывает. А есть возможность без условного оформления установить фон в конкретной ячейке? Т.е. пересечение определенной строки и колонки. У меня просто признака, на основе которого это нужно устанавливать в таблицы формы быть не может по логике, нужно анализировать др данные из таблицы значений в скрине, и заполнять по строчно по колонкам.
Прикрепленные файлы:
5. Sashares 34 18.09.23 17:04 Сейчас в теме
(3)
А есть возможность без условного оформления установить фон в конкретной ячейке?

Нет. Без условного оформления фон устанавливается на всю колонку, для всех строк таблицы.

Добавьте служебную колонку, булевую, которую на форму выводить не будете. В ней будет храниться признак необходимости применения оформления ячейки по данной строке.
То есть при заполнении таблицы, изменении значения в ячейке - заполняете значение этой колонки, и оформление будет применяться.
6. VoVo 18.09.23 17:08 Сейчас в теме
(5)Не получится так, смотрите, в таблице значений исходной скрин 2 я ее обхожу построчно, для каждого доп реквизита есть это свой признак последняя колонка выделена красным то есть каждая строка доп реквизит, заполняет уже одну строку в таблице формы, но уже по колонкам, то есть если сделать служебное поле, не понятно будет по какой именно колонке красить, да можно всю колонку закрасить, но нужно по конкретным строкам. Я так понимаю такое не осуществить
7. Sashares 34 18.09.23 17:10 Сейчас в теме
(6) Опишите подробнее условие для установки оформления.
В строке 1 надо установить оформление красным, потому что ... что?
9. пользователь 18.09.23 17:23
Сообщение было скрыто модератором.
...
4. VoVo 18.09.23 17:01 Сейчас в теме
(2)Таблице значений программной скрин 2 там строки, и по ним в таблице на форме заполняются строки по колонкам
8. VoVo 18.09.23 17:21 Сейчас в теме
(7) Условие такое, нужно чтобы те доп реквзиты, что есть в виде номенклатуры в ут определенной номенклатуры из файла эксель записывать их. Но могут быть ошибки и в файле есть, а в наборе вида нет. Надо эту инфу вывести на форму, но загвоздка в том, что нужно в одно это поле вывести как и само значение ошибочное, так и подкрасить, чтобы понимать, что самого такого реквзита в наборе нет.
10. Sashares 34 18.09.23 17:33 Сейчас в теме
(8) Для каждого реквизита делаешь булевую служебную колонку и заполняешь в ней Истина, если надо окрашивать в данной строке соответствующую колонку.

Например, есть колонка "Линейка", добавляешь колонку "ЛинейкаОформление", и так для каждой колонки, если колонку надо оформлять. Выводить на форму при этому такие колонки не надо.
11. VoVo 18.09.23 17:35 Сейчас в теме
(10)Думал об этом, но когда сам почему-то показалось не красиво может лучше способ есть, но сейчас со стороны вроде ни чего, да и выбора все равно нет) Спасибо
Оставьте свое сообщение
Вакансии
Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Старший программист 1С
Москва
зарплата от 120 000 руб. до 250 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 500 000 руб.
Полный день

Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб.
Полный день