|   |   | 
| 
 | УсловноеОформление в УФ | ☑ | ||
|---|---|---|---|---|
| 0
    
        pessok 04.12.12✎ 15:58 | 
        Коллеги, привет. Продолжаю изучать УФ, и появляются все новые вопросы. Теперь задача следующая. На форме лежит таблица, созданная динамически. К ней привинчены обработчики ожидания. По одному из обработчик в реквизит формы (ТЗ) пишется информация о том, на какой строчке и в какой колонке мы стояли, когда выбрался обработчик. Собственно, это раскраска таблицы пользователем. После того, как все это записалось (а пишется оно нормально), хочу считать данные и заполнить условное оформление, но лыжи не едут...
  Вот код, ткните носом в ошибку, плз. &НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); Для Каждого СтрокаЦветов Из ДанныеПоЦветам Цикл ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗаполнения"+СтрокаЦветов.КолонкаТаблицы); ЭлементОтбораСтрока = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораСтрока.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаЗаполнения.НомерСтроки"); ЭлементОтбораСтрока.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораСтрока.ПравоеЗначение = СтрокаЦветов.СтрокаТаблицы + 1; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", СтрокаЦветов.Цвет); КонецЦикла; КонецПроцедуры | |||
| 1
    
        samozvanec 04.12.12✎ 16:01 | 
        ты хочешь конкретной строке условное оформление задать?     | |||
| 2
    
        pessok 04.12.12✎ 16:04 | 
        (1) именно     | |||
| 3
    
        pessok 04.12.12✎ 16:06 | 
        (1) я бы даже сказал, что я хочу делать как в обычных формах а ля
  Для Каждого Оф Из ОформленияСтрок Цикл Если Истина Тогда Оф.Ячейка.ЦветФона = Красный Иначе Оф.Ячейка.ЦветФона = Зеленый КонецЦикла и т.п. | |||
| 4
    
        acsent 04.12.12✎ 16:09 | 
        у тз нет номера строки, если только руками не создать     | |||
| 5
    
        samozvanec 04.12.12✎ 16:10 | 
        ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
  ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаЗаполнения"+СтрокаЦветов.КолонкаТаблицы); вот это вроде лишнее, если всю строку хочешь выделять. на чем хоть валится? | |||
| 6
    
        pessok 04.12.12✎ 16:10 | 
        (4) я в курсе
  (5) нигде не валится, ошибок не выдает. в УсловноеОформление элемент на месте. На форме ничего не видно | |||
| 7
    
        samozvanec 04.12.12✎ 16:11 | 
        Новый ПолеКомпоновкиДанных("ТаблицаЗаполнения.НомерСтроки");
  ТаблицаЗаполнения тут зачем? | |||
| 8
    
        samozvanec 04.12.12✎ 16:11 | 
        использование?     | |||
| 9
    
        samozvanec 04.12.12✎ 16:13 | 
        вобще у тебя так на каждую строку оформление создастся. добавь поле какое-нибудь, заполняй истиной-ложью, по нему оформляй     | |||
| 10
    
        pessok 04.12.12✎ 16:50 | 
        сорри, отвлекали. 
  (7) ну так номер строки по строке реквизита я хочу искать. (8) использование на месте (9) мне и надо на каждую строку, там не только истина/ложь, там справочник :) | |||
| 11
    
        pessok 04.12.12✎ 16:54 | 
        +(10) собственно по этому и создана таблица дополнительная     | |||
| 12
    
        samozvanec 04.12.12✎ 16:56 | 
        в условном оформлении элемент появился, корректно заполнен?     | |||
| 13
    
        pessok 04.12.12✎ 17:00 | ||||
| 14
    
        samozvanec 04.12.12✎ 17:02 | 
        (13) зачем поле задаешь? тебе всю строку покрасить или только это поле?
  вобще выглядит нормально. возможно что-то с отбором. использование Истина у отбора? | |||
| 15
    
        samozvanec 04.12.12✎ 17:05 | 
        вобще вот такой кусок должен работать
  УО = СписокДокументов.УсловноеОформление.Элементы; ЭлементУО = УО.Добавить(); ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый); ЭлементУсловия = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата"); ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементУсловия.ПравоеЗначение = НачалоДня(ТекущаяДата()); | |||
| 16
    
        samozvanec 04.12.12✎ 17:06 | 
        + ты в каком событии все это делаешь? может обновить надо форму?     | |||
| 17
    
        pessok 04.12.12✎ 17:06 | 
        (14) красить только поле. притом в каждой строке раскраска каждого поля по своему условию, собственно условие и заложено в таблице ДанныеПоЦветам
  Отбор http://rghost.ru/42000829.view | |||
| 18
    
        samozvanec 04.12.12✎ 17:07 | 
        (17) в отборе у тебя левое значение - ПолеКомпоновкиДанных, правое - число     | |||
| 19
    
        pessok 04.12.12✎ 17:08 | 
        (18) 
  а такой код ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Дата"); ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементУсловия.ПравоеЗначение = НачалоДня(ТекущаяДата()); разве не такое же сравнение вернет?.. | |||
| 20
    
        samozvanec 04.12.12✎ 17:09 | 
        (18) о чем это я...     | |||
| 21
    
        samozvanec 04.12.12✎ 17:10 | 
        (19) вернет вернет, (16) смотри     | |||
| 22
    
        pessok 04.12.12✎ 17:14 | 
        (21) это делается в динамически создаваемой команде. потом вызывается 
  Элементы.ТаблицаЗаполнения.Обновить(); | |||
| 23
    
        samozvanec 04.12.12✎ 17:42 | 
        ЭлементОтбораСтрока.ПравоеЗначение = СтрокаЦветов.СтрокаТаблицы + 1;
  а вот тут уверен? | |||
| 24
    
        samozvanec 04.12.12✎ 17:44 | 
        если УО заполнено верно - косяк в отборе. попробуй задать отбор другой, который обязательно сработает. типа номер строки больше 1     | |||
| 25
    
        pessok 04.12.12✎ 17:47 | 
        (24) пробовал я уже такой отбор :( не уверен, что УО правильно заполнено     | |||
| 26
    
        samozvanec 04.12.12✎ 17:49 | 
        (25) судя по коду - все верно. сделай руками УО в режиме предприятия и посмотри, чем он от твоего отличаться будет     | |||
| 27
    
        pessok 04.12.12✎ 17:50 | 
        (26) у меня таблица демонически создается. пробовал для другой таблицы, вроде бы один в один     | |||
| 28
    
        samozvanec 04.12.12✎ 17:56 | 
        вернемся к (6). у тебя элемент есть в УО. попробуй снять использование, сохранить, установить, сохранить... нутыпонел, чето поделай с ним интерактивно, чтоб  заработал, смотри, что     | |||
| 29
    
        pessok 04.12.12✎ 17:58 | 
        (28) ладно, мерси, завтра буду ковыряться :) щас уже хваааатит)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |