Имя: Пароль:
1C
1С v8
Цвет состояния заказа
0 Coole
 
15.09.17
11:43
В табл части внешней обработки есть реквизит Состояние это СправочникСсылка.СостоянияЗаказовПокупателей, у справочника есть реквизит Цвет - ХранилищеЗначений.
Как раскрасить Состояние согласно Цвета?
1 Господин ПЖ
 
15.09.17
11:45
>Состояние согласно Цвета

упорот штоле?

у тебя цвет один - хранилище
2 Coole
 
15.09.17
11:48
в смысле один? разные состояния - разные цвета.
Давайте без оскорблений!
что я написала не так?
3 Coole
 
15.09.17
11:50
Выборка.Ссылка.СостояниеЗаказа.Цвет.Получить()
Выборка.Ссылка.СостояниеЗаказа.Цвет.Получить()    стиль: ПрошедшееСобытие    Цвет
Вид    Элемент стиля    ВидЦвета
Зеленый    -1    Число
Красный    -1    Число
Синий    -1    Число
4 Господин ПЖ
 
15.09.17
11:52
>в смысле один?

в прямом. условное оформление за тебя в хранилище полезет?
5 Coole
 
15.09.17
11:55
есть такая вот вещь
СостоянияЗаказов.УстановитьУсловноеОформлениеПоЦветамСостояний(
    ФормаСписка.КомпоновщикНастроек.Настройки.УсловноеОформление,
    Метаданные.Справочники.СостоянияЗаказовПокупателей.ПолноеИмя()
    );
но работает с динамическим списком.
как сделать для реквизита табличной части?
6 Господин ПЖ
 
15.09.17
11:57
это функция которая лупит каждую выводимую строку

а для ТЧ есть только "условное оформление формы" или секас с эмуляцией через СКД. статьи в инете есть
7 Coole
 
15.09.17
14:37
ниче не сложно
очень помогло, что одно из состояний было предопределенным и я задала условное оформление Формы.
Потом ЭтотОбъект.УсловноеОформление.Элементы[0]
    ЦветСостояния = ВыборкаДетальныеЗаписи.Цвет.Получить();
        Если ТипЗнч(ЦветСостояния) <> Тип("Цвет") Тогда
            Продолжить;
        КонецЕсли;
        Номерс = Номерс + 1;
        ЭлементУсловногоОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
        
        ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветСостояния);
        ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "ЦветСостояния" + Номерс;
        ЭлементУсловногоОформления.РежимОтображения    = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
        ЭлементУсловногоОформления.Представление    = НСтр("ru='Оформление в цвет состояния'" + Номерс);
        
        ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение        = Новый ПолеКомпоновкиДанных("Объект.ЗаказыНаДату.Состояние");
        ЭлементОтбора.ВидСравнения        = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение    = ВыборкаДетальныеЗаписи.Ссылка;
        ПолеОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
        ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("ЗаказыНаДатуСостояние");
        ПолеОформления.Использование = Истина;
Тут обязательно указать ПОЛЕ оформления, без него не получилось
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.