Имя: Пароль:
1C
1С v8
Как раскрасить текст (или ячейку )таблицы значений в тонком клиенте.
0 Vykisan
 
06.08.14
13:17
Добрый день, мне дали задание раскрасить текст в ячейке или саму ячейку .
Если День(Новаястрока.дата) <=10 тогда
            НоваяСтрока.Текст = "Красный";
        ИначеЕсли День(Новаястрока.Дата) >=11 тогда
            НоваяСтрока.Текст = "Жёльтый";
        ИначеЕсли День(Новаястрока.Дата) >=21
            тогда НоваяСтрока.Текст = "Зеленый";
Подскажите пожалуйста каким способом лучше выполнить эту задачу .
1 ДенисЧ
 
06.08.14
13:23
Для этого существует условное оформление
2 Vykisan
 
06.08.14
13:44
(1) можно ли для новичка чуть подробнее. ткните носом куда рыть
3 Fish
 
06.08.14
13:54
(2) В СП, например.
4 ДенисЧ
 
06.08.14
13:55
(2) Специально для новичков существует документация и книги.
Очень рекомендую, после прочтения снимается куча вопросов.
5 Vykisan
 
12.08.14
16:06
(4)Может быть хотя бы взгляните на проделанную мной работу и подскажете что делать ?
Это первая часть:
&НаКлиенте
Процедура ЗаполнитьНовое(Команда)
    тз.Очистить();
        Попытка
            ExcelApplication = Новый COMОбъект("Excel.Application");
        ExcelApplication.Visible = Ложь;
        ExcelApplication.DisplayAlerts = Ложь;
    Исключение
        Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание);
        Возврат;        КонецПопытки;
    
  
    Версия = Лев(ExcelApplication.Version,Найти(ExcelApplication.Version,".")-1);
    
       Book = ExcelApplication.WorkBooks.Open(ИксЭль);
    ВсегоЛистов = Book.Sheets.Count;
    
  
    Sheet = Book.WorkSheets("Лист1");
    
    
    НачальнаяКолонка   = 1;
    НачальнаяСтрока     = 2;
    Если Версия = "8" Тогда
        КонечнаяКолонка  = Sheet.Cells.CurrentRegion.Columns.Count;
        КонечнаяСтрока    = Sheet.Cells.CurrentRegion.Rows.Count;
    Иначе
        КонечнаяКолонка  = Sheet.Cells.SpecialCells(11).Column;
        КонечнаяСтрока    = Sheet.Cells.SpecialCells(11).Row;
    КонецЕсли;
    
    
    КолвоСтрокExcel       = КонечнаяСтрока;
    
    Стр = НачальнаяСтрока;
    Пока стр <= КолвоСтрокExcel Цикл
        
        Новаястрока = ТЗ.Добавить();
        НоваяСтрока.Дата = Sheet.Cells(Стр, 1).Value;
        НоваяСтрока.Сумма = Sheet.Cells(Стр, 2).Value;
        НоваяСтрока.Описания = Sheet.Cells(Стр, 3).Value;
        НоваяСтрока.КакНибудь = НоваяСтрока.Сумма * 2 ;
        НоваяСтрока.Текст = Текст ;
        Стр = Стр + 1;
    
        

            
        Если День(НоваяСтрока.Дата) <=15     тогда
            
            НоваяСтрока.КакНибудь = НоваяСтрока.Сумма / 2  ;
        иначе
            НоваяСтрока.КакНибудь = НоваяСтрока.Сумма * 2;
            
        конецесли;
        Если День(Новаястрока.дата) <=10 тогда
            НоваяСтрока.Текст = "Красный";
        ИначеЕсли День(Новаястрока.Дата) >=11 тогда
            НоваяСтрока.Текст = "Жёльтый";
        ИначеЕсли День(Новаястрока.Дата) >=21
            тогда НоваяСтрока.Текст = "Зеленый";
        Конецесли;
                    
        
        
            
            
            
            КонецЦикла;
    
    
    
    Book.Close();
    
    ExcelApplication.Application.Quit();
    ExcelApplication = Неопределено;
    
    ВыполнитьУсловноеОформлениеФормы();
КонецПроцедуры
и как раз в эту часть нужно вставить процедуру что собственно и является второй частью задания :
&НаСервере
процедура ВыполнитьУсловноеОформлениеФормы()
    
    УсловноеОформление.Элементы.Очистить();
    для День(НоваяСтрока.Дата)<=15 Цикл
         НовыйЭлементУсловногоОформления    = УсловноеОформление.Элементы.Добавить();
         ЭлементыПолейНовогоЭлемента        = НовыйЭлементУсловногоОформления.Поля.Элементы;
         ЭлементыОтбораНовогоЭлемента    = НовыйЭлементУсловногоОформления.Отбор.Элементы;
        


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

//Значение свойства УО:

// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение =Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Зеленый", WebЦвета.Зеленый);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("желтый", WebЦвета.Желтый);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Красный", WebЦвета.Красный);

Элемент.Использование = Истина;

////Добавим поля оформления,
//если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;

КонецПроцедуры
Подскажите как подделать эту вторую часть чтобы правильно заработала первая ?
Заранее очень благодарен и рассчитываю на вашу мудрость и наставления .
2 + 2 = 3.9999999999999999999999999999999...