Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Первый вариант решения
Дальше: Третий вариант решения

Второй вариант решения

На самом деле можно обойтись без вызова сервера, если использовать для изменения шрифта поля СуммаСкидки условное оформление формы.

Для этого зададим условное оформление поля СуммаСкидки: жирный шрифт и зеленый цвет текста, в случае если значение поля Скидка истинно (флажок установлен), и красный цвет текста, если значение поля Скидка ложно (рис. 4.80).

Рис. 4.80. Установка условного оформления для поля «Сумма скидки»

Теперь изменим обработчик события ПриИзменении поля формы Скидка (листинг 4.69).

Листинг 4.69. Процедура «СкидкаПриИзменении()»

&НаКлиенте

Процедура СкидкаПриИзменении(Элемент)

 

Если Объект.Скидка Тогда

Объект.СуммаУслуги = Объект.ЦенаУслуги - Объект.СуммаСкидки;

 

Иначе

Объект.СуммаСкидки = 0;

Объект.СуммаУслуги = Объект.ЦенаУслуги;

 

КонецЕсли;

 

КонецПроцедуры

В этом обработчике мы оставляем только пересчет суммы услуги в соответствии с заданным алгоритмом, а оформление поля мы задали с помощью условного оформления формы (рис. 4.80).

Обработчик события формы ПриСозданииНаСервере можно теперь удалить, так как он больше не нужен.

ПРИМЕЧАНИЕ

Этот пример можно посмотреть в демонстрационной конфигурации «13 (вар. 2) Изменение свойств элементов формы, не требующих обращения к серверу».

Запустим «1С:Предприятие», создадим документ об оказании услуги, выберем услугу, клиента и внесем цену услуги. Первоначально флажок Скидка не установлен, сумма услуги равна цене услуги, а сумма скидки отображается красным цветом текста обычной жирности. Внесем сумму скидки – сумма услуги не изменится. Установим флажок Скидка. После этого поле СуммаСкидки будет отображено жирным шрифтом и зеленым цветом текста, а поле СуммаУслуги автоматически пересчитается по заданному нами алгоритму (рис. 4.77).

При снятии флажка Скидка поле СуммаСкидки обнуляется и отображается красным, а поле СуммаУслуги снова пересчитывается.

Как мы видим, функциональность прикладного решения будет такой же, как и в первом случае, но производительность будет выше, так как изменение шрифта поля формы с помощью условного оформления не приведет к обращению на сервер.

ПРИМЕЧАНИЕ

Заметим, что при первом изменении оформления элементов формы с помощью условного оформления могут быть лишние серверные вызовы за счет кеширования платформой необходимой информации.

Назад: Первый вариант решения
Дальше: Третий вариант решения