Как раскрасить строку на форме (ТаблицаЗначений) ?

1. maxster545 30.05.19 14:57 Сейчас в теме
На форме имеется Таблица Значений.
При изменении данных строки хотелось бы эту строку пометить цветом, есть ли возможность как-то это сделать?
По теме из базы знаний
Найденные решения
23. Sashares 35 30.05.19 15:47 Сейчас в теме
(21)Свойства формы - Условное оформление.
Прикрепленные файлы:
bugromov; MonteCriZto; volex; badger16; Vikka; Gadzhalik; user712426; begemot; Elf77; +9 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user5300 1059 30.05.19 14:59 Сейчас в теме
(1) УП или обычные формы?
4. maxster545 30.05.19 15:03 Сейчас в теме
(2) УП - будь они неладны))
6. user5300 1059 30.05.19 15:03 Сейчас в теме
(4) можно через условное оформление, условия добавь
8. maxster545 30.05.19 15:07 Сейчас в теме
(6) у меня как получается, условия как такового то нет, нужно просто выделить строку после того как внесли изменения в неё
Через условное формление не сработало нифига, по-всякому пробовал
10. Sashares 35 30.05.19 15:10 Сейчас в теме
(8) Сделай так, чтобы условие было.
Добавь в таблицу реквизит формы булевый, который устанавливается в Истина при изменении строки.
И установить отбор по этому реквизиту и оформление.
alex-l19041; +1 Ответить
11. user5300 1059 30.05.19 15:11 Сейчас в теме
(8)Или добавь условие программно при изменении строки )

ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

// Создаем условие отбора
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля); // имя поля
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой
//**** Значение для отбора
ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора;
// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
//****
ЭлементОтбора.Использование = Истина;
// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления.Оформление.Элементы[0];
Элемент.Значение = Цвет;
//2.
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);

Элемент.Использование = Истина;

Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:

// Создаем поля оформления
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления);
ПолеОформления.Использование = Истина;
Показать
25. Andreich88 26.01.21 15:32 Сейчас в теме
(11) Здравствуйте.
Такая же проблема, есть таблица значений как реквизит формы с одной колонкой, нужно после сортировки раскрасить ячейки. Сделал как описано выше, не раскрашивает. Был еще вариант но красит всю таблицу. Подскажите где может быть проблема?
7. user5300 1059 30.05.19 15:04 Сейчас в теме
(4) в свойствах формы: Условное оформление - добавь отбор и условие
13. maxster545 30.05.19 15:18 Сейчас в теме
(7)
Условное оформление

Нетю такого почему-то
14. user5300 1059 30.05.19 15:21 Сейчас в теме
(13) на сервере процедура
15. user5300 1059 30.05.19 15:23 Сейчас в теме
(13)
&НаСервере
Процедура ТаблицаПриИзмененииНаСервере()
	ЭлементУО = УсловноеОформление.Элементы.Добавить();
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);
    ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    //ЭлементУсловия.ЛевоеЗначение = Элементы.Склад.Имя;
    //ЭлементУсловия.ВидСравнения= ВидСравненияКомпоновкиДанных.НеРавно;
   // ЭлементУсловия.ПравоеЗначение = "количество"
    ЭлементУсловия.Использование=Истина;
КонецПроцедуры

&НаКлиенте
Процедура ТаблицаПриИзменении(Элемент)
	ТаблицаПриИзмененииНаСервере();
КонецПроцедуры

Показать
16. maxster545 30.05.19 15:28 Сейчас в теме
не раскрашивает :(

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

&НаСервере
Процедура ОформитьСтрокуНаСервере(ИмяПоля, Значение)
	ЭлементУО = УсловноеОформление.Элементы.Добавить();
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый);
    ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение = ИмяПоля;
    ЭлементУсловия.ВидСравнения= ВидСравненияКомпоновкиДанных.Равно;
    ЭлементУсловия.ПравоеЗначение = Значение;	
КонецПроцедуры

Показать
20. Sashares 35 30.05.19 15:43 Сейчас в теме
(16)
Удали эту процедуру и ее вызовы:
ОформитьСтрокуНаСервере


Нет никакой необходимости программно устанавливать условное оформление.
Тем более при каждом редактировании таблицы.
Да и не корректна она - не указано что именно оформлять.

Условное оформление устанавливается 1 раз.
Если так уж хочется программно - то при создании на сервере.

Вместо этой процедуры настрой интерактивно условное оформление для формы в конфигураторе для реквизита ТЧ "Изменение".
21. maxster545 30.05.19 15:45 Сейчас в теме
(20)
Настрой интерактивно условное оформление для формы в конфигураторе для реквизита ТЧ "Изменение".


а где именно это настраивается?
23. Sashares 35 30.05.19 15:47 Сейчас в теме
(21)Свойства формы - Условное оформление.
Прикрепленные файлы:
bugromov; MonteCriZto; volex; badger16; Vikka; Gadzhalik; user712426; begemot; Elf77; +9 Ответить
24. maxster545 30.05.19 15:50 Сейчас в теме
(23) ёпрст, а я в свойствах табличной части ищу, получилось, спасибо!
26. Vitvarg51 20.04.23 16:55 Сейчас в теме
(23) Спасибо! Очень пригодилось!
3. user5300 1059 30.05.19 15:02 Сейчас в теме
(1) Если Обычные формы то так :
 Процедура ТаблицаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

	ОформлениеСтроки.ЦветФона = webцвет.зеленый; ///Цвет
	ОформлениеСтроки.Ячейки.Картинка = библиотекаКартинок.ПерваяКартинка; ///Картинка
Конецпроцедуры
5. maxster545 30.05.19 15:03 Сейчас в теме
(3) в обычных всё просто ))
12. dhurricane 30.05.19 15:17 Сейчас в теме
(1) Сделать это можно примерно так.

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

2. Далее необходимо установить условное оформление формы для таблицы. Можно настроить в свойствах формы, но как правило это делают программно, один раз, при создании формы на сервере:
ЭлементУО = УсловноеОформление.Элементы.Добавить();
ЭлементУО.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);

ПолеЭлемента = ЭлементУО.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Товары.Имя);

ОтборЭлемента = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Изменена");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Показать
dsdred; user712426; inclodes; +3 Ответить
17. maxster545 30.05.19 15:38 Сейчас в теме
(12) не раскрашивает и всё тут
18. dhurricane 30.05.19 15:40 Сейчас в теме
(17) Значит что-то сделали не так, давайте разбираться. :) Что из предложенного мной Вы реализовали?
19. maxster545 30.05.19 15:41 Сейчас в теме
22. dhurricane 30.05.19 15:45 Сейчас в теме
(19) Во-первых, не указаны расскрашиваемые поля. Во-вторых, возможна ошибка в параметрах при вызове процедуры "ОформитьСтрокуНаСервере", хорошо бы этот вызов тоже показать.
sm.artem; +1 Ответить
9. XiPyPg 30.05.19 15:08 Сейчас в теме
ОформлениеСтроки.ЦветФона и дальше там или цвета ргб или вебцвета.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот