Имя: Пароль:
1C
 
8.2 Изменить цвет фона текущей строки в динамическом списке с произвольным запросом
0 detec
 
07.10.10
18:05
Приветствую!

Использую динамический список с произвольным запросом для подбора добавляемых в форму-владелец значений. Хотелось бы подкрашивать уже выбранные строки. Я добавил для этого в запрос динамического списка поле с типом "Булево", после выбора успешно меняю его значение, флажок после обновления отображения появляется.
Но не получается добраться до изменения цвета фона строки. Кто-то знает, как это сделать?
1 Композитор
 
07.10.10
18:07
2 detec
 
07.10.10
18:13
(1) Спасибо. Эту настройку я, естественно сделал. Но она выставляет раскраску в момент создания формы и считывания данных запросом. А я изменяю значение поля динамического списка в самой форме. И, к примеру, если я интерактивном выполняю стандартную команду "Обновить" для динамического списка, то все мои флажки слетают. Т.е. должен быть какой-то иной метод.
3 detec
 
07.10.10
18:19
Кстати, проверил в демоконфигурации "Управляемое приложение" - там при подборе товары не раскрашиваются.
4 Композитор
 
07.10.10
18:24
(2) странно. Если условие раскраски строки определяется значением изменяемого поля, то строка должна окрашиваться после изменения значения этого поля.
5 detec
 
07.10.10
18:36
(4) В том-то и дело. Я решил переделывать это дело, вставил в форму реквизит с типом "Таблица значений", чтобы значение флажка никуда не пропадало, по крайней мере.
6 detec
 
07.10.10
18:53
Офигеть, похоже, что можно достучаться только до поля таблицы, т.е. раскрасить ячейку или строку на клиенте - нереально. Или реально?...
7 detec
 
08.10.10
10:08
Кто-нибудь работал с этим? Есть примеры рабочего кода?



Расширение данных строки для динамического списка (Row data extension for dynamic list)
Расширение данных строки для динамического списка (Row data extension for dynamic list)
Свойства:

<Имя колонки>ОформлениеЯчейки (<Имя колонки>CellAppearance)

Описание:

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

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
8 detec
 
08.10.10
12:26
Готов рабочий код для ячейки!

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   
   // Дёргаем процедуру формы-владельца.
   ВладелецФормы.ОбработатьВыборТранспондера(Элементы.Список.ТекущиеДанные);
   
   // Меняем состояние флажка.
   Элементы.Список.ТекущиеДанные.Добавлено = истина;
   
   // Находим текущую строку.
   ТекСтрока = Элементы.Список.ТекущаяСтрока;
   
   // Получаем текущую строку.
   Данные = Элементы.Список.ДанныеСтроки(ТекСтрока);
   
   // Присваиваем цвет
   Данные.ТранспондерОформлениеЯчейки.ЦветФона = WebЦвета.БледноЗолотистый;
   
   // включаем цвет, иначе ничего не отобразится.
   Данные.ТранспондерОформлениеЯчейки.ИспользованиеЦветаФона = Истина;
       
   // Обновляем отображение именно формы, чтобы флажок отобразился.
   ЭтаФорма.ОбновитьОтображениеДанных();

КонецПроцедуры
9 detec
 
08.10.10
13:00
Рабочий код для всей строки.

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   
   // Дёргаем процедуру формы-владельца.
   ВладелецФормы.ОбработатьВыборТранспондера(Элементы.Список.ТекущиеДанные);
   
   // Меняем состояние флажка.
   Элементы.Список.ТекущиеДанные.Добавлено = истина;
   
   СтруктураДанных = Элементы.Список.ТекущиеДанные;
   
   // Обходим все ячйеки в строке
   Для Каждого Элемент Из Элементы Цикл // Ищем поля формы
       Если ТипЗнч(Элемент) = Тип("ПолеФормы") Тогда
           ИмяПоля = Элемент.Имя;
           Элементы.Список.ТекущиеДанные[ИмяПоля + "ОформлениеЯчейки"].ЦветФона
               = WebЦвета.БледноЗолотистый;
           Элементы.Список.ТекущиеДанные[ИмяПоля + "ОформлениеЯчейки"].ИспользованиеЦветаФона
               = Истина;
           
       КонецЕсли;
   КонецЦикла;    
   
       
   // Обновляем отображение именно формы, чтобы флажок отобразился.
   ЭтаФорма.ОбновитьОтображениеДанных();

КонецПроцедуры
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс