Имя: Пароль:
1C
1С v8
Табличная часть, заливка строки цветом
,
0 shock3r
 
17.10.12
10:34
Подскажите как реализовать заливку строк цветом в табличной части.
Нужно обрабатывать результат: если остатков нету - красный, если остатков в достаточном кол-ве зеленый
1 Alex S D
 
17.10.12
10:34
оформление строки
2 Alex S D
 
17.10.12
10:34
или условное оформление если УФ
3 shock3r
 
17.10.12
10:38
(1) а можно пример, простейший, где создается ТЧ и первая строка заливается одним цветом, а вторая другим?

Обычный документ + табличная часть.
4 Alex S D
 
17.10.12
10:39
УФ или че? нету под рукой)
5 pessok
 
17.10.12
10:41
если обычные формы то в ПриПолученииДанных

Для Каждого Оформление Из ОформленияСтрок Цикл
//оформляем
КонецЦикла
6 lim9
 
17.10.12
10:44
я бы сказал так:
Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

...
КонецПроцедуры // ТоварыПриВыводеСтроки()
7 shock3r
 
17.10.12
10:47
(4) Если честно, я не знаю как проверить и ответить на ваш вопрос, что такое управляемые формы я не очень знаком. Обычная форма документа.
(5)
(6) мне больше интересно что внутри происходит, а не как должна выглядеть процедура, пример
8 Торин
 
17.10.12
10:49
Можно использовать и ПриПолученииДанных как в (5) и ПриВыводеСтроки как в (6)
(6) проще, а (5) -- правильнее. Точнее так -- (5) правильнее, если данные для анализа должны получатся сложной функцией, например запросом по данным строки, иначе --все равно.
(7)внутри пишешь примерно так

   Если ДанныеСтроки.количество > 0 Тогда
       ОформлениеСтроки.Ячейки.Цвет.цветФона = WebЦвета.БледноКрасноФиолетовый;
       ОформлениеСтроки.Ячейки.Цвет.цветТекста = WebЦвета.БледноКрасноФиолетовый;
   Иначе        ОформлениеСтроки.Ячейки.Цвет.цветФона = WebЦвета.БледноЗеленый;
       ОформлениеСтроки.Ячейки.Цвет.цветТекста = WebЦвета.БледноЗеленый;
   конецесли;
9 Торин
 
17.10.12
10:50
Что именно выделять цветом - текст или фон - выбери сам...
10 shock3r
 
17.10.12
10:52
(8) спасибо Торин. Хороший пример и толкование буду разбераться
11 Торин
 
17.10.12
10:53
если же тебе надо вначале получить остатки на складе запросом и потом уже в зависимости от этого количества менять цвет, тогда правильнее использовать событие "ПриПолученииДанных "
12 Торин
 
17.10.12
10:58
Да, чтобы  было понятнее
"ОформлениеСтроки.Ячейки.Цвет" -- "Цвет" -- это ИМЯ ячейки... у тебя такой ячейки не будет, будет там "номенклатура", "количество". "единицаИзмерения"...
13 shock3r
 
17.10.12
11:02
(12) Спасибо Торин!
14 shock3r
 
17.10.12
15:13
Пожалуйста, кто-нибудь, напишите пример кода, например по нажатию на кнопку, чтобы а ТЧ, в первой строке поменялся цвет фона, я уже весь мозг сломал
15 Reset
 
17.10.12
15:18
(14) --> (8)

Нажатием на кнопку цвет фона в конкретной строке поменять нельзя. Можно изменить условия, по которым строки окрашиваются. Для форсирования перерисовки табличного поля можно использовать ТП.ОбновитьСтроки(
16 Торин
 
17.10.12
15:30
подробно:
1. в таб часть добавляешь новый реквизит называешь его, например, "цвет"
2. на форму добавляешь соответствующую ячейку, но делаешь ее невидимой
3. по нажатию на кнопку пишешь следующий код

Если тч.количество()> 0 тогда
  ТЧ[0].цвет = 1;
  элементыФормы.ТЧ.Обновитьстроки();
конецЕсли;

в событие ПриВыводеСтроки пишешь

Если ДанныеСтроки.цвет = 1 Тогда
       ОформлениеСтроки.Ячейки.Номенклатура.цветФона = WebЦвета.БледноКрасноФиолетовый;
       ОформлениеСтроки.Ячейки.Количество.цветФона = WebЦвета.БледноКрасноФиолетовый;
....
и так для каждой из видимых ячеек
конецесли
17 Reset
 
17.10.12
15:34
Если нужно для всех ячеек, для каждой видимой не обязательно :) ОформлениеСтроки.ЦветФона
18 shock3r
 
17.10.12
15:43
(16)
(17)

Да мне всего-то нужно, чтобы при изменении в табличной части колонки количество, если оно > 0 - выделить всю строку зеленым, если = 0 красным... Я уже запутался, ячейки, невидимую ячейку
19 shock3r
 
17.10.12
15:44
сейчас сижу и пытаюсь сделать как сказано в (16)
20 shock3r
 
17.10.12
15:46
(16)
а что значит:
2. на форму добавляешь соответствующую ячейку, но делаешь ее невидимой

добавить на форму поле ввода, "цвет" ?
21 Reset
 
17.10.12
16:01
Для (18) не нужно дополнительных ячеек

Процедура ПриВыводеСтроки(Данные,Оформление)

Если Данные.Количество>0 тогда
Оформление.ЦветФорма=Зеленый;
ИначеЕсли Данные.Количество<0 тогда
Оформление.ЦветФорма=Красный;
Иначе // 0
Оформление.ЦветФорма=Серобуромалиновый;
КонецЕсли;

КонецПроцедуры;
22 Reset
 
17.10.12
16:01
ЦветФона*
23 Reset
 
17.10.12
16:03
Это в (8) было уже
24 shock3r
 
17.10.12
16:50
(16)
(18)
Заработало!!! Наконец-то

(Разработчики 1С)
Убейте себя
25 shock3r
 
17.10.12
16:51
Спасибо всем
AdBlock убивает бесплатный контент. 1Сергей