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

1. 781 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 876 04.06.19 15:16 Сейчас в теме
7. user_2010 781 04.06.19 15:46 Сейчас в теме
(2) да управляемые формы 8.3
4. ttt1380 11 04.06.19 15:27 Сейчас в теме
(1) Если УФ, то через УсловноеОформление
6. dhurricane 04.06.19 15:40 Сейчас в теме
(1) Поддержу рекомедацию в (5), за одним лишь исключением: нет необходимости выполнять отдельный запрос для получения данных, т.к. в динамическом списке они уже должны быть.

Пусть в Вашей задаче в справочнике код цвета хранится в реквизите "КодЦвета". Если он не выводится в форме списка, установите напротив него флажок "Использовать всегда". Тогда код обработчика получения данных списка будет таким:
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	Для каждого СтрокаДинСписка Из Строки Цикл
		
		КодЦвета = СтрокаДинСписка.Значение.Данные.КодЦвета;
		
		ЦветПоКоду = ... // здесь преобразуете свой код в Цвет 
		
		ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
		ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду);
		
	КонецЦикла; 
	
КонецПроцедуры
Показать
10. Timur001 12 04.12.22 15:31 Сейчас в теме
(6)
ОформлениеКолонкиКод = СтрокаДинСписка.Значение.Оформление["Код"];
ОформлениеКолонкиКод.УстановитьЗначениеПараметра("ЦветФона", ЦветПоКоду)
11. Timur001 12 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 781 04.06.19 15:46 Сейчас в теме
9. user_2010 781 04.06.19 15:53 Сейчас в теме
(5) (6) огромное спасибо!!! все получилось!
Оставьте свое сообщение
Вакансии
Инженер 1С
Ессентуки
зарплата от 120 000 руб. до 144 000 руб.
Полный день

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

Специалист техподдержки
Краснознаменск (Московская обл.)
зарплата от 50 000 руб. до 100 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

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