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

Изменение оформительских свойств элементов формы, не требующих обращения к серверу

Для реализации той или иной функциональности формы часто бывает нужно изменять свойства ее элементов (например, менять их оформление) в зависимости от конкретных действий пользователя.

Первое, что приходит в голову, – использовать для этого обработчик события элементов формы ПриИзменении и программно изменять требуемые свойства на клиенте.

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

В платформе «1С:Предприятие» начиная с версии 8.3.7 реализован новый механизм расстановки элементов формы. В результате реализованы новые возможности размещения элементов в форме, изменение большинства оформительских свойств элементов формы на клиенте больше не требует обращения к серверу.

Поэтому при программном изменении на клиенте желательно использовать свойства элементов формы, изменение которых не приводит к обращениям на сервер. Например, вместо свойства Шрифт можно использовать свойства ЦветФона или ЦветТекста.

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

Какой же вариант предпочтительнее? Рассмотрим пример.

Предположим, в форме документа об оказании услуг содержатся цена услуги, флажок скидки, сумма скидки и сумма услуги. В случае установки флажка Скидка поле СуммаСкидки должно быть выделено жирным шрифтом и зеленым цветом текста. При снятии флажка Скидка поле СуммаСкидки должно обнуляться и выводиться обычным шрифтом и красным цветом текста (рис. 4.77).

Рис. 4.77. Оформление поля «Сумма скидки» в зависимости от состояния флажка «Скидка»

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

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