Имя: Пароль:
1C
1С v8
Оформление в строке ТЧ
0 vitaliklibra
 
18.05.15
19:08
Снова всем привет!

В обычном приложении в табличной части хочу выбранную строку, например, перекрасить в другой цвет, или шрифт поменять по нажатии кнопки (типа как в 1С Бухе назначить основной договор). Какие есть методы и подходы к решению? Прошу помощи!
1 shuhard_серый
 
18.05.15
19:13
(0)[ методы и подходы]
какие тут нафиг подходы при наличии всего двух событий - первое из которых При выводе строки
2 vitaliklibra
 
18.05.15
19:16
(1) Т.е. мне нужно будет по нажатию кнопки вызвать процедуру ПриВыводеСтроки? Там оформление я нашёл как раз, НО! Строка (а точнее ТЧ) уже выведена!
3 ДенисЧ
 
18.05.15
19:20
(2) Лучше смотри ПриПолученииДанных().
И не смотри, что строка уже выведена. Она перекрасится
4 GROOVY
 
18.05.15
19:21
(3) +1
5 vitaliklibra
 
18.05.15
19:46
(3) - Спасибо! Все работает (убедился, в смысле). Теперь вопрос в другом. Как вызвать по нажатию кнопки эту процедуру перекраски?

К примеру - сама процедура перекраски:

Процедура КонтактнаяИнформацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.ЗначениеКонтакта.ЦветФона = Новый Цвет(255, 100, 100);
КонецПроцедуры


А это обработчик нажатия кнопки (условно):

Процедура УстановитьОсновнойТелефонНажатие(Элемент)
    ...
    КонтактнаяИнформацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки);
    ...
КонецПроцедуры

Или как правильно это сделать? Сейчас она просто перекрашивает без запросов(...
6 mehfk
 
18.05.15
19:50
открыть типовую и сделать так же
7 vitaliklibra
 
18.05.15
19:51
(6) А в какой типовой это есть? Подскажи.
8 mehfk
 
18.05.15
19:53
от 1500 р в час
9 vitaliklibra
 
18.05.15
19:58
(8) - знаешь, иногда, когда не мешают, это тоже можно считать помощью... Подумай хорошенько, над этим)
10 ДенисЧ
 
18.05.15
20:00
Измени данные в строке и процедура сама вызовется
11 mehfk
 
18.05.15
20:00
(9) Подумал. Для тебя от 1800 р в час.
12 ДенисЧ
 
18.05.15
20:01
(11) Штрейкбрейхер и демпингёр...
13 vitaliklibra
 
18.05.15
20:07
(10) Это да, но она также вызывается, когда только открывается форма! А мне нужно, чтоб она вызывалась по команде...
14 ДенисЧ
 
18.05.15
20:08
(13) Тебе это не нужно.
15 vitaliklibra
 
18.05.15
20:11
(14) Хорошо, тогда так. Как мне правильно задать условие внутри процедуры "ПриВыводеСтроки", чтоб произвольную строку она мне перекрашивала, как мне надо?

Процедура КонтактнаяИнформацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.ЗначениеКонтакта.ЦветФона = Новый Цвет(255, 100, 100);
КонецПроцедуры

Т.е. "ДанныеСтроки" могут быть абсолютно разными. Как быть?
16 ДенисЧ
 
18.05.15
20:12
Если ДанныеСтроки.ФлагПерекрашивания = 100500 Тогда
  РасскраситьСтроку(ОформлениеСтроки, "ЯдовитоЗелёный");
КонецЕсли
17 vitaliklibra
 
19.05.15
13:52
(16) А если мне нужно раскрасить не по логическому условию, а в зависимости от какого-то действия над элементом формы. Ну, типа, по нажатию кнопки. Т.е мне нужно тогда как-то задать условие, что если такая-то кнопка нажата, то тогда перекрасить. А вот как отследить нажатие кнопки в ЭТОЙ процедуре?
18 lxndr
 
19.05.15
13:55
(17) переменную модуля запили, её вздёргивай по кнопке
19 vitaliklibra
 
19.05.15
13:56
(18) В принципе понял, щас попробую...
20 lxndr
 
19.05.15
13:56
а лучше кнопку с пометкой
21 Ёпрст
 
19.05.15
13:57
(17) заведи переменную , не бойся.
Ей в операторох основной программы присваивай чего-нить, по нажатию кнопки - изменяй, в при получении/выводе строки крась в зависимости от значения переменной. наслаждайся, кушай печенки
22 Ёпрст
 
19.05.15
13:58
ЗЫ:

Непонятно только, откуда вот это маниакальное желание всё красить берётся ?
23 D_E_S_131
 
19.05.15
14:00
может еще метод "ОбновитьСтроки()" пригодится ТС...
24 vitaliklibra
 
19.05.15
14:03
(22) Поясню) У меня есть ТЧ в справочнике, где из списка различных контактных данных нужно выделить КАК-ТО основной телефон и основной адрес, к примеру. А так как их может быть 100500, то тут и пригодится этот инструмент. Understand?)

(23) - не исключено! Спасибо. Тестю пока...
25 lxndr
 
19.05.15
14:08
(24) открою форму в следующий раз: основного / запасного уже не будет. Я зря давил кнопки?!
26 lxndr
 
19.05.15
14:08
красить мало. Надо сохранять
27 vitaliklibra
 
19.05.15
14:11
(26) Согласен! Дашь подсказку? :/
28 lxndr
 
19.05.15
14:15
(27) реквизит припаяй в таб. часть. Флажок.
29 vitaliklibra
 
19.05.15
14:15
Ага, что получается.

Переменную я задал: Перем ПокраситьСтрокуТелефона;

По нажатию определенной кнопки присваиваю ей значение "ИСТИНА". В процедуре пишу:

Процедура КонтактнаяИнформацияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
    Если ПокраситьСтрокуТелефона = Истина Тогда
        ОформлениеСтроки.Ячейки.ЗначениеКонтакта.ЦветФона = Новый Цвет(255, 100, 100);
    КонецЕсли;

    ПокраситьСтрокуТелефона = Ложь;

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


Вопрос: как теперь вызвать процедуру перекраски? Если её же вписать в процедуру кнопки, ругается на "Элемент", "ОформлениеСтроки", "ДанныеСтроки", что, собственно, верно. Или я опять что-то не так делаю?
30 D_E_S_131
 
19.05.15
14:30
(29) см (23)
31 vitaliklibra
 
19.05.15
14:35
(30) - подскажи, пожалуйста, как его применить к моей ТЧ?
32 vitaliklibra
 
19.05.15
14:37
Странно, при обращении к этой процедуре (ПриВыводеСтроки), система 2 раза проходит всю ТЧ! Это так и должно быть?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший