Имя: Пароль:
1C
 
Таблица Значений Цвет Ячейки
0 Увэрли
 
23.01.18
12:15
Добрый день, прошу помочь в решении вот такой задачи.

В таблице значений хочу изменить цвет конкретной ячейки или текста в ней используя событие ПриАктивизацииЯчейки() [событиеПриВыводеСтроки() не интересует]. Может кто сталкивался подскажите)?
1 Вафель
 
23.01.18
12:16
у активных ячеек всегда синий цвет и ничсего с этим не поделаешь
2 Увэрли
 
23.01.18
12:19
Меня интересует цвет текста в ячейке.Как его поменять?
3 Ц_У
 
23.01.18
12:21
(0) в где?
условноеоформление
4 Tatitutu
 
23.01.18
12:29
(0) Скажи для чего тебе это нужно ? Конечный результат, что ты хочешь в итоге сделать.

вот как вариант в MAGAZKA (настройка для пользователей)

http://magazkat.ru/forum/pismabezotveta/2665-podskazhite-kak-izmenit-tsvet-aktivnoj-stroki-v-dokumentakh
5 Увэрли
 
23.01.18
12:35
Tatitutu
Есть ТЗ  с данными на форме уже заполненная.При работе с этой ТЗ пользователь анализируя данные в этой таблице при необходимости должен поменять цвет текста в конкретной ячейке.
6 Михаил Козлов
 
23.01.18
12:40
(5) Вам нужно где-то запоминать менял ли пользователь цвет в ячейке (булевый реквизит для каждой ячейки) и в зависимости от этого флага "красить" в ПриПолученииДанных.
7 Радим1987
 
23.01.18
12:42
Только Условноеоформление, при активации нельзя вызвать серверные процедуры поэтому надо будет Оповещением
8 Вафель
 
23.01.18
12:43
(6) можно и через условное оформление
9 Tatitutu
 
23.01.18
12:46
(5) уже хорошо. Поменял цвет ячейки на КРАСНЫЙ
дальше что - это должно сохраниться или каким образом обработаться - для чего ИЗМЕНЯТЬ ЦВЕТ
10 Увэрли
 
23.01.18
12:52
Tatitutu
Да совершенно верно .Дальше я обойду циклом ТЗ и в зависимости от цвета данные суммируются.
11 Радим1987
 
23.01.18
12:53
Процедура УстановитьУсловноеОформление(Форма,Номер,Значение)
        
        Элементы = Форма.Элементы;     
        Элемент = Форма.УсловноеОформление.Элементы.Добавить();
        Элемент.Использование = Истина;
        
        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементПоле.Имя);
        ПолеЭлемента.Использование = Истина;
            
        ОтборЭлемента =  Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Форма.Объект.ТАБЧАСТЬ.НомерСтроки");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Номер;
        ОтборЭлемента.Использование = ИСТИНА;     
        

        ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Форма.Объект.ТАБЧАСТЬ."+ЭлементПоле.Имя+"");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Значение;    
        ОтборЭлемента.Использование = Истина;            

        Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.Пшеничный);         
КонецПроцедуры
12 Радим1987
 
23.01.18
12:57
&НаКлиенте
Процедура ПриАктивизации(Элемент)
    
    ТекСтр = Элементы.ТАБЧАсТЬ.ТекущиеДанные;
    ВыполнитьОбработкуОповещения(Новый ОписаниеОповещения("ПриАктивизацииЗаверешение",ЭтотОбъект,Новый Структура("Форма,Элемент,НомерСтроки",Форма,Элемент,ТекСтр.НомерСтроки)));    
    
КонецПроцедуры

&НаКлиенте
Процедура ПриАктивизацииЗаверешение(Результат,ДополнительныеПараметры) Экспорт  
    УстановитьУсловноеОформление(ДополнительныеПараметры.Форма,ДополнительныеПараметры.Элемент,ДополнительныеПараметры.НомерСтроки)
КонецПроцедуры



Процедура УстановитьУсловноеОформление(Форма,ЭлементПоле,Номер)
        
        Элементы = Форма.Элементы;     
        Элемент = Форма.УсловноеОформление.Элементы.Добавить();
        Элемент.Использование = Истина;
        
        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементПоле.Имя);
        ПолеЭлемента.Использование = Истина;
            
        ОтборЭлемента =  Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Форма.Объект.ТАБЧАСТЬ.НомерСтроки");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Номер;
        ОтборЭлемента.Использование = ИСТИНА;                  

        Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона",WebЦвета.Пшеничный);     
            
КонецПроцедуры
13 Михаил Козлов
 
23.01.18
12:58
(10) В ТЗ цвета нет.
14 Радим1987
 
23.01.18
12:59
Если он отображен на форме то это уже не ТЗ а Таблица
15 Увэрли
 
23.01.18
13:06
Радим1987 спасибо!
Но это для управляемых форм ,а для обычных если.
16 oslokot
 
23.01.18
13:11
(15) ОФ это делается в ПриПолученииДанных() (6) в оформлениях ячеек
17 Михаил Козлов
 
23.01.18
13:31
Возможно я не ошибаюсь, но мне кажется, речь должна идти не о том, как поменять цвет в ячейке, а где и как хранить признак того, что цвет изменен.
Например, во вспомогательной ТЗ, с колонками: номер строки, номер столбца.
18 Увэрли
 
23.01.18
13:40
Михаил Козлов может быть вы и правы.Я пока ещё об этом не думал.

У меня сейчас вот какая задача.К Вам пришли 2 накладные от поставщиков.Я их обработал и загрузил в ТЗ где одна колонка общая как Номенклатура 2 остальные это Цены этих поставщиков.При этом я уже при выводе на Форму подсветил минимальные цены.Но пользователь когда анализирует на Форме эти данные должен изменить цвет например не минимальной(которая уже подсвечена) Цены (из этих 2 а максимальной) "ему так нужно".Вот в чем задача сейчас.
19 Михаил Козлов
 
23.01.18
14:01
(18) Ну так и заведите данные нужного типа для запоминания, где пользователь не согласился ("поменял цвет").
При ПолученииДанных будет "красить" ячейку по этим данным.
При каком-то действии пользователя - модифицировать эти данные.
Общий принцип: отталкиваться от данных, а не их представления.
Например, в качестве локатора, где пользователь решил изменить "цвет" - массив с номерами строк.
При ПолученииДанных лезете в этот массив и, если находите - красите в другой цвет.
При каком-то действии пользователя, означающем его желание изменить цвет - добавляете или удаляете из этого массива номер строки.
20 Увэрли
 
24.01.18
00:41
Михаил Козлов Спасибо! понял о чем Вы написали.