Вычисление одного Условия применения происходит по следующим правилам:
Условия по одному параметру объединяются логикой «ИЛИ», кроме условий на состояние бизнес-объекта, где логика объединения условий задается настройками.
Условия по разным параметрам объединяются логикой «И».
Условие применения работает только при полном соответствии всем параметрам.
Например, Условие применения «CanSign» можно представить как:
(Режим использования Формы = Чтение) И (Значение Свойства «$canSign» = «Да»),
и элемент, к которому будет применено это Условие применения, будет отображаться на форме только при точном его выполнении.
Если к одному элементу интерфейса применяется несколько Условий применения, то итоговое условие вычисляется по следующим правилам:
Каждое условие разбивается на составные части по параметрам.
Части всех Условий применения по одному параметру объединяются логикой «ИЛИ».
Полученные условия по разным параметрам объединяются логикой «И».
Например, если описаны два Условия применения:
УП1: (Режим использования формы = Редактирование) И (Роль = Делопроизводитель) И (Таблица значений = (Поле_А=1 И Поле_Б=1)) УП2: (Режим использования формы = Чтение) И (Роль не указана) И (Таблица значений = (Поле_В=1 ИЛИ Поле_Д=1))
То при наложении на элемент интерфейса обоих Условий применения результирующее условие будет имет вид:
УП1+УП2: (Режим использования Формы = Редактирование ИЛИ Чтение) И (Роль = Делопроизводитель) И (Таблица значений = ((Поле_А=1 И Поле_Б=1) ИЛИ (Поле_В=1 ИЛИ Поле_Д=1)))
Структура XMLРазвернуть исходный код
<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
<condition name="{name}">
<!-- Роли -->
<roles>
<role name="{name role}"/>
<role name="{name role}"/>
</roles>
<!-- Режим использования формы -->
<modes>
<mode name="{name mode}"/>
<mode name="{name mode}"/>
</modes>
<!-- Состояние объекта -->
<schema-ref ref="{schema name}" condition-union="AND" >
<boolean-ref value="true" ref="{name schema property}"/>
</schema-ref>
<!-- Выражение -->
<expression lang="JavaScript"><![CDATA[...]]></expression>
</condition>
</ui>