Имя: Пароль:
1C
1С v8
Оформление строки ТЧ в УФ
,
0 tempaccount
 
18.07.14
15:12
День добрый!
Столкнулся с проблемой оформления табличных частей. гуглил - гуглил, нашел статьи про условное оформление на сервере для динамических списков, но мне это не подходит.
Соответственно вопрос: Есть ли возможность из типа "ДанныеФормыЭлементКоллекции" получить возможность установки цвета фона?
(Т.к. это поле табличной части, я подозреваю такая возможность должна быть)
1 Wobland
 
18.07.14
15:16
совсем-совсем не подходит?
2 tempaccount
 
18.07.14
15:18
(1) Если Вы про динамический список - да. Поймите меня правильно, я в принципе не понимаю связь между оформлением тч клиента и сервером.
3 mikecool
 
18.07.14
15:19
"я в принципе не понимаю связь между оформлением тч клиента и сервером" пофик кто оформляет, оформление как и тч одна и та же, что на клиенте, что на сервере
4 Лодырь
 
18.07.14
15:19
(2) А при чем тут сервер?
5 Wobland
 
18.07.14
15:20
(2) я про условное оформление
6 SSSSS_AAAAA
 
18.07.14
15:22
(3) Какое на сервере найдено оформление? Где и как посмотреть оформление именно на сервере?
7 tempaccount
 
18.07.14
15:22
(4) Ну я нашел примеры с использованием УО, который работает с Динамическим списком и, как следствие, компоновкой данных, оформление которых определяется на основе элемента отбора.

А я ни условие под отбор не могу сделать нормально, ни использовать динамический список.

ТЧ две, и при изменении обоих может меняться стиль первой.
8 mikecool
 
18.07.14
15:23
(6) откуда я знаю, где посмотреть
но работать то с ним можно
9 Wobland
 
18.07.14
15:23
10 SSSSS_AAAAA
 
18.07.14
15:25
"я нашел примеры с использованием УО, который работает с Динамическим списком и, как следствие, компоновкой данных, оформление которых определяется на основе элемента отбора."
Еще раз:  а при чем тут сервер? Где указание на выполнение оформления на сервере?
11 SSSSS_AAAAA
 
18.07.14
15:27
(8)Его там можно задать, но выполняется применение этого оформления на клиенте, в форме.
12 tempaccount
 
18.07.14
15:27
(10) Объект УсловноеОформление доступен только на сервере.


Через элементы я нашел доступ к цвету фона (но меняется вся колонка).
13 Лодырь
 
18.07.14
15:28
(12) Ну дык используй условное оформление таки. Задашь условие, укажешь оформляемые поля и все дела.
14 Лодырь
 
18.07.14
15:28
Проблема в том что ты недогадываешся вызвать с клиента сервер чтоли?
15 Адинэснег
 
18.07.14
15:30
(12) оформляемые поля криво задал
16 tempaccount
 
18.07.14
15:32
(13) Тут вытикает две проблемы:
1) Как достать до оформления строки/поля строки (НЕ всей колокни) через "ДанныеФормыЭлементКоллекции", и тогда могу менять как мне надо.

2) Использовать УО, но ни как использовать его для ТЧ, ни как написать туда более менее сложно условие (должно сравниваться значение измененной строки с другой ТЧ).
17 Лодырь
 
18.07.14
15:36
(16) Пункт 2 не взлетит. Переписывай логику. При изменении строки одной ТЧ придется перебрать другую и вычислить признак для выделения фона.
18 Лодырь
 
18.07.14
15:39
(16) Пункт 1 достигается традиционным кодом аля:

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

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

    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Контрагент");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
19 tempaccount
 
18.07.14
15:47
(17) А в чем проблема с логикой? Элементарно и читабельно (само-собой мне так кажется).
При изменении строки в обеих тч вызывается функция возвращающая элемент другой (имею ввиду другой - одной из этих двух) тч по дому. И, если я правльно понял, то оформления строки принимает вид в зависимости от ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Контрагент");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

Я прав?
20 Defender aka LINN
 
18.07.14
15:48
(16) п.2 - Добавить реквизит *формы* в табличную часть, УО строить от него, пересчитывать при изменении ТЧ.
21 tempaccount
 
18.07.14
16:02
(18) А я могу использовать поля элемента в "ЭлементОтбораКомпоновкиДанных"?
  ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ИзменениеПринадлежности.ДатаИзменения");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
    ОтборЭлемента.ПравоеЗначение = ВернутьДату(ДомТекущегоЭлемент); - Тут что-то вроде: Новый ПолеКомпоновкиДанных("Объект.ИзменениеПринадлежности.Дом")?

2) Собственно могу ли я использовать функцию?

П.с. я не понимаю как работает элемент отбора в данном случае, мне приходилось использовать его только в динамическом списке, и то там был отбор примитивный.
22 Лодырь
 
18.07.14
16:13
(21)
ЭлементОтбораКомпоновкиДанных.ПравоеЗначение (DataCompositionFilterItem.RightValue)
ЭлементОтбораКомпоновкиДанных (DataCompositionFilterItem)
ПравоеЗначение (RightValue)
Использование:

Чтение и запись.
Описание:

Содержит правое значение элемента отбора.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Тип правого значения может быть полем, остальные варианты зависят от левого значения. Это может быть его тип левого значения, либо, если слева выбрано поле, может использоваться тип поля.
23 tempaccount
 
18.07.14
16:24
(22) "остальные варианты зависят от левого значения" - имеется ввиду если левое дата то и правое дата? Я не понимаю для чего Вы сп написали, ведь вопрос был не про типы, а про то будет ли вызываться метод, хотя конечно же будет.
Скажите что мне почитать, а то мы к решению так и не подходим. Спасибо.
24 Лодырь
 
18.07.14
16:27
(23) Если ты используешь функцию для задания правого значения, то она вычислится 1 раз в момент задания и все. Следовательно, если значение возвращаемое этой функцией поменялось - надо переопределять условное оформление.
25 tempaccount
 
18.07.14
16:43
(24) Вот это то я и боюсь.
Придется в любом случае работать с отборами для оформления или все же есть способы достучаться до оформления?
26 Лодырь
 
18.07.14
16:57
(25) Я вас не понимаю. Это и есть единственный способ достучаться до оформления.
Программист всегда исправляет последнюю ошибку.