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