|
Как создать процедуру на клиенте? | ☑ | ||
---|---|---|---|---|
0
СэдКС
18.05.12
✎
10:06
|
Прошу помощи в таком вопросе: Есть форма, которая обновляется только на сервере. (при закрытии/открытии формы в программе граф-кое оформление данных в ней обновляется, а при нажатии на кнопочку Обновить - не обновляется). Нужно добавить обновление и на клиенте, как я понимаю. В модуле БизнесПроцессыИЗадачиСервер есть процедура, код которой я привела ниже. Как подкорректировать эту процедуру для клиента?
Процедура УстановитьОформлениеЗадач(Знач УсловноеОформление) Экспорт // установка оформления для просроченных задач ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СрокИсполнения"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; ЭлементОтбораДанных.Использование = Истина; ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СрокИсполнения"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше; ЭлементОтбораДанных.ПравоеЗначение = ТекущаяДата(); ЭлементОтбораДанных.Использование = Истина; ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Выполнена"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанных.ПравоеЗначение = Ложь; ЭлементОтбораДанных.Использование = Истина; ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor"); ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ПросроченнаяЗадача.Значение; ЭлементЦветаОформления.Использование = Истина; // установка оформления для выполненных задач ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Выполнена"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанных.ПравоеЗначение = Истина; ЭлементОтбораДанных.Использование = Истина; ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor"); ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ВыполненнаяЗадача.Значение; ЭлементЦветаОформления.Использование = Истина; // установка оформления для задач, не принятых к исполнению ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПринятаКИсполнению"); ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбораДанных.ПравоеЗначение = Ложь; ЭлементОтбораДанных.Использование = Истина; ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("Font"); ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.НеПринятыеКИсполнениюЗадачи.Значение; ЭлементЦветаОформления.Использование = Истина; КонецПроцедуры |
|||
1
СэдКС
21.05.12
✎
12:10
|
У меня так и не получилось. :(
|
|||
2
Wobland
21.05.12
✎
12:11
|
>Есть форма, которая обновляется только на сервере
как ты научил сервер видеть форму? |
|||
3
СэдКС
21.05.12
✎
13:14
|
Я его не учила, он умел это делать сам.
Приведенный код уже был в конфигурации. Условие было таким, что если срок исполнения меньше КонецДня(ТекущейДаты), то цвет текста становился красным. Но мне нужно было, чтобы только когда срок истекал, то цвет менялся. Я просто убрала слово КонецДня. В итоге надо сделать процедуру обновления на клиенте... |
|||
4
СэдКС
24.05.12
✎
11:53
|
Пробовала через условное оформление формы добавить условие отбора, но тогда вообще не обновляется ни при обновлении формы, ни при ее закрытии.
|
|||
5
СэдКС
30.05.12
✎
06:34
|
(4) причем тут отбор, не помню... наверно я пробовала вё подряд. еще пробовала так :
&НаКлиенте Процедура Обновить(Команда) Список.ОбновитьОтображениеДанных(); КонецПроцедуры либо &НаКлиенте Процедура НажатиеКнопки(Элемент) Оповестить("ОбновитьСписок"); КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "ОбновитьСписок" Тогда Элементы.Список.Обновить(); КонецЕсли; КонецПроцедуры А если при обновлении каждый раз вызывать процедуру с сервера? или нагрузка? |
|||
6
СэдКС
30.05.12
✎
08:46
|
нужно было добавить всего 2 процедуры:
&НаКлиенте Процедура Обновить(Команда) ОбновитьСписокЗадач(); КонецПроцедуры &НаСервере Процедура ОбновитьСписокЗадач() БизнесПроцессыИЗадачиСервер.УстановитьОформлениеЗадач(Список.УсловноеОформление); КонецПроцедуры Лена опять молодец |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |