Добавить на форму переключатель. Переключатель содержит два значения Работникам, Подразделению.

При выборе "Работникам" должно выдаваться поле для выбора сотрудников из СО

При выборе "Подразделению" должно выдаваться поле для выбора подразделений из СО

По умолчанию должен быть выбран "Работникам"

Инструмент: Палитра XML
Статус

РазделПоле
КомментарийДополнительный комментарий


Создание перечисления

Создать новую схему перечисления listTypeSO

<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
  <enum name="listTypeSO">
    <string value="Employee" name="Employee"/>
    <string value="Department" name="Department"/>
  </enum>
</schemas>

Подключение перечисления к схеме

Подключить перечисление listTypeSO к полю typeSO на форме и задать значение по умолчанию Employee

<?xml version='1.0' encoding='UTF-8'?>
<schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema">
	<schema name="{schema name}"> 
		<!--...-->
		<enum-ref name="typeSO" ref="listTypeSO" default-value="Employee">
			<storage-field name="typeSO"/>
		</enum-ref>
	 	<!--...-->
	<schema>
</schemas>

Задание алиасов

Добавить справочник aliasTypeSO для отображения русскоязычных значений

<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
    <directories>
 		<list name="${ui.directories.list.aliasTypeSO.name:Тип СО}" id="aliasTypeSO">
            <value alias="Employee" name="Работникам"/>
            <value alias="Department" name="Подразделению"/>
        </list>
  	</directories> 
</ui>

Вывод поля на форму

Подключить св-во схемы typeSO к форме, для вывода его в UI-интерфейс. Указать widget="radio" и подключить справочник aliasTypeSO для отображения русскоязычных значений

<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
    <form schema-ref="{schema name}" id="{form name}" projection="default" showtabs="true">
        <component>
            <!--...-->
            <section>
			  	<!--...--> 
                <field attribute-ref="typeSO">
                    <appearance widget="radio"/>
				 	<directories>
                    	<directory-ref ref="aliasTypeSO"/>
                    </directories>
                </field>
			  	<!--...--> 
            </section>
		  	<!--...--> 
        </component>
    </form>
</ui>

Создание условия

Создать условие selectDepartment, по которому будет скрываться поле Работник и отображаться Подразделение

<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
	<condition name="selectDepartment">
		<modes>
			<mode name="edit"/>
		</modes>
		<schema-ref ref="{schema name}" condition-union="AND">
			<string-ref value="Department" ref="typeSO"/>
		</schema-ref>
	</condition>
</ui>

Подключение условия к полям формы

Подключить условие selectDepartment применение к полю  department и employee

<?xml version='1.0' encoding='UTF-8'?>
<ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui">
    <form schema-ref="{schema name}" id="{form name}" projection="default" showtabs="true">
        <component>
            <!--...-->
            <section>
				 <!--...-->
				<field attribute-ref="typeSO">
                    <appearance widget="radio"/>
				 	<directories>
                    	<directory-ref ref="aliasTypeSO"/>
                    </directories>
                </field>

 				<field attribute-ref="department" name="${ui.form.department.name:Подразделения:}">
          			<properties>                                                          
                   		<hide condition-union="AND">
                        	<negative-condition-ref ref="selectDepartment"/>
                        </hide>
                	</properties>
                </field>
				
			 	<field attribute-ref="employee" name="${ui.form.employee.name:Работники:}">
          			<properties>                                                          
                   		<hide condition-union="AND">
                        	<condition-ref ref="selectDepartment"/>
                        </hide>
                	</properties>
                </field>
				 <!--...-->
            </section>
        </component>
    </form>
</ui>