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