Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 11:36

Управляемые формы, Таблица значений

Автор Dvdovin, 13 дек 2010, 09:18

0 Пользователей и 2 гостей просматривают эту тему.

Dvdovin

Добрый день.

В 8.2 есть управляемая форма и на ней таблицазначений.
Вопрос: как можно поменять фон ячейки?
Тип ячеек: Документ.Ссылка, и менять цвет необходимо, если у этого документа один из реквизитов = true
Через "УсловноеОформление" не получилось у меня проверить реквизит документа в условии. Там можно только указать ПустуюСсылку....или я неправельно что-то делать???

но будет ещё лучше, если подскажите "программный способ",...но для управляемых форм я не нашёл метода "ПриВыводеСтрок" или его аналога, что бы закрасить ячейку через "ОформлениеСтроки"

Очень жду совета, заранее спасибо...:)

Slin

Интересно, что это событие таки существует для табличного поля, но пока я не нашел в реале его
skype: slin-dev

ms

Оформить можно через "УсловноеОфорление".
доступно оно и для программного изменения.
аналогично услов.оформ.динамического списка, только поля нужно указывать полностью.

Dvdovin

Цитата: ms от 13 дек 2010, 15:58
Оформить можно через "УсловноеОфорление".

Через "УсловноеОформления" я не нашёл возможности в условии проверить значение реквизита документа.

Цитата: ms от 13 дек 2010, 15:58
доступно оно и для программного изменения.
аналогично услов.оформ.динамического списка, только поля нужно указывать полностью.

А можно по-подробнее?

ms

Ну типа того
на форме есть дерево, оформим жирным шрифтом поле дерева "номенклатура" по условию
   ЭлементОУ = УсловноеОформление.Элементы.Добавить();
   ЭлементОУ.Использование    = Истина;
   ЭлементОУ.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,Истина));

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

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

Dvdovin

Пробую разобраться, но пока что не особо получается :fdbsdfbsd:

Dvdovin

А у меня вопросик. При каком событии Вы это делаете?

ms

это не зависит от события.
доступно УсловноеОформление на сервере, т.е. в любой серверной процедуре формы (ПриСозданииНаСервере например)

Dvdovin

Цитата: ms от 14 дек 2010, 13:24
это не зависит от события.
доступно УсловноеОформление на сервере, т.е. в любой серверной процедуре формы (ПриСозданииНаСервере например)

Это я понял. Но я никак не могу зазобраться что писать в "Левом и правом" значении, если у меня тип поля Жокумент.Ссылка....и проверить мне нужно его реквизит

вот смотри...сначало пишу это
   
   ЭлементОУ = УсловноеОформление.Элементы.Добавить();
   ЭлементОУ.Использование    = Истина;
   ЭлементОУ.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,0,0));

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


тут всё понятно...а вот дальше начинаются вопросы:

ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("?????");

Тут я должен указать как я понимаю поле табличной части? Тогда как мне указать что я хочу проверить реквизит документа? Или я тут указываю поле, а тут:

ЭлементУсловия.ПравоеЗначение = Истина;

указываю аля "документ.реквизит"


и ещё один вопросик:
что мне писать тут:

ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("??????");

если у меня не дерево а просто табличный документ?

Заранее спасибо, за объяснение




ms

вот хорошо бы вы просто заполнили УсловноеОформление (не программно), а через свойства формы в конфигураторе, а потом отладчиком посмотрели как оно выглядит))))
ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных(<Реквизит формы>);
т.е. реквизит объекта, или реквизит ТЧ объекта или другой реквизит формы

ЭлементУсловия.ПравоеЗначение - тут идет именно значение (ссылка, булево, дата, число, перечисление)

ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("??????");
указываете полный путь поля


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск