Имя: Пароль:
1C
1С v8
Управляемое. Вопрос по условному оформлению в дин.списке
0 Pro-tone
 
25.11.11
14:16
В форме спр. "Контрагенты" я сделал дин.список по данным из спр. "Договоры". В командной панели его есть кнопка "Основной". Если жмем ее, то шрифт текущей строки меняется либо на жирный, либо с жирного на нежирный.

Проблема только в одном. Жирным шрифт строки становится, а вот обратно в нежирный-нет. Вот код.


&НаКлиенте
Процедура НазначитьОсновным(Команда)
   
   
   УО = ДоговорыСписок.УсловноеОформление.Элементы;
   ЭлементУО = УО.Добавить();    
   
   
   Если Объект.ДоговорПоУмолчанию = Элементы.ДоговорыСписок.ТекущаяСтрока Тогда
       
       //имитация отжатой кнопки
       Элементы.ДоговорыСписокНазначитьОсновнымДоговором.Пометка = Ложь;
       
       Объект.ДоговорПоУмолчанию = ВернутьПустаяСсылкаСпрДогСервер();
       
       //оформляем строку нежирным шрифтом
       ЭлементУО.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый  Шрифт(WindowsШрифты.ШрифтДиалоговИМеню, , ,Ложь , , , ) );
       
   Иначе
       
       //имитация нажатой кнопки кнопки
       Элементы.ДоговорыСписокНазначитьОсновнымДоговором.Пометка = Истина;
       
       Объект.ДоговорПоУмолчанию = Элементы.ДоговорыСписок.ТекущаяСтрока;
       //оформляем строку жирным шрифтом
       ЭлементУО.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый  Шрифт(WindowsШрифты.ШрифтДиалоговИМеню, , , Истина, , , ) );
       
   КонецЕсли;        
   
   ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
   ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ЭлементУсловия.ПравоеЗначение = Объект.ДоговорПоУмолчанию;
   
КонецПроцедуры


По этой строчке кода
ЭлементУО.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый  Шрифт(WindowsШрифты.ШрифтДиалоговИМеню, , ,Ложь , , , ) );

не отрабатывается почему-то обезжиривание шрифта =((
1 aleks-id
 
25.11.11
14:20
Новый Шрифт(<ИмяШрифта>, <Размер>, <Жирный>, <Наклонный>, <Подчеркнутый>, <Зачеркнутый>)
2 acsent
 
25.11.11
14:22
Зачем кодом это делать?
3 Pro-tone
 
25.11.11
14:24
(1) что у меня не так ?

Шрифт.На основании другого шрифта (Font.Based on another font)
Шрифт (Font)
На основании другого шрифта
Синтаксис:

Новый Шрифт(<Шрифт>, <ИмяШрифта>, <Размер>, <Жирный>, <Наклонный>, <Подчеркнутый>, <Зачеркнутый>)
4 aleks-id
 
25.11.11
14:24
(3) так попробуй второй конструктор
5 aleks-id
 
25.11.11
14:25
а вообще (2) прав - зачем это кодить?
6 Pro-tone
 
25.11.11
14:26
(2) (5) а как можно не кодом ?
7 Pro-tone
 
25.11.11
14:27
мне надо выделять строку с основным договором
8 Pro-tone
 
25.11.11
14:29
(1) то же самое что и в (0)
9 aleks-id
 
25.11.11
14:33
открой для себя вкладку условное оформление в динамическом списке
10 milan
 
25.11.11
14:33
(6) в условном оформлении динамического списка мышкой натыкать ?
11 Pro-tone
 
25.11.11
14:45
Ошибка была тут:   Объект.ДоговорПоУмолчанию = ВернутьПустаяСсылкаСпрДогСервер();
тут не нужно было пустую ссылку, тут надо было  
       Объект.ДоговорПоУмолчанию = Элементы.ДоговорыСписок.ТекущаяСтрока;
12 Pro-tone
 
25.11.11
15:55
сделал через оформление в настройке произвольного запроса таблицы формы - пришлось перезаписывать элемент справочника для этого, и еще принудительно обновить отображение в форме Элементы.ДоговорыСписок.Обновить();

(9) спасибо