Имя: Пароль:
1C
1С v8
Условное оформление Динамического списка
, ,
0 LOLYBUF
 
22.11.19
17:25
Есть справочник номенклатуры и есть справочник категории товара, в категориях есть цвет, которым мне нужно в зависимости от того какой категории принадлежит товар красить цвет текста в форме списка справочника номенклатуры, пробовал через СписокРасширенныйПоискНоменклатураПриПолученииДанныхНаСервере() и через условное оформление объекта динамического списка, не получается
1 lubitelxml
 
22.11.19
17:33
формы управляемые или обычные? покажи код что не получается
2 LOLYBUF
 
22.11.19
17:35
Форма управляемая, надеюсь тут все понятно будет:

&НаСервереБезКонтекста
Процедура СписокРасширенныйПоискНоменклатураПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    
    Для Каждого Строка Из Строки Цикл
        Строка.Значение.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(Строка.Категория.red, Строка.Категория.green, Строка.Категория.blue));
    КонецЦикла;
    
КонецПроцедуры
3 LOLYBUF
 
22.11.19
17:36
Здесь Строка.Категория это СправочникСсылка.Категория
4 lubitelxml
 
22.11.19
17:48
Можно сделать без программирования вообще. Открываем форму, выбираем динамический список - нажимаем настроить список, сверху заходим в закладку Настройки, там последняя закладка условное оформление. Можно добавить в зависимости от полей запроса нужный цвет для строки
5 LOLYBUF
 
22.11.19
17:59
(4) С удовольствием сделал бы так, но цвет зависит от реквизитов red green blue в карточке элемента справочника "Категория". Т.е. пользователь задает параметры РГБ и если какая-то позиция номенклатуры относится к этой категории то устанавливается цвет с использованием реквизитов категории, как вставить картинку в сообщение, было бы легче если бы я просто показал
6 pechkin
 
22.11.19
18:07
так делать не нужно.
создай справочник цветов и по справочнику делай оформелние
7 LOLYBUF
 
22.11.19
18:12
Да, пожалуй ты прав, спасибо за ответ, как закрыть тему?
8 LOLYBUF
 
22.11.19
18:20
Хотя нет, не подходит, нужно учесть что количество категорий не фиксировано и значение цвета могут изменить, поэтому нужно что бы цвет брался из категории
9 Мимохожий Однако
 
22.11.19
19:36
(7) Никак ) Тема живёт сама по себе
10 LOLYBUF
 
26.11.19
14:58
Все, решил вопрос таким образом:

Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
        |    КлассификацияТоваров.Наименование,
        |    КлассификацияТоваров.Red,
        |    КлассификацияТоваров.Green,
        |    КлассификацияТоваров.Blue
        |ИЗ
        |    Справочник.КлассификацияТоваров КАК КлассификацияТоваров";
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        ЭлементОформления = СписокНоменклатура.УсловноеОформление.Элементы.Добавить();    
        ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));        
        ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("КатегорияНаименование");  
        ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;    
        ЭлементОтбора.ПравоеЗначение = Выборка.Наименование;
        ЭлементОтбора.Использование  = Истина;
        ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(Выборка.Red, Выборка.Green, Выборка.Blue));
    КонецЦикла;
11 D_E_S_131
 
26.11.19
15:55
(10) Только в "ПравоеЗначение" ставь не Наименование, а ссылку на элемент справочника "КлассификацияТоваров".
12 EVGA
 
26.11.19
15:59
(11) ТС еще вернется, когда перестанет работать))
13 LOLYBUF
 
27.11.19
14:48
(12) Что такое "ТС"?
14 D_E_S_131
 
27.11.19
15:11
(13) Это ты :)