Имя: Пароль:
1C
1С v8
v8: как программно можно закрасить поле наименование справочника тремя разными цветами?
0 Vasus55
 
30.12.11
12:35
поджскажите как программно можно закрасить поле наименование справочника  тремя разными цветами?
1 Lex_Liven
 
30.12.11
12:37
Легко.
Обработка события ПриВыводеСтроки у элемента ТабличноеПоле
Внутри:
ОформлениеСтроки.ЦветФона = Новый Цвет(255,0,0);
2 Reset
 
30.12.11
12:37
присвоить реквизиту, отвечающему за цвет, значение цвета. Разное.
3 ДенисЧ
 
30.12.11
12:37
ПриВыводеСтроки()
или условное оформление...
4 Wobland
 
30.12.11
12:37
в полоску? ;)
ЭлементыФормы.ПолеВвода.ЦветФона=Новый Цвет()
5 Wobland
 
30.12.11
12:38
все про список подумали? ;)
6 Reset
 
30.12.11
12:39
А может ему "ООО" надо черным, название синим, а кавычки зеленым
7 Lex_Liven
 
30.12.11
12:40
Если нужна конкретная ячейка -
ОформлениеСтроки.Ячейки.Наименование.ЦветФона = Новый Цвет(255,0,0);
8 Галахад
 
гуру
30.12.11
12:41
Чо-та не понял.
Цвет шрифта - 1
Цвет фона - 2

Что еще?

Или Цвет границы?
9 andrewks
 
30.12.11
12:43
HTML?
10 Vasus55
 
30.12.11
12:44
я неправильное выразился:
мне нужно чтобы три строки закрасились разными цветами
11 Reset
 
30.12.11
12:45
Стало гораздо понятней)
12 shuhard
 
30.12.11
12:45
(10) строки чего ?
списка
отчета
табличной части
13 Reset
 
30.12.11
12:47
Начальник, больше инфы давай. Сбоит телепатирующая машина.
14 Vasus55
 
30.12.11
12:49
у меня есть справочник в котором реквизиты только код и наименование
мне нужно чтобы там программно заполнилось три строки разными цветами
например первая код, наименование - желтым
след код и наименование- розовым....
15 Vasus55
 
30.12.11
12:50
форма справочника - формасписок, так для справки
16 Wobland
 
30.12.11
12:50
(14) вернись в (1)
17 Lex_Liven
 
30.12.11
12:52
(15) Например, код из моей конфы:

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если (НЕ ДанныеСтроки.Ссылка.ЭтоГруппа)И
        (ДанныеСтроки.Ссылка.Подразделение.ДатаАвтоматизации<>'00010101')И
        (ДатаСервера()>=ДанныеСтроки.Ссылка.Подразделение.ДатаАвтоматизации) Тогда
        ОформлениеСтроки.ЦветФона = Новый Цвет(200,255,200);
   КонецЕсли;
КонецПроцедуры
18 shuhard
 
30.12.11
12:53
915) для справки,
для раскраски списка в полоску кодировать не надо
19 Vasus55
 
30.12.11
12:54
Wobland так он все строки одним цветом закрашивает
20 Wobland
 
30.12.11
12:54
(18) мож у него там кнопка для раскраски
21 Asmody
 
30.12.11
12:54
фломастерами можно. или акварелью
22 Wobland
 
30.12.11
12:54
(19) каким скажешь, таким и покрасит. меняй цвет
23 Wobland
 
30.12.11
12:54
(21) на прокрутке сбоить будет
24 shuhard
 
30.12.11
12:55
(23) да лан
25 Reset
 
30.12.11
12:56
Если <первая>
ОформлениеСтроки.ЦветФона=Желтым
иначеЕсли <след>
ОформлениеСтроки.ЦветФона=Розовым
иначе
ОформлениеСтроки.ЦветФона=ХзкакиАвторНенаписал

Что такое "первая", "след" автор тоже не написал
26 Reset
 
30.12.11
12:56
(24) Если тряпочкой стирать и перекрашивать, то не будет
27 Wobland
 
30.12.11
12:56
(23) переменная не определена - жёлтым
28 Wobland
 
30.12.11
12:57
(26) одной рукой стирать, второй красить. а мышь чем крутить?
29 Reset
 
30.12.11
12:58
(28) Началник крутит колесо, программист с помощью тряпочки и фломастера программирует.
30 shuhard
 
30.12.11
12:58
(28) руки ТС давно оторвали, всё ногами
31 vmv
 
30.12.11
13:06
ПриВыводеСтроки() метод-дегенерат из 8.0.

в 8.1 и 8.2 он прицепом и че вы вы так влюблены в этот источник маразмов и тормозов, яйца оторвать тому кто его изобрел
32 shuhard
 
30.12.11
13:08
(31) ты знаешь другие варианты в неуправляемом приложении ?
33 Lex_Liven
 
30.12.11
13:08
(32) А в управляемом???
34 Lex_Liven
 
30.12.11
13:11
(31) Это единственный метод отделить строки одну от другой, если в списке 8 видов документов с 20 полями.
35 shuhard
 
30.12.11
13:11
(33) окстись, там всё рулиться условным оформлением
36 vmv
 
30.12.11
13:14
(34) не единственный, есть менее ущербный метод в 8.1)
37 Lex_Liven
 
30.12.11
13:15
(36) Ну и какой же? "Я делаю вид, что все знаю, но никому не скажу!"
38 vmv
 
30.12.11
13:18
(34) кроме (36) что мешает делать списки деревянными или если нет иерархии, то мастер-детальными. Отборы тоже не сахар, но винигрет с раскрасками списков, как правило, рано или поздно вызывает у пользователя не чувство комфорта, а чувство бешенства.

Я уже молчу про адцкую усталость глазок от всей этой мазни на формах
39 shuhard
 
30.12.11
13:18
(37) сейчас ты будешь бит бамбуком по пяткам
40 vmv
 
30.12.11
13:19
(37) ПриПолученииДанных() очевидно, по крайней мере он меньше "губит" производительность
41 Gesperid
 
30.12.11
13:22
(41) меньше, но и неправильно
42 vmv
 
30.12.11
13:22
(39) не актуально, по старой китайской традиции при таких решениях задач разработчика привязывает к земле голым в молодой бамбуковой роще
43 vmv
 
30.12.11
13:23
(41) что не правильно зеленое станет красным?)
44 Lex_Liven
 
30.12.11
13:24
(43) - запросто.
Цитата из синтаксис-помощника:

Параметры:

<ОформленияСтрок>

Тип: ОформленияСтрок.
Коллекция оформления строк табличного поля.
Данную коллекцию нельзя использовать вне обработчика, т.к в момент вызова обработчика события она напрямую связана с коллекцией видимых строк табличного поля, а после окончания обработки события ее содержимое может не соответствовать коллекции видимых строк.
45 ProProg
 
30.12.11
13:24
(0) раскрась экран монитора в три цвета. будешь всегда видеть все тремя цветами.
46 shuhard
 
30.12.11
13:25
(42) =)
47 vmv
 
30.12.11
13:28
(44) ну и вывод?

у тебя "потекут" раскраски при интерактивной работе с формой? хрена они потекут, т.к. после окончания обработчика список выдимых строк будет отображать ЕГО(видимой части списка) раскраску
48 Gesperid
 
30.12.11
13:32
(47) если раскраска зависит не только от выводимых данных, но и от времени их получения, данных на форме, отборов и т.п.
49 Reset
 
30.12.11
13:32
(40)

[ПятничныйПредновогоднийТроллинг]

метод ПриВыводеСтроки иногда быстрее, чем ПриПолученииДанных (когда требуемые для принятия решения об окраске данные не нужно собирать(есть в строке) либо такого решения вообще не требуется)


Процедура КнопкаВыполнитьНажатие(Кнопка)
   Для ш=1 по 1000 цикл
       ЭлементыФормы.ТабличноеПоле.ОбновитьСтроки();
   КонецЦикла;
КонецПроцедуры

Процедура ТабличноеПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   ЗакраситьПоОформлению(ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры

Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок)
   ЗакраситьПоМассивуОформлений(ОформленияСтрок);
КонецПроцедуры

Процедура ЗакраситьПоМассивуОформлений(ОформленияСтрок)
   Для каждого ОформлениеСтроки из ОформленияСтрок цикл
       Если ОформлениеСтроки.ДанныеСтроки.СуммаДокумента>0 тогда
           ОформлениеСтроки.ЦветФона=WebЦвета.Бирюзовый;
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры

Процедура ЗакраситьПоОформлению(ОформлениеСтроки, ДанныеСтроки)
   Если ДанныеСтроки.СуммаДокумента>0 тогда
       ОформлениеСтроки.ЦветФона=WebЦвета.Бирюзовый;
   КонецЕсли;
КонецПроцедуры



ЗакраситьПоМассивуОформлений(ОформленияСтрок);    1 000 вызовов,    1,362925 сек
ЗакраситьПоОформлению(ОформлениеСтроки, ДанныеСтроки);    33 000 вызова,    0,932405 сек

[/ПятничныйПредновогоднийТроллинг]
50 Reset
 
30.12.11
13:32
забыл закрытие тега 1С
серьезно прошу не относиться.
51 vmv
 
30.12.11
13:33
(48) а ты попробуй посадить раскраску в при получени данных и делай отборы, перемещения по списку, отборы - это все получение данных)
52 vmv
 
30.12.11
13:36
(51) если на методе чтоит "черная метка", то он ущербен по определению

"черная метка" для ПриВыводеСтроки() состоит в том, что о нем четко сказано он оставлен в 8.1 для совместимости с 8.0, т.е. разработчикам на него уже 5 лет как чхать)
53 Reset
 
30.12.11
13:41
(47) Если в обработчике ПриПолученииДанных используется окраска без привязки  на данные, а например, чередование 2 или 3 цветов, то в результате окраска таки потечет, например, рядом будут встречаться одинаковые цвета. Это произойдет из-за того, что обработчик не всегда вызывается для всей области (например при посторочном скроллировании)

P.S. Возможно, я неправильно понял, о чем вы говорили - тогда прошу извинить
54 shuhard
 
30.12.11
13:42
(52)[т.е. разработчикам на него уже 5 лет как чхать]
и именно поэтому в релизе УПП ПриВыводеСтроки встречается всего лишь 1897 раз ?
55 vmv
 
30.12.11
13:57
(54) капля в море)

и 1890 случай из этих 1897 раз, там такой код

Процедура ПриВыводеСтроки()
// Ну накого хрена ты тут нарисовался
КонецПроцедуры
56 shuhard
 
30.12.11
14:00
(55) крайне слабый аргумент,
поищи иной
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.