Имя: Пароль:
1C
1С v8
УФ. Раскраска списка документов в журнале
0 Csar
 
05.08.13
11:21
Всем привет.
Подскажите, пожалуйста, как раскрасить строчки с документами в журнале по определенному условию? Тут на Мисте были ссылки на подобные темы v8: УФ как раскрасить строки списка журнала документов по условию, v8: Раскраска строк в форме списка, но это все не подходит, т.к. документ самописный и есть только ФормаДокумента, а списка нету, т.е. список документов формируется автоматически.
1 ДенисЧ
 
05.08.13
11:22
А что, форму списка сделать - политика партии и правительства запрещает?
2 Cube
 
05.08.13
11:23
(0) Как мне выполнить код, но писать я его нигде не хочу? Так?))
Создавай форму списка или форму выбора (в зависимости от задачи) и оформляй там чо хошь...
3 Csar
 
05.08.13
11:23
Скорее всего вопрос сводится к тому как получить доступ к автоформируемому СпискуДокументов, что бы туда применить что-то вроде:
Процедура ПриСозданииНаСервере()
//Условное оформление Новых заявок  
        ЭлементОформления=Список.УсловноеОформление.Элементы.Добавить();
        
        ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаРассмотренияЗаявки");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
        ЭлементОтбора.Использование = Истина;
        ЭлементОтбора.ПравоеЗначение = ТекущаяДата();
              
        
        //цвет текста строки  
        Элемент=ЭлементОформления.Оформление.Элементы[1];
        Элемент.Использование=Истина;
        Элемент.Значение=Новый Цвет(255,0,0);

КонецПроцедуры
4 Csar
 
05.08.13
11:25
(1) (2) а нельзя налету перехватить автоматическое формирование списка? Или обязательно надо сначала самому список документов (формуСписка) создать?
5 ДенисЧ
 
05.08.13
11:27
(4) Лучше всего не выделываться и создать форму списка.
6 Csar
 
05.08.13
11:34
(5) ОК, попробую так. Спасибо
7 Csar
 
05.08.13
13:25
Подскажите, плз, как воспользоваться методом Модифицированность() на УФ?
Пробовал варианты, но при обращении через "Объект" не получалось, ибо "Объект" - типа "ДанныеФормыСтруктура". Но сам метод "Модифицированность()" нужно применять на Сервере, поэтому я в процедуре "ПриЗаписи" должен проверить на Модифицированность.

&НаКлиенте
Процедура ПриЗакрытии()
    //Носов. Начало блока. 05.08.2013. Окрасим строку в журнале. Если Изменено, то в оранжевый цвет
    //ОбъектФорма = ЭтотОбъект.ПолучитьФорму();
    УсловноеОформлениеНаСервере();
КонецПроцедуры

&НаСервере
Процедура УсловноеОформлениеНаСервере()
    //Объект = Ссылка.ПолучитьОбъект();
    //ОбъектФорма = Объект.ПолучитьФорму();
    
    Если Объект.Модифицированность() Тогда
        Список = Документы.DT_СохраннаяРасписка.ПолучитьФормуСписка();
        ЭлементОформления=Список.УсловноеОформление.Элементы.Добавить();
        
        ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВыгруженВБИБ82");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.Использование = Истина;
        ЭлементОтбора.ПравоеЗначение = Ложь;
              
        
        //цвет текста строки  
        Элемент=ЭлементОформления.Оформление.Элементы[1];
        Элемент.Использование=Истина;
        Элемент.Значение=Новый Цвет(255,0,0);
    КонецЕсли;
    
КонецПроцедуры
8 andreymongol82
 
05.08.13
13:26
(7) ПриЗаписиНаСервере
9 Cube
 
05.08.13
13:27
(7) Юзай свойство формы, как вариант.

УправляемаяФорма (ManagedForm)
Модифицированность (Modified)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Признак изменения (модифицированности) данных в форме. Модифицированность отображается символом (*) в заголовке окна формы.
Истина - изменена.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
10 Csar
 
05.08.13
13:33
(8) а чем плохо ПриЗаписи? Я правильно понимаю, что тем плохо, что уже записано изменение и Модифицированность покажет Ложь в любом случае?
11 Csar
 
05.08.13
13:34
(9) сейчас попробую.
12 Csar
 
05.08.13
14:28
Коллеги, все же не работает у меня условное оформление. Я создал ФормуСписка, даже разместил там реквизит булево "ВыгруженВБИБ82". Далее в процедуре "ПриОткрытии" пытаюсь добавить УО, но что то не окрашиваются у меня строки. Проверял, условие "ВыгруженВБИБ82 = Ложь" срабатывает, если выполнить отбор в самой форме через настройку. Что я делаю не так?

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    УсловноеОформлениеНаСервере();
    
КонецПроцедуры

&НаСервере
Процедура УсловноеОформлениеНаСервере()
    ЭлементОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
    
    ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВыгруженВБИБ82");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Ложь;
    
    //цвет текста строки  
    Элемент=ЭлементОформления.Оформление.Элементы[0];    //цвет фона
    Элемент.Использование=Истина;
    Элемент.Значение=Новый Цвет(255,0,0);   //красный вроде бы цвет
КонецПроцедуры
13 Csar
 
05.08.13
14:48
Может надо в другом обработчике события? Я попробовал в "ПриЗаписиНаСервере", но все равно не раскрашивается.
14 Csar
 
05.08.13
14:49
+(13) вру, "ПриСозданииНаСервере" пробовал ,а не "ПриЗаписиНаСервере"
15 Csar
 
05.08.13
14:52
Проблему обнаружил - у меня в коде ошибка.Наде не ЭлементОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
а
ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();