Создать справочник "Расширенный справочник" в прикладном модуле Внутренние документы.
Справочник состоит из полей:
Расширенный справочник должен находится в разделе "Справочники\Расширенные справочники".
Создать справочник может только пользователь с ролью ClassEditor.
Палитра инструментов
Данный этап разделяется на три части:
Создать схему, в качестве наследника указать схему TNObject.
Добавить в схему свойства, которые должны быть в справочнике.
<?xml version='1.0' encoding='UTF-8'?> <schemas xmlns="http://www.intertrust.ru/schema/palette/tn-schema"> <schema extends="TNObject" name="ExtendsDirectory"> <meta> <documentation>Пример расширенного справочника</documentation> </meta> <string name="type" default-value="Расширенный справочник" computed="true"/> <string name="showIdent" computed="true" temporal="true"> <calc-values> <script lang="SPEL" event="open"><![CDATA['Справочник']]></script> </calc-values> </string> <string name="value"> <meta> <documentation>Значение</documentation> </meta> <storage-field name="value"/> </string> <string name="description"> <meta> <documentation>Описание</documentation> </meta> <storage-field name="description"/> </string> </schema> </schemas> |
Создать форму ExtendsDirectoryForm на основании схемы ExtendsDirectory.
На форме создать три основные секции: Header (Шапка), RootMenu (Акции), Attributes (Реквизитная часть).
В Header подключить свойства схемы: type и showIdent
В Attributes подключить свойства схемы: value и description
В RootMenu создать штатный набор действий:
<?xml version='1.0' encoding='UTF-8'?> <ui xmlns="http://www.intertrust.ru/schema/palette/tn-ui"> <form id="ExtendsDirectoryForm" schema-ref="ExtendsDirectory" showtabs="true" projection="default"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="edit" /> <negative-condition-ref ref="read" /> </hide> </properties> <component> <section id="Header"> <component> <field attribute-ref="showIdent"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> </properties> <appearance importance="normal" align="left"> <label-style unit="symbol" width="4" /> <alt-appearancies> <alt-appearance> <appearance-ref ref="css_headerElementWithIcon" /> <enable condition-union="AND"> <condition>true</condition> </enable> </alt-appearance> </alt-appearancies> </appearance> </field> <section group="true" id="Header_Top"> <component> <field attribute-ref="type"> <properties> <read-only condition-union="AND"> <condition>true</condition> </read-only> </properties> <appearance importance="normal"> <label-style> <style id="tunFontSize14"/> <style id="tunBold" /> </label-style> </appearance> </field> </component> <appearance field-layout="horizontal" /> </section> </component> </section> <section id="RootMenu"> <component> <button name="${button.hideSystem.Save:Скрыть системную кнопку Сохранить}"> <properties> <hide condition-union="AND"> <condition-ref ref="openAtDirectory" /> <condition>true</condition> </hide> </properties> <action> <system name="SAVE" /> </action> </button> <button name="${button.Create:Создать справочник}"> <icon code="90" /> <properties> <hide condition-union="AND"> <negative-condition-ref ref="read"/> </hide> </properties> <action> <custom> <create schema-ref="ExtendsDirectory"> <module-current>true</module-current> </create> </custom> </action> </button> <button name="${button.SaveNew:Сохранить}"> <icon code="92" /> <properties> <hide condition-union="AND"> <negative-condition-ref ref="TNObjectIsShowSaveButtonForNew" /> </hide> </properties> <action> <custom> <save /> </custom> </action> </button> <button name="${button.Save:Сохранить}"> <icon code="92" /> <properties> <hide condition-union="AND"> <negative-condition-ref ref="TNObjectIsShowSaveButton" /> </hide> </properties> <action> <custom> <save-existing /> </custom> </action> </button> <button name="${button.Edit:Редактировать}"> <properties> <hide condition-union="AND"> <condition-ref ref="isClassEditor" /> <condition>true</condition> </hide> </properties> <action> <system name="EDIT" /> </action> </button> <button name="${button.Delete:Удалить}"> <properties> <hide condition-union="AND"> <negative-condition-ref ref="classifierCanDelete"/> </hide> </properties> <icon code="94"/> <action position="12"> <custom> <operation> <handler-ref ref="DeleteClassifier"/> </operation> </custom> </action> </button> </component> </section> <section name="${tab.Attributes:Реквизиты}" id="Attributes"> <component> <field attribute-ref="value" name="${field.Value:Значение:}"> <properties> <requre condition-union="AND"> <negative-condition-ref ref="edit" /> <condition>true</condition> </requre> </properties> <appearance importance="normal"> <limit max-lenght="512" /> </appearance> </field> <field attribute-ref="description" name="${field.Description:Описание:}"> <properties> <requre condition-union="AND"> <negative-condition-ref ref="edit" /> <condition>true</condition> </requre> </properties> <appearance importance="normal"> <limit max-lenght="512" /> </appearance> </field> </component> </section> </component> </form> </ui> |
В документе указать:
<?xml version='1.0' encoding='UTF-8'?> <catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> <tunable-object form-name="TunableObjectClassifier" name="${ExtendsDirectory:Расширенный справочник}" schema-ref="ExtendsDirectory"> <module ident="InternalDocs"/> </tunable-object> </catalog> |