Действия по добавлению нового Модуля в карточку Способ поиска счетчика:
Добавить дополнительный модуль в схему
<?xml version='1.0' encoding='UTF-8'?> <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema"> <enum name="ModuleType"> <meta> <category name="РМ Администратора"/> </meta> <string value="InternalDocs" name="InternalDocs"/> <string value="InputDocs" name="InputDocs"/> <string value="OutputDocs" name="OutputDocs"/> <string value="Missions" name="Missions"/> <string value="ContractsLite" name="ContractsLite"/> <string value="Requests" name="Requests"/> <string value="{Module}" name="{Module}"/> </enum> </schemas> |
Добавить дополнительный модуль в схему
<value-list name="${ui.directories.value-list.classifier-type-module.name:Тип модуля}" id="classifier-type-module"> <value name="Внутренние документы"/> <value name="Входящие документы"/> <value name="Исходящие документы"/> <value name="ОРД"/> <value name="Договоры"/> <value name="Обращения граждан"/> <value name="{Модуль}"/> </value-list> |
В итоге должен быть доступен выбор типа модуля в поле Модуль
Действия по добавлению нового Модуля в карточку Подразделения:
Добавить в схему дополнительные св-ва:
<boolean name="{module}AnotherUnit" system="true" createlog="true"> <storage-string value="1" /> </boolean> |
Создать условия применения по скрытию полей, при флаге "Другое подразделение" в override/tuning/so/condition/condition.pal.xml
<condition name="SystemGroup_is{module}AnotherUnit"> <schema-ref ref="SystemGroup" condition-union="AND"> <boolean-ref value="true" ref="{module}AnotherUnit"/> </schema-ref> </condition> |
Добавить новую секцию c новым модулем
<section id="{module}" name="${ui.form.SystemGroupsForm.{module}.name:{Модуль}}"> <appearance field-layout="vertical"> <dialog-mode width="50" unit="procent"/> </appearance> <component> <section id="{module}AnotherUnit" group="true"> <appearance field-layout="horizontal" /> <component> <field attribute-ref="anotherUnitTitle"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> </properties> <appearance importance="normal"> <label-style label-width="18" label-unit="symbol"> <style id="tunGray" /> </label-style> <field-style> <value-style> <style id="tunGray" /> </value-style> </field-style> </appearance> </field> <field autofill="true" attribute-ref="{module}AnotherUnit"> <appearance align="left"/> </field> </component> </section> <field clickable="true" attribute-ref="{module}AnotherUnitValue"> <properties> <requre condition-union="AND"> <condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </requre> <hide condition-union="AND"> <negative-condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </hide> </properties> <appearance open-mode="dialog" importance="normal" clickable="true"> <label-style> <style id="tunClickableRed" /> </label-style> <field-style> <value-style> <style id="tunClickableRed" /> </value-style> </field-style> </appearance> <directories livesearch="true" limit-livesearch="no-restrictions" relation="arm-admin-livesearch-dep-rvz" digest="digestSOLiveSearch"> <show-select-value> <descriptor-ref ref="arm-admin-livesearch-dep-rvz"/> </show-select-value> <directory-ref ref="arm-admin-ierarchy-rvz"/> <directory-ref ref="arm-admin-dialog-dep" /> <directory-ref ref="arm-admin-dialog-rvz" /> </directories> </field> <field attribute-ref="clerks"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </hide> </properties> <appearance importance="normal"> <label-style> <style id="tunGray" /> </label-style> <field-style> <value-style> <style id="tunGray" /> </value-style> </field-style> </appearance> </field> <section id="{module}Clerck" group="true" > <appearance field-layout="horizontal"/> <component> <field clickable="true" attribute-ref="{module}ClerckUnit" name="${ui.form.SystemGroupsForm.field.{module}ClerckUnit.name:Делопроизводители:}"> <properties> <hide condition-union="AND"> <condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </hide> </properties> <appearance location="table" importance="normal" clickable="true"/> </field> </component> </section> <section id="{module}Audit" group="true"> <appearance field-layout="vertical"/> <component> <field attribute-ref="auditorsTitle"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </hide> </properties> <appearance importance="normal"> <label-style> <style id="tunGray" /> </label-style> <field-style> <value-style> <style id="tunGray" /> </value-style> </field-style> </appearance> </field> <field autofill="true" clickable="true" attribute-ref="{module}Auditors"> <properties> <hide condition-union="AND"> <condition-ref ref="SystemGroup_is{module}AnotherUnit"/> </hide> </properties> <appearance open-mode="dialog" align="left" clickable="true"> <label-style> <style id="tunClickableRed" /> </label-style> <field-style> <value-style> <style id="tunClickableRed" /> </value-style> </field-style> </appearance> <directories livesearch="true" limit-livesearch="no-restrictions" relation="arm-admin-livesearch-empl-group" digest="digestSOLiveSearch"> <show-select-value> <descriptor-ref ref="arm-admin-livesearch-empl-group"/> </show-select-value> <directory-ref ref="arm-admin-dialog-empl" /> <directory-ref ref="arm-admin-dialog-group" /> </directories> </field> </component> </section> </component> </section> |
В итоге ожидается, что на вкладке системные группы появится раздел "Новый модуль" на вкладку "Системные группы"
Действия по добавлению нового Модуля в карточку Сотрудник и РВЗ:
Добавить новый модуль
<?xml version='1.0' encoding='UTF-8'?> <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema"> <enum name="SystemGroupModuleTypesEnum"> <meta> <category name="РМ Администратора"/> </meta> <string value="InternalDocs" name="InternalDocs"/> <string value="InputDocs" name="InputDocs"/> <string value="OutputDocs" name="OutputDocs"/> <string value="Missions" name="Missions"/> <string value="ContractsLite" name="ContractsLite"/> <string value="Requests" name="Requests"/> <string value="{Module}" name="{Module}"/> </enum> </schemas> |
Добавить дополнительные свойства:
<string name="recalcCounterFormula_{Module}" createlog="true" temporal="true"> <recalc-processing-class>ru.intertrust.cmj.rest.admin.so.employee.counter.RecalcSetDefaultCounterFormulaAnyDP</recalc-processing-class> </string> <schema-ref name="{module}DepRvz" ref="AdminSOUnit" array="true" createlog="true" temporal="true"/> <boolean name="{module}IsNotEmpty" createlog="true" temporal="true"> <calc-values> <script event="open" lang="SPEL"><![CDATA[({module}DepRvz != null && {module}DepRvz.size() != 0) || ( #this.tuning().getValues().get("asForTheUser")!=null && #this.tuning().getValues().get("asForTheUser").getValues().get("intDefMpUnit")!=null && #this.tuning().getValues().get("asForTheUser").getValues().get("intDefMpUnit").getValues().get("id")!=null )]]></script> </calc-values> </boolean> |
Добавить дополнительные свойства:
<boolean name="{module}CanChange" createlog="true"> <storage-field name="Change{Module}Place"/> <storage-string value="1"/> </boolean> <string name="{module}CounterJS" createlog="true"> <storage-field name="JS_Num_{Module}"/> </string> <enum-ref name="{module}DefMp" ref="DefMP" createlog="true" temporal="true"> <storage-field name="{module}DefMp"/> </enum-ref> <schema-ref name="{module}DefMpUnit" ref="AdminSOUnit" null-empty="true" createlog="true" temporal="true"/> <string name="{module}" temporal="true" createlog="true"> <calc-values> <script lang="SPEL" event="open"><![CDATA["{Модуль}"]]></script> </calc-values> </string> <schema-ref name="{module}DepRvz" ref="AdminSOUnit" array="true" temporal="true" createlog="true"/> |
Создать условие применения для выбора МР из СО в override/tuning/so/condition/condition.pal.xml
<condition name="SOEmployee_RegPlaceSelectType_FromSO_{module}"> <schema-ref ref="SOEmployee" condition-union="AND"> <string-ref value="Choose_from_ CO" ref="asForTheUser.{module}DefMp"/> </schema-ref> </condition> |
Добавить справочник Места регистрации в override/tuning/so/directory/directory.pal.xml
<directories> <custom-collection name="${ui.directories.custom-collection.arm-admin-so-regplaces-{module}.name:Места регистрации}" id="arm-admin-so-regplaces-{module}"> <relation>regplacesunits.collection.{module}</relation> <relation-create>regplacesunits.collection.{module}</relation-create> </custom-collection> </directories> |
Добавить справочник Копируемых параметров в другие модули override/tuning/so/directory/directory.pal.xml
<list name="${ui.directories.list.modulesForSystemGroupCopy_from{module}.name:АРМАдмин. СО. Модули для копирования сист. групп из {Модуль}}" id="modulesForSystemGroupCopy_from{Module}"> <value alias="InternalDocs" name="Внутренние документы"/> <value alias="InputDocs" name="Входящие документы"/> <value alias="OutputDocs" name="Исходящие документы"/> <value alias="Missions" name="ОРД"/> <value alias="ContractsLite" name="Договоры"/> </list> <list name="${ui.directories.list.modulesForSystemGroupCopy_fromMissions.name:АРМАдмин. СО. Модули для копирования сист. групп из ОРД}" id="modulesForSystemGroupCopy_fromMissions"> <value alias="InternalDocs" name="Внутренние документы"/> <value alias="InputDocs" name="Входящие документы"/> <value alias="OutputDocs" name="Исходящие документы"/> <value alias="ContractsLite" name="Договоры"/> <value alias="{Module}" name="{Модуль}"/> </list> <list name="${ui.directories.list.modulesForSystemGroupCopy_fromInput.name:АРМАдмин. СО. Модули для копирования сист. групп из ВхД}" id="modulesForSystemGroupCopy_fromInput"> <!-- Список модулей, кроме текущего --> <value alias="{Module}" name="{Модуль}"/> </list> <list name="${ui.directories.list.modulesForSystemGroupCopy_fromInternal.name:АРМАдмин. СО. Модули для копирования сист. групп из ВнД}" id="modulesForSystemGroupCopy_fromInternal"> <!-- Список модулей, кроме текущего --> <value alias="{Module}" name="{Модуль}"/> </list> <list name="${ui.directories.list.modulesForSystemGroupCopy_fromOutput.name:АРМАдмин. СО. Модули для копирования сист. групп из ИсхД}" id="modulesForSystemGroupCopy_fromOutput"> <!-- Список модулей, кроме текущего --> <value alias="{Module}" name="{Модуль}"/> </list> <list name="${ui.directories.list.modulesForSystemGroupCopy_fromContract.name:АРМАдмин. СО. Модули для копирования сист. групп из Договоры}" id="modulesForSystemGroupCopy_fromContract"> <!-- Список модулей, кроме текущего --> <value alias="{Module}" name="{Модуль}"/> </list> |
Добавить условие отображение модулей при копировании в override/tuning/so/condition/condition.pal.xml
<condition name="DialogQuestionSetPostMain_SystemGroupsCopy_from{Module}Form"> <schema-ref ref="DialogQuestionSetPostMain" condition-union="AND"> <string-ref value="SystemGroupsCopyFrom_{Module}" ref="dialogId"/> </schema-ref> </condition> |
Доработать диалог DialogQuestionSetPostMainForm при копировании в override/tuning/so/form/DialogQuestionSetPostMainForm.pal.xml и схему DialogQuestionSetPostMain при копировании в override/tuning/so/form/DialogQuestionSetPostMain.pal.xml
Добавить новую секцию c новым модулем
<section id="=======ROW_{Module}======" group="true"> <component> <field attribute-ref="asForTheUser.{module}"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <negative-condition-ref ref="read"/> </hide> </properties> <appearance importance="high"> <label-style> <style id="tunBgSky"/> <style id="tunBold"/> </label-style> <field-style> <value-style> <style id="tunBgSky"/> <style id="tunBold"/> </value-style> </field-style> </appearance> </field> <section id="settings" group="true"> <appearance field-layout="horizontal"/> <component> <field attribute-ref="asForTheUser.{module}"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <negative-condition-ref ref="edit"/> </hide> </properties> <appearance align="left" importance="high"> <label-style> <style id="tunBgSky"/> <style id="tunBold"/> </label-style> <field-style> <value-style> <style id="tunBgSky"/> <style id="tunBold"/> </value-style> </field-style> </appearance> </field> <button name="${ui.form.SOEmployeeForm.section.SystemGroups.{module}.button.Copy.name:Копировать в}" alias="{Module}"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="edit"/> </hide> </properties> <appearance align="left"> <label-style> <style id="tunBlue"/> <style id="tunUnderline"/> <style id="tunClickableRed"/> </label-style> </appearance> <action> <custom> <operation> <handler> <script lang="JavaBean">OperationSystemGroupCopy</script> </handler> </operation> </custom> </action> </button> </component> </section> <field clickable="true" attribute-ref="{module}DepRvz" name="${ui.form.SOEmployeeForm.section.SystemGroups.field.{module}DepRvz.name:Подразделение:}"> <appearance open-mode="dialog" align="left" clickable="true"> <field-style separator="newline"/> </appearance> <hint-in-field>${ui.form.SOEmployeeForm.section.SystemGroups.field.{module}DepRvz.hintInField:Выберите места регистрации} </hint-in-field> <directories livesearch="true" limit-livesearch="no-restrictions" relation="arm-admin-livesearch-dep-rvz" digest="digestSOLiveSearch"> <show-select-value> <descriptor-ref ref="arm-admin-livesearch-dep-empl-fr-group"/> </show-select-value> <directory-ref ref="arm-admin-ierarchy-rvz"/> <directory-ref ref="arm-admin-dialog-dep-rvz"/> </directories> </field> <field attribute-ref="asForTheUser.{module}CanChange" name="${ui.form.SOEmployeeForm.section.SystemGroups.field.asForTheUser.{module}CanChange.name:Можно менять МР}"/> <section id="{module}_MR_default" name="${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}_MR_default.name:МР по умолчанию}" group="true"> <appearance field-layout="horizontal"/> <component> <field attribute-ref="asForTheUser.{module}DefMp" name="${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}_MR_default.field.asForTheUser.{module}DefMp.name:МР по умолчанию:}"> <appearance open-mode="dialog" align="left"> <label-style label-width="30" label-unit="symbol"/> </appearance> <hint-in-field>${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}_MR_default.field.asForTheUser.{module}DefMp.hintInField:Место регистрации по умолчанию} </hint-in-field> <directories limit-livesearch="no-restrictions"> <directory-ref ref="regPlaceByDefault"/> </directories> </field> <field clickable="true" attribute-ref="asForTheUser.{module}DefMpUnit"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="SOEmployee_RegPlaceSelectType_FromSO_{Module}"/> </hide> </properties> <appearance open-mode="dialog" align="left" clickable="true"/> <hint-in-field>${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}_MR_default.field.asForTheUser.{module}DefMpUnit.hintInField:Укажите место регистрации по умолчанию} </hint-in-field> <directories livesearch="true" limit-livesearch="no-restrictions" relation="arm-admin-livesearch-dep-rvz" digest="digestSOLiveSearch"> <show-select-value> <descriptor-ref ref="arm-admin-livesearch-dep-empl-fr-group"/> </show-select-value> <directory-ref ref="arm-admin-so-regplaces-{module}"/> <directory-ref ref="arm-admin-ierarchy-rvz"/> <directory-ref ref="arm-admin-dialog-dep-rvz"/> </directories> </field> </component> </section> <section id="{module}_counter" name="${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}_counter.name:поиск счетчика}" group="true"> <appearance field-layout="horizontal"/> <component> <field attribute-ref="asForTheUser.{module}CounterJS" name="${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}CounterJS.name:Способ поиска счетчика:}"> <hint-in-field>${ui.form.SOEmployeeForm.section.SystemGroups.section.{module}CounterJS.hintInField:Способ поиска счетчика} </hint-in-field> <directories manual-input="true" limit-livesearch="no-restrictions"> <directory-ref ref="so-counter-search-any"/> </directories> </field> <button recalc="true" attribute-ref="recalcCounterFormula_{Module}" name="${ui.form.SOEmployeeForm.section.SystemGroups.section.recalcCounterFormula_{Module}.name:По умолчанию}"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="edit"/> </hide> </properties> <appearance> <label-style> <style id="tunBlue"/> <style id="tunUnderline"/> <style id="tunClickableRed"/> </label-style> </appearance> </button> </component> </section> </component> </section> |
<section id="label{Module}_read" group="true" name="${ui.form.SOEmployeeRVZForm.SystemGroups.AsForTheUser.label{Module}.name:{Модуль}}"> <appearance field-layout="horizontal"/> <component> <section group="true" id="label{Module}_read_1"> <appearance field-layout="vertical"/> <component> <field attribute-ref="asForTheUser.{module}"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> </properties> <appearance align="left"/> </field> </component> </section> <section group="true" id="label{Module}_read_2"> <appearance field-layout="vertical"/> <component> <field attribute-ref="{module}DepRvz" clickable="true"> <appearance clickable="true" align="left" open-mode="dialog"> <field-style separator="newline"/> </appearance> <hint-in-field>${ui.form.SOEmployeeRVZForm.SystemGroups.{Module}DepRvz.hintInField:Выберите места регистрации} </hint-in-field> <directories digest="digestSOLiveSearch" relation="arm-admin-livesearch-dep-rvz" limit-livesearch="no-restrictions" livesearch="true"> <directory-ref ref="arm-admin-ierarchy-rvz"/> <directory-ref ref="arm-admin-dialog-dep-rvz"/> </directories> </field> </component> </section> <section group="true" id="label{Module}_read_3"> <appearance field-layout="vertical"/> <component> <field attribute-ref="asForTheUser.{module}CounterJS"> <hint-in-field>${ui.form.SOEmployeeRVZForm.SystemGroups.{Module}CounterJS.hintInField:Способ поиска счетчика} </hint-in-field> <directories limit-livesearch="no-restrictions" manual-input="true"> <directory-ref ref="so-counter-search-any"/> </directories> </field> </component> </section> <section group="true" id="label{Module}_read_4"> <appearance field-layout="horizontal"/> <component> <field attribute-ref="asForTheUser.empty"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <condition>true</condition> </hide> </properties> <appearance importance="normal"/> </field> <button recalc="true" attribute-ref="recalcCounterFormula_{Module}" name="${ui.form.SOEmployeeRVZForm.SystemGroups.recalcCounterFormula_{Module}.name:По умолчанию}"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="edit"/> </hide> </properties> <appearance> <label-style> <style id="tunBlue"/> <style id="tunUnderline"/> <style id="tunClickableRed"/> </label-style> </appearance> </button> </component> </section> </component> </section> <section id="label{Module}_edit" group="true" name="${ui.form.SOEmployeeRVZForm.SystemGroups.AsForTheUser.{Module}.name:{Модуль}}"> <appearance field-layout="horizontal"/> <component> <section group="true" id="label{Module}_edit_1"> <component> <field attribute-ref="asForTheUser.empty"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <negative-condition-ref ref="read"/> </hide> </properties> <appearance importance="normal"/> </field> <button alias="{Module}" name="${ui.form.SOEmployeeRVZForm.SystemGroups.section.{Module}.button.CopyIn.name:Копировать в}"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="edit"/> </hide> </properties> <appearance align="left"> <label-style> <style id="tunBlue"/> <style id="tunUnderline"/> <style id="tunClickableRed"/> </label-style> </appearance> <action> <custom> <operation> <handler> <script lang="JavaBean">OperationSystemGroupCopy</script> </handler> </operation> </custom> </action> </button> </component> </section> <section group="true" id="label{Module}_edit_2"> <component> <field attribute-ref="asForTheUser.{module}DefMp"> <appearance align="center" open-mode="dialog"/> <hint-in-field>${ui.form.SOEmployeeRVZForm.SystemGroups.{Module}DefMp.hintInField:Место регистрации по умолчанию} </hint-in-field> <directories limit-livesearch="no-restrictions"> <directory-ref ref="regPlaceByDefault"/> </directories> </field> </component> </section> <section group="true" id="label{Module}_edit_3"> <component> <field attribute-ref="asForTheUser.empty"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> <hide condition-union="AND"> <condition-ref ref="SOEmployee_RegPlaceSelectType_FromSO_{Module}"/> </hide> </properties> <appearance importance="normal"/> </field> <field attribute-ref="asForTheUser.{module}DefMpUnit" clickable="true"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="SOEmployee_RegPlaceSelectType_FromSO_{Module}"/> </hide> </properties> <appearance clickable="true" open-mode="dialog"/> <hint-in-field>${ui.form.SOEmployeeRVZForm.SystemGroups.{Module}DefMpUnit.hintInField:Укажите место регистрации по умолчанию} </hint-in-field> <directories digest="digestSOLiveSearch" relation="arm-admin-livesearch-dep-rvz" limit-livesearch="no-restrictions" livesearch="true"> <directory-ref ref="arm-admin-so-regplaces-{module}"/> <directory-ref ref="arm-admin-ierarchy-rvz"/> <directory-ref ref="arm-admin-dialog-dep-rvz"/> </directories> </field> </component> </section> <section group="true" id="label{Module}_edit_4"> <component> <field attribute-ref="asForTheUser.{module}CanChange" name="${ui.form.SOEmployeeRVZForm.SystemGroups.{Module}CanChange.name:Можно менять МР}"/> </component> </section> </component> </section> |
Учесть подключение модуля в массовых операциях