Имя: Пароль:
1C
 
1С:8.1. Выделение строки табличной части справочника программно.
0 sol
 
30.12.09
15:34
Уважаемые пользователи!
Моя задача: По кнопке выделить текущую строку в табличной части.

Вот привожу фрагмент моей программы:

мЖирныйШрифт  = Новый Шрифт(,, Истина);
ОформлениеСтроки =ЭлементыФормы.ПользователиБазы.ОформлениеСтроки(НужнаяСтрока);
ОформлениеСтроки.Шрифт = мЖирныйШрифт;
ОформлениеСтроки.Ячейки.НомерСтроки.Шрифт = мЖирныйШрифт;
ОформлениеСтроки.Ячейки.ПользователиБазы.Шрифт = мЖирныйШрифт;
ЭлементыФормы.ПользователиБазы.ОбновитьСтроки();

Параметр НужнаяСтрока содержит правильное значение. В отладчике все правильно (Шрифт жирный).
Но это не отображается визуально.


В отладчике:
Выражение       Значение    Тип
ЭлементыФормы.ПользователиБазы    ТабличноеПоле    ТабличноеПоле
ОформлениеСтроки    ОформлениеСтроки    ОформлениеСтроки
мЖирныйШрифт    Шрифт диалогов и меню, полужирный    Шрифт
ОформлениеСтроки.Ячейки    ФиксированнаяКоллекция    ФиксированнаяКоллекция
ОформлениеСтроки.Ячейки.НомерСтроки.Шрифт    Шрифт диалогов и меню, полужирный    Шрифт
ОформлениеСтроки.ДанныеСтроки.НомерСтроки    4    Число
1 NcSteel
 
30.12.09
15:35
В типовых все красиво реализовано.
2 sol
 
30.12.09
15:37
(1) Красиво, но хотелось бы попроще.
Я не претендую, чтобы моя конфа по сложности была как типовая.
3 НЕА123
 
30.12.09
15:39
(0)
В СП. Внимательно читаем ОформлениеСтроки().
4 NcSteel
 
30.12.09
15:41
Процедура ДоговорыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

   Если ЗначениеЗаполнено(ДанныеСтроки.Ссылка) И ЭтотОбъект.ОсновнойДоговорКонтрагента = ДанныеСтроки.Ссылка Тогда
       ОформлениеСтроки.Шрифт = мЖирныйШрифт;
   КонецЕсли;

КонецПроцедуры

Мне кажется проще простого.
5 sol
 
30.12.09
15:50
(3) Спасибо. Видимо придется использовать ПриВыводеСтроки()
(4) Спасибо. Но этот отдельно взятый фрагмент часть не очень простого.
6 sol
 
30.12.09
16:22
(4) Спасибо. Все получилось.

Эта кнопка. В которую я пытался вписать ненужный текст.

Процедура ОтветственныйНажатие(Элемент)
   Если ЭлементыФормы.ПользователиБазы.ТекущиеДанные = Неопределено Тогда
       Возврат;
   КонецЕсли;
   Кол = ПользователиБазы.Количество();
   Для К = 0 ПО Кол-1 Цикл
       ПользователиБазы.Получить(К).Ответственный = Ложь;
   КонецЦикла;
   ЭлементыФормы.ПользователиБазы.ТекущиеДанные.Ответственный = Истина;
КонецПроцедуры


А эта процедура, которой и нужно было воспользоваться.

Процедура ПользователиБазыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если ДанныеСтроки.Ответственный Тогда
        ОформлениеСтроки.Шрифт = мЖирныйШрифт;
   КонецЕсли;
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший