Раскрасить строки списка справочника в цвета, числовые коды которых содержатся в данной строке

1. user_2010 871 04.06.19 15:12 Сейчас в теме
Добрый день!

Нужна помощь!

Есть справочник.
Справочник, в том числе, содержит реквизиты, в которых хранится числовой код цвета (RGB).
Нужно в форме списка этого справочника для одного из реквизитов, например код, установить фон в соответствии со значениями цветов (RGB) этого элемента.

Не понимаю - как для каждой строки установить свой цвет, который содержится в реквизитах элемента.
Подскажите, плиз!
Найденные решения
5. SlavaKron 04.06.19 15:28 Сейчас в теме
Вместо ГСЧ используйте данные из реквизита.
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка КАК Ссылка,
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Ссылка В(&МассивСсылок)");	
	Запрос.УстановитьПараметр("МассивСсылок", Строки.ПолучитьКлючи());
	Выборка = Запрос.Выполнить().Выбрать();
	ГСЧ = Новый ГенераторСлучайныхЧисел;
	Пока Выборка.Следующий() Цикл
		Оформление = Строки[Выборка.Ссылка].Оформление["Код"];
		ЦветЧислом = ГСЧ.СлучайноеЧисло(0, 16777215);
		Красный = ЦветЧислом % 256;
		Зеленый = (ЦветЧислом / 256) % 256;
		Синий = (ЦветЧислом / 65536) % 256;

		Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(Красный, Зеленый, Синий));
	КонецЦикла;	
КонецПроцедуры
Показать
6. dhurricane 04.06.19 15:40 Сейчас в теме
(1) Поддержу рекомедацию в (5), за одним лишь исключением: нет необходимости выполнять отдельный запрос для получения данных, т.к. в динамическом списке они уже должны быть.

Пусть в Вашей задаче в справочнике код цвета хранится в реквизите "КодЦвета". Если он не выводится в форме списка, установите напротив него флажок "Использовать всегда". Тогда код обработчика получения данных списка будет таким:
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	Для каждого СтрокаДинСписка Из Строки Цикл
		
		КодЦвета = СтрокаДинСписка.Значение.Данные.КодЦвета;
		
		ЦветПоКоду = ... // здесь преобразуете свой код в Цвет 
		
		ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
		ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду);
		
	КонецЦикла; 
	
КонецПроцедуры
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user5300 1000 04.06.19 15:16 Сейчас в теме
7. user_2010 871 04.06.19 15:46 Сейчас в теме
(2) да управляемые формы 8.3
4. ttt1380 14 04.06.19 15:27 Сейчас в теме
(1) Если УФ, то через УсловноеОформление
6. dhurricane 04.06.19 15:40 Сейчас в теме
(1) Поддержу рекомедацию в (5), за одним лишь исключением: нет необходимости выполнять отдельный запрос для получения данных, т.к. в динамическом списке они уже должны быть.

Пусть в Вашей задаче в справочнике код цвета хранится в реквизите "КодЦвета". Если он не выводится в форме списка, установите напротив него флажок "Использовать всегда". Тогда код обработчика получения данных списка будет таким:
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	Для каждого СтрокаДинСписка Из Строки Цикл
		
		КодЦвета = СтрокаДинСписка.Значение.Данные.КодЦвета;
		
		ЦветПоКоду = ... // здесь преобразуете свой код в Цвет 
		
		ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
		ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду);
		
	КонецЦикла; 
	
КонецПроцедуры
Показать
10. Timur001 14 04.12.22 15:31 Сейчас в теме
(6)
ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду)
11. Timur001 14 04.12.22 15:32 Сейчас в теме
(6)
ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду);


Подскажите пожалуйста как окрасить строку не по конкретным колонкам а сразу всю строку?
3. VmvLer 04.06.19 15:22 Сейчас в теме
С наскока в УО не вставить

Необходимо программно обновлять УО с генерацией элементов
Новый Цвет(R,G,B)
5. SlavaKron 04.06.19 15:28 Сейчас в теме
Вместо ГСЧ используйте данные из реквизита.
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка КАК Ссылка,
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Ссылка В(&МассивСсылок)");	
	Запрос.УстановитьПараметр("МассивСсылок", Строки.ПолучитьКлючи());
	Выборка = Запрос.Выполнить().Выбрать();
	ГСЧ = Новый ГенераторСлучайныхЧисел;
	Пока Выборка.Следующий() Цикл
		Оформление = Строки[Выборка.Ссылка].Оформление["Код"];
		ЦветЧислом = ГСЧ.СлучайноеЧисло(0, 16777215);
		Красный = ЦветЧислом % 256;
		Зеленый = (ЦветЧислом / 256) % 256;
		Синий = (ЦветЧислом / 65536) % 256;

		Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(Красный, Зеленый, Синий));
	КонецЦикла;	
КонецПроцедуры
Показать
8. user_2010 871 04.06.19 15:46 Сейчас в теме
9. user_2010 871 04.06.19 15:53 Сейчас в теме
(5) (6) огромное спасибо!!! все получилось!
Оставьте свое сообщение
Вакансии
Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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