You've already forked 1c-additional-data-processor-template
mirror of
https://github.com/ilko-os/1c-additional-data-processor-template.git
synced 2026-04-25 01:01:35 +02:00
first commit
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>ШаблонДополнительнойОбработки</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>com._1c.g5.v8.dt.core.V8ExternalObjectsNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,2 @@
|
||||
com._1c.g5.v8.dt.platform.services.core.PREF_AUTO_EXT_OBJECT_DUMP_GENERATION=true
|
||||
eclipse.preferences.version=1
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
topObjects=true
|
||||
@@ -0,0 +1,3 @@
|
||||
addModuleStrictTypesAnnotation=false
|
||||
createModuleStructure=false
|
||||
eclipse.preferences.version=1
|
||||
@@ -0,0 +1,3 @@
|
||||
commonChecks=true
|
||||
eclipse.preferences.version=1
|
||||
standardChecks=true
|
||||
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.5.1
|
||||
Base-Project: БСПШаблонДополнительнойОбработки
|
||||
Binary file not shown.
+606
@@ -0,0 +1,606 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:Table">
|
||||
<name>СписокЭлементов</name>
|
||||
<id>1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СписокЭлементов</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СписокЭлементовЗначение</name>
|
||||
<id>14</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СписокЭлементов.Value</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовЗначениеРасширеннаяПодсказка</name>
|
||||
<id>16</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокЭлементовЗначениеКонтекстноеМеню</name>
|
||||
<id>15</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>EnterOnInput</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<handlers>
|
||||
<event>StartChoice</event>
|
||||
<name>СписокЭлементовЗначениеНачалоВыбора</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>ChoiceProcessing</event>
|
||||
<name>СписокЭлементовЗначениеОбработкаВыбора</name>
|
||||
</handlers>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<choiceButton>true</choiceButton>
|
||||
<clearButton>false</clearButton>
|
||||
<choiceFoldersAndItems>FoldersAndItems</choiceFoldersAndItems>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>СписокЭлементовКоманднаяПанель</name>
|
||||
<id>3</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовДобавить</name>
|
||||
<id>17</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовДобавитьРасширеннаяПодсказка</name>
|
||||
<id>18</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.Add</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>PictureAndText</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовПодбор</name>
|
||||
<id>19</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовПодборРасширеннаяПодсказка</name>
|
||||
<id>20</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.Pickup</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовСкопировать</name>
|
||||
<id>27</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовСкопироватьРасширеннаяПодсказка</name>
|
||||
<id>28</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.Copy</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Picture</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовУдалить</name>
|
||||
<id>21</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовУдалитьРасширеннаяПодсказка</name>
|
||||
<id>22</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.Delete</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Picture</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовПереместитьВверх</name>
|
||||
<id>23</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовПереместитьВверхРасширеннаяПодсказка</name>
|
||||
<id>24</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.MoveUp</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовПереместитьВниз</name>
|
||||
<id>25</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовПереместитьВнизРасширеннаяПодсказка</name>
|
||||
<id>26</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.СписокЭлементов.StandardCommand.MoveDown</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЭлементовКомандаОчистить</name>
|
||||
<id>41</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовКомандаОчиститьРасширеннаяПодсказка</name>
|
||||
<id>42</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.КомандаОчистить</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<searchStringAddition>
|
||||
<name>СписокЭлементовСтрокаПоиска</name>
|
||||
<id>5</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовСтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>7</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокЭлементовСтрокаПоискаКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>СписокЭлементов</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchStringAddition>
|
||||
<viewStatusAddition>
|
||||
<name>СписокЭлементовСостояниеПросмотра</name>
|
||||
<id>8</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовСостояниеПросмотраРасширеннаяПодсказка</name>
|
||||
<id>10</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокЭлементовСостояниеПросмотраКонтекстноеМеню</name>
|
||||
<id>9</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>ViewStatusAddition</type>
|
||||
<source>СписокЭлементов</source>
|
||||
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</viewStatusAddition>
|
||||
<searchControlAddition>
|
||||
<name>СписокЭлементовУправлениеПоиском</name>
|
||||
<id>11</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовУправлениеПоискомРасширеннаяПодсказка</name>
|
||||
<id>13</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокЭлементовУправлениеПоискомКонтекстноеМеню</name>
|
||||
<id>12</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>СписокЭлементов</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchControlAddition>
|
||||
<extendedTooltip>
|
||||
<name>СписокЭлементовРасширеннаяПодсказка</name>
|
||||
<id>4</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокЭлементовКонтекстноеМеню</name>
|
||||
<id>2</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<changeRowSet>true</changeRowSet>
|
||||
<changeRowOrder>true</changeRowOrder>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<autoMaxRowsCount>true</autoMaxRowsCount>
|
||||
<selectionMode>MultiRow</selectionMode>
|
||||
<rowSelectionMode>Auto</rowSelectionMode>
|
||||
<headerHeight>1</headerHeight>
|
||||
<footerHeight>1</footerHeight>
|
||||
<horizontalScrollBar>AutoUse</horizontalScrollBar>
|
||||
<verticalScrollBar>AutoUse</verticalScrollBar>
|
||||
<horizontalLines>true</horizontalLines>
|
||||
<verticalLines>true</verticalLines>
|
||||
<searchOnInput>Auto</searchOnInput>
|
||||
<initialListView>Auto</initialListView>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<rowPictureDataPath xsi:type="form:DataPath">
|
||||
<segments>СписокЭлементов.Picture</segments>
|
||||
</rowPictureDataPath>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманднаяПанельНижняя</name>
|
||||
<id>33</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КнопкаОК</name>
|
||||
<id>39</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>КнопкаОКРасширеннаяПодсказка</name>
|
||||
<id>40</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.КомандаОК</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КомандаОтмена</name>
|
||||
<id>37</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отмена</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>КомандаОтменаРасширеннаяПодсказка</name>
|
||||
<id>38</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Close</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа командная панель нижняя</value>
|
||||
</title>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Группа командная панель нижняя</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКоманднаяПанельНижняяРасширеннаяПодсказка</name>
|
||||
<id>34</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<excludedCommands>Abort</excludedCommands>
|
||||
<excludedCommands>Cancel</excludedCommands>
|
||||
<excludedCommands>CustomizeForm</excludedCommands>
|
||||
<excludedCommands>Help</excludedCommands>
|
||||
<excludedCommands>Ignore</excludedCommands>
|
||||
<excludedCommands>No</excludedCommands>
|
||||
<excludedCommands>OK</excludedCommands>
|
||||
<excludedCommands>RestoreValues</excludedCommands>
|
||||
<excludedCommands>Retry</excludedCommands>
|
||||
<excludedCommands>SaveValues</excludedCommands>
|
||||
<excludedCommands>Yes</excludedCommands>
|
||||
<width>50</width>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Auto</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>ExternalDataProcessor.ШаблонДополнительнойОбработки</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СписокЭлементов</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список элементов</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>ValueList</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<extInfo xsi:type="form:ValueListExtInfo">
|
||||
<itemValueType/>
|
||||
</extInfo>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТипКонтейнера</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Тип контейнера</value>
|
||||
</title>
|
||||
<id>5</id>
|
||||
<valueType>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПутьМетаданных</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Путь метаданных</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>КомандаОК</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команда ОК</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Команда ОК</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>КомандаОК</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>КомандаОчистить</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Очистить</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Команда очистить</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>КомандаОчистить</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ObjectFormExtInfo"/>
|
||||
</form:Form>
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
// КопироватьДанныеФормы(Параметры.Объект, Объект);
|
||||
|
||||
|
||||
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
|
||||
МетаданныеОбработки = ОбработкаОбъект.Метаданные();
|
||||
|
||||
// Получаем ссылку на обработку/отчет по имени.
|
||||
ИмяОбработки = МетаданныеОбработки.Имя;
|
||||
ПутьМетаданных = "ВнешняяОбработка." + ИмяОбработки;
|
||||
|
||||
|
||||
|
||||
ПереданныйСписокЭлементов = РеквизитФормыВЗначение("Объект").Контейнер_ВосстановитьЗначение(Параметры.Значение);
|
||||
ТипКонтейнера = Параметры.ТипКонтейнера;
|
||||
|
||||
Если ТипКонтейнера = 2 Тогда
|
||||
Заголовок = Параметры.Заголовок + " (массив)";
|
||||
СписокЭлементов.ЗагрузитьЗначения(ПереданныйСписокЭлементов);
|
||||
Иначе
|
||||
Заголовок = Параметры.Заголовок + " (список значений)";
|
||||
СписокЭлементов = ПереданныйСписокЭлементов;
|
||||
КонецЕсли;
|
||||
|
||||
СписокЭлементов.ТипЗначения = Параметры.ТипЗначения;
|
||||
|
||||
маТипыБезПодбора = Новый Массив;
|
||||
маТипыБезПодбора.Добавить(Тип("Число"));
|
||||
маТипыБезПодбора.Добавить(Тип("Строка"));
|
||||
маТипыБезПодбора.Добавить(Тип("Дата"));
|
||||
маТипыБезПодбора.Добавить(Тип("Неопределено"));
|
||||
маТипыБезПодбора.Добавить(Тип("Тип"));
|
||||
маТипыБезПодбора.Добавить(Тип("ВидДвиженияНакопления"));
|
||||
маТипыБезПодбора.Добавить(Тип("ВидДвиженияБухгалтерии"));
|
||||
маТипыБезПодбора.Добавить(Тип("ВидСчета"));
|
||||
маТипыБезПодбора.Добавить(Тип("УникальныйИдентификатор"));
|
||||
маТипыБезПодбора.Добавить(Тип("NULL"));
|
||||
ТипыБезПодбора = Новый ОписаниеТипов(маТипыБезПодбора);
|
||||
|
||||
маТипы = Параметры.ТипЗначения.Типы();
|
||||
Элементы.СписокЭлементовПодбор.Видимость = Истина;
|
||||
Для Каждого Тип Из маТипы Цикл
|
||||
Если ТипыБезПодбора.СодержитТип(Тип) Тогда
|
||||
Элементы.СписокЭлементовПодбор.Видимость = Ложь;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолноеИмяФормы(ИмяФормы)
|
||||
Возврат СтрШаблон("%1.Форма.%2", Объект.ПутьМетаданных, ИмяФормы);
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьВозвращаемоеЗначение()
|
||||
|
||||
Если ТипКонтейнера = 2 Тогда
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(СписокЭлементов.ВыгрузитьЗначения());
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(СписокЭлементов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаОК(Команда)
|
||||
|
||||
ВозвращаемоеЗначение = Новый Структура("Значение", ПолучитьВозвращаемоеЗначение());
|
||||
|
||||
Закрыть(ВозвращаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаОчистить(Команда)
|
||||
СписокЭлементов.Очистить();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура РедактироватьЗначение()
|
||||
|
||||
Значение = Элементы.СписокЭлементов.ТекущиеДанные.Значение;
|
||||
Если ТипЗнч(Значение) = Тип("Тип") Тогда
|
||||
|
||||
ПараметрыОповещения = Новый Структура("Строка", Элементы.СписокЭлементов.ТекущаяСтрока);
|
||||
//@skip-warning
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы = Новый ОписаниеОповещения("ОкончаниеРедактированияТипа", ЭтаФорма, ПараметрыОповещения);
|
||||
|
||||
Если ТипЗнч(Значение) <> Тип("Тип") Тогда
|
||||
Значение = Тип("Неопределено");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОткрытия = Новый Структура("Объект, ТипЗначения", Объект, Значение);
|
||||
ОткрытьФорму(ПолноеИмяФормы("РедактированиеТипа"), ПараметрыОткрытия, ЭтаФорма, Истина, , , ОписаниеОповещенияОЗакрытииОткрываемойФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
|
||||
ИначеЕсли ТипЗнч(Значение) = Тип("УникальныйИдентификатор") Тогда
|
||||
|
||||
ПараметрыОповещения = Новый Структура("Строка", Элементы.СписокЭлементов.ТекущаяСтрока);
|
||||
//@skip-warning
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы = Новый ОписаниеОповещения("ОкончаниеРедактированияТипа", ЭтаФорма, ПараметрыОповещения);
|
||||
|
||||
ПараметрыОткрытия = Новый Структура("Объект, Значение", Объект, Значение);
|
||||
ОткрытьФорму(ПолноеИмяФормы("РедактированиеУникальногоИдентификатора"), ПараметрыОткрытия, ЭтаФорма, Истина, , , ОписаниеОповещенияОЗакрытииОткрываемойФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокЭлементовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
Значение = Элементы.СписокЭлементов.ТекущиеДанные.Значение;
|
||||
|
||||
ТипРедактируемогоЗначения = ТипЗнч(Значение);
|
||||
|
||||
Если ТипРедактируемогоЗначения = Тип("Тип") ИЛИ ТипРедактируемогоЗначения = Тип("УникальныйИдентификатор") Тогда
|
||||
РедактироватьЗначение();
|
||||
СтандартнаяОбработка = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокЭлементовЗначениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
|
||||
|
||||
Если ВыбранноеЗначение = Тип("Тип") Тогда
|
||||
СписокЭлементов.НайтиПоИдентификатору(Элементы.СписокЭлементов.ТекущаяСтрока).Значение = Тип("Неопределено");
|
||||
РедактироватьЗначение();
|
||||
ИначеЕсли ВыбранноеЗначение = Тип("УникальныйИдентификатор") Тогда
|
||||
СписокЭлементов.НайтиПоИдентификатору(Элементы.СписокЭлементов.ТекущаяСтрока).Значение = Новый УникальныйИдентификатор;
|
||||
РедактироватьЗначение();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОкончаниеРедактированияТипа(Результат, ПараметрыОповещения) Экспорт
|
||||
Перем Значение;
|
||||
|
||||
Если Результат <> Неопределено Тогда
|
||||
|
||||
Если Результат.Свойство("Значение", Значение) Тогда
|
||||
|
||||
СписокЭлементов.НайтиПоИдентификатору(ПараметрыОповещения.Строка).Значение = Значение;
|
||||
|
||||
Иначе
|
||||
|
||||
СписокЭлементов.НайтиПоИдентификатору(ПараметрыОповещения.Строка).Значение = Тип(Результат.ОписаниеКонтейнера.ИмяТипа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+545
@@ -0,0 +1,545 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:Table">
|
||||
<name>ТаблицаЗначений</name>
|
||||
<id>1</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТаблицаЗначений</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<autoCommandBar>
|
||||
<name>ТаблицаЗначенийКоманднаяПанель</name>
|
||||
<id>3</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаКнопкаДобавить</name>
|
||||
<id>31</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаКнопкаДобавитьРасширеннаяПодсказка</name>
|
||||
<id>32</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.ТаблицаЗначений.StandardCommand.Add</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>PictureAndText</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаКнопкаСкопировать</name>
|
||||
<id>33</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаКнопкаСкопироватьРасширеннаяПодсказка</name>
|
||||
<id>34</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.ТаблицаЗначений.StandardCommand.Copy</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Picture</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаКнопкаУдалить</name>
|
||||
<id>29</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаКнопкаУдалитьРасширеннаяПодсказка</name>
|
||||
<id>30</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.ТаблицаЗначений.StandardCommand.Delete</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Picture</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаКнопкаПереместитьВниз</name>
|
||||
<id>25</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаКнопкаПереместитьВнизРасширеннаяПодсказка</name>
|
||||
<id>26</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.ТаблицаЗначений.StandardCommand.MoveDown</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаКнопкаПереместитьВверх</name>
|
||||
<id>27</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаКнопкаПереместитьВверхРасширеннаяПодсказка</name>
|
||||
<id>28</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.ТаблицаЗначений.StandardCommand.MoveUp</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаЗначенийКомандаОчистить</name>
|
||||
<id>35</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаЗначенийКомандаОчиститьРасширеннаяПодсказка</name>
|
||||
<id>36</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.КомандаОчистить</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<searchStringAddition>
|
||||
<name>ТаблицаЗначенийСтрокаПоиска</name>
|
||||
<id>5</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаЗначенийСтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>7</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаЗначенийСтрокаПоискаКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>ТаблицаЗначений</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchStringAddition>
|
||||
<viewStatusAddition>
|
||||
<name>ТаблицаЗначенийСостояниеПросмотра</name>
|
||||
<id>8</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаЗначенийСостояниеПросмотраРасширеннаяПодсказка</name>
|
||||
<id>10</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаЗначенийСостояниеПросмотраКонтекстноеМеню</name>
|
||||
<id>9</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>ViewStatusAddition</type>
|
||||
<source>ТаблицаЗначений</source>
|
||||
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</viewStatusAddition>
|
||||
<searchControlAddition>
|
||||
<name>ТаблицаЗначенийУправлениеПоиском</name>
|
||||
<id>11</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаЗначенийУправлениеПоискомРасширеннаяПодсказка</name>
|
||||
<id>13</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаЗначенийУправлениеПоискомКонтекстноеМеню</name>
|
||||
<id>12</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>ТаблицаЗначений</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchControlAddition>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаЗначенийРасширеннаяПодсказка</name>
|
||||
<id>4</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаЗначенийКонтекстноеМеню</name>
|
||||
<id>2</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<changeRowSet>true</changeRowSet>
|
||||
<changeRowOrder>true</changeRowOrder>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<autoMaxRowsCount>true</autoMaxRowsCount>
|
||||
<selectionMode>MultiRow</selectionMode>
|
||||
<rowSelectionMode>Auto</rowSelectionMode>
|
||||
<header>true</header>
|
||||
<headerHeight>1</headerHeight>
|
||||
<footerHeight>1</footerHeight>
|
||||
<horizontalScrollBar>AutoUse</horizontalScrollBar>
|
||||
<verticalScrollBar>AutoUse</verticalScrollBar>
|
||||
<horizontalLines>true</horizontalLines>
|
||||
<verticalLines>true</verticalLines>
|
||||
<autoInsertNewRow>true</autoInsertNewRow>
|
||||
<searchOnInput>Auto</searchOnInput>
|
||||
<initialListView>Auto</initialListView>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
<rowFilter xsi:type="core:UndefinedValue"/>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманднаяПанельНижняя</name>
|
||||
<id>19</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КнопкаОК</name>
|
||||
<id>21</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>КнопкаОКРасширеннаяПодсказка</name>
|
||||
<id>22</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.КомандаОК</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КомандаОтмена</name>
|
||||
<id>23</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отмена</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>КомандаОтменаРасширеннаяПодсказка</name>
|
||||
<id>24</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Close</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>PictureAndText</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа командная панель нижняя</value>
|
||||
</title>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Группа командная панель нижняя</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКоманднаяПанельНижняяРасширеннаяПодсказка</name>
|
||||
<id>20</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<width>64</width>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Auto</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>ExternalDataProcessor.ШаблонДополнительнойОбработки</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТаблицаЗначений</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица значений</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>ValueTable</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТаблицаЗначенийСоответствиеКолонок</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица значений соответствие колонок</value>
|
||||
</title>
|
||||
<id>5</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТаблицаЗначенийКолонкиКонтейнера</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица значений колонки контейнера</value>
|
||||
</title>
|
||||
<id>6</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СуффиксРеквизитаКонтейнера</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Суффикс реквизита контейнера</value>
|
||||
</title>
|
||||
<id>8</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПутьМетаданных</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Путь метаданных</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>КомандаОК</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команда ОК</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Команда ОК</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>КомандаОК</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>КомандаОчистить</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Очистить</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Команда очистить</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>КомандаОчистить</name>
|
||||
</handler>
|
||||
</action>
|
||||
<modifiesStoredData>true</modifiesStoredData>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:ObjectFormExtInfo"/>
|
||||
</form:Form>
|
||||
+402
@@ -0,0 +1,402 @@
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
|
||||
МетаданныеОбработки = ОбработкаОбъект.Метаданные();
|
||||
|
||||
ИмяОбработки = МетаданныеОбработки.Имя;
|
||||
ПутьМетаданных = "ВнешняяОбработка." + ИмяОбработки;
|
||||
|
||||
Заголовок = Параметры.Заголовок + " (таблица значений)";
|
||||
|
||||
Если Параметры.Значение = Неопределено Тогда
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Иначе
|
||||
Таблица = РеквизитФормыВЗначение("Объект").СтрокаВЗначение(Параметры.Значение.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
СоздатьРеквизитыТаблицыПоКолонкам(ЭтаФорма, "ТаблицаЗначений", "ТаблицаЗначенийСоответствиеКолонок",
|
||||
"ТаблицаЗначенийКолонкиКонтейнера", Таблица.Колонки, Истина);
|
||||
|
||||
ТаблицаВРеквизитыФормы(Таблица, ТаблицаЗначений, ТаблицаЗначенийКолонкиКонтейнера);
|
||||
|
||||
фТолькоПросмотр = Ложь;
|
||||
Если Параметры.Свойство("ТолькоПросмотр", фТолькоПросмотр) И фТолькоПросмотр = Истина Тогда
|
||||
Элементы.ТаблицаЗначений.ТолькоПросмотр = Истина;
|
||||
Элементы.КнопкаОК.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
СуффиксРеквизитаКонтейнера = РеквизитФормыВЗначение("Объект").СуффиксРеквизитаКонтейнера();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьВозвращаемуюТаблицу()
|
||||
|
||||
тзВозвращаемаяТаблица = ТаблицаИзРеквизитовФормы(ТаблицаЗначений, ТаблицаЗначенийКолонкиКонтейнера);
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(тзВозвращаемаяТаблица);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ИнициализироватьКонтейнерыСтрокиПоТипам(чСтрока, ТаблицаЗначенийКолонкиКонтейнера)
|
||||
ТаблицаИнициализироватьКонтейнерыСтрокиПоТипам(ТаблицаЗначений.НайтиПоИдентификатору(чСтрока),
|
||||
ТаблицаЗначенийКолонкиКонтейнера);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолноеИмяФормы(ИмяФормы)
|
||||
Возврат СтрШаблон("%1.Форма.%2", ПутьМетаданных, ИмяФормы);
|
||||
КонецФункции
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура ПолеТаблицыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
Перем Контейнер;
|
||||
|
||||
ИмяКолонки = ТаблицаЗначенийСоответствиеКолонок[Элемент.Имя];
|
||||
ИмяКолонкиКонтейнера = ИмяКолонки + СуффиксРеквизитаКонтейнера;
|
||||
|
||||
Если ТаблицаЗначенийКолонкиКонтейнера.Свойство(ИмяКолонки) Тогда
|
||||
|
||||
СтрокаТаблицы = ТаблицаЗначений.НайтиПоИдентификатору(Элементы.ТаблицаЗначений.ТекущаяСтрока);
|
||||
Контейнер = СтрокаТаблицы[ИмяКолонкиКонтейнера];
|
||||
|
||||
Если Не ЗначениеЗаполнено(Контейнер) Тогда
|
||||
ИнициализироватьКонтейнерыСтрокиПоТипам(Элементы.ТаблицаЗначений.ТекущаяСтрока,
|
||||
ТаблицаЗначенийКолонкиКонтейнера);
|
||||
Контейнер = СтрокаТаблицы[ИмяКолонкиКонтейнера];
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Контейнер.Тип) Тогда
|
||||
|
||||
Если Контейнер.Тип = "Тип" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ПараметрыОповещения = Новый Структура("Таблица, Строка, Поле", "ТаблицаЗначений",
|
||||
Элементы.ТаблицаЗначений.ТекущаяСтрока, ИмяКолонки);
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы = Новый ОписаниеОповещения("ОкончаниеРедактированияСтроки",
|
||||
ЭтотОбъект, ПараметрыОповещения);
|
||||
ПараметрыОткрытия = Новый Структура("Объект, ТипЗначения", Объект, Контейнер);
|
||||
ОткрытьФорму(ПолноеИмяФормы("РедактированиеТипа"), ПараметрыОткрытия, ЭтотОбъект, Истина, , ,
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
ИначеЕсли Контейнер.Тип = "МоментВремени" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ПараметрыОповещения = Новый Структура("Таблица, Строка, Поле", "ТаблицаЗначений",
|
||||
Элементы.ТаблицаЗначений.ТекущаяСтрока, ИмяКолонки);
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы = Новый ОписаниеОповещения("ОкончаниеРедактированияСтроки",
|
||||
ЭтотОбъект, ПараметрыОповещения);
|
||||
ПараметрыОткрытия = Новый Структура("Объект, Значение", Объект, Контейнер);
|
||||
ОткрытьФорму(ПолноеИмяФормы("РедактированиеГраницыМомента"), ПараметрыОткрытия, ЭтотОбъект, Ложь, , ,
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОкончаниеРедактированияСтроки(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если РезультатЗакрытия <> Неопределено Тогда
|
||||
|
||||
чИдентификаторСтроки = ДополнительныеПараметры.Строка;
|
||||
Значение = Неопределено;
|
||||
Если РезультатЗакрытия.Свойство("Значение", Значение) Тогда
|
||||
ТаблицаЗначений[чИдентификаторСтроки][ДополнительныеПараметры.Поле + СуффиксРеквизитаКонтейнера] = Значение;
|
||||
ТаблицаЗначений[чИдентификаторСтроки][ДополнительныеПараметры.Поле] = Значение.Представление;
|
||||
Иначе
|
||||
ТаблицаЗначений[чИдентификаторСтроки][ДополнительныеПараметры.Поле
|
||||
+ СуффиксРеквизитаКонтейнера] = РезультатЗакрытия.ОписаниеКонтейнера;
|
||||
ТаблицаЗначений[чИдентификаторСтроки][ДополнительныеПараметры.Поле] = РезультатЗакрытия.ОписаниеКонтейнера.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаОчистить(Команда)
|
||||
ТаблицаЗначений.Очистить();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаОК(Команда)
|
||||
ВозвращаемоеЗначение = Новый Структура("Значение", ПолучитьВозвращаемуюТаблицу());
|
||||
Закрыть(ВозвращаемоеЗначение);
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
|
||||
#Область ИнтерфейсСТаблицейЗначений
|
||||
|
||||
//Описание типов внутри содержит больше, чем это можно увидеть средствами языка.
|
||||
//Например, там есть какая-то информация, которая прилетает туда из "определяемых типов" полей в запросе.
|
||||
//Это приводит к некорректному поведению. Колонка не воспринимала отрицательные числа, хотя в типе точно стаяло в квалификаторах числа знак "Любой".
|
||||
//Эта функция пересоздает описание типов, что бы там внутри не было ничего лишнего.
|
||||
Функция НормализоватьТип(НекоеОписаниеТипов)
|
||||
|
||||
Типы = НекоеОписаниеТипов.Типы();
|
||||
НовоеОписаниеТипов = Новый ОписаниеТипов(Типы, НекоеОписаниеТипов.КвалификаторыЧисла,
|
||||
НекоеОписаниеТипов.КвалификаторыСтроки, НекоеОписаниеТипов.КвалификаторыДаты);
|
||||
|
||||
Возврат НовоеОписаниеТипов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СоздатьРеквизитыТаблицыПоКолонкам(Форма, ИмяРеквизитаТаблицыФормы, ИмяРеквизитаСоответствияКолонок,
|
||||
ИмяРеквизитаКолонкиКонтейнера, Колонки, фДляРедактирования = Ложь, стМакроколонки = Неопределено) Экспорт
|
||||
|
||||
маНеотображаемыеТипы = РеквизитФормыВЗначение("Объект").ПолучитьНеотображаемыеНаКлиентеТипы();
|
||||
|
||||
ИмяРеквизитаТаблицыФормыИтоги = ИмяРеквизитаТаблицыФормы + "Итоги";
|
||||
ЕстьИтоги = Ложь;
|
||||
Для Каждого Реквизит Из Форма.ПолучитьРеквизиты() Цикл
|
||||
Если Реквизит.Имя = ИмяРеквизитаТаблицыФормыИтоги Тогда
|
||||
ЕстьИтоги = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
маУдаляемыеРеквизиты = Новый Массив;
|
||||
|
||||
Если ТипЗнч(Форма[ИмяРеквизитаТаблицыФормы]) = Тип("ДанныеФормыКоллекция") Тогда
|
||||
Форма[ИмяРеквизитаТаблицыФормы].Очистить();
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Реквизит Из Форма.ПолучитьРеквизиты(ИмяРеквизитаТаблицыФормы) Цикл
|
||||
маУдаляемыеРеквизиты.Добавить(Реквизит.Путь + "." + Реквизит.Имя);
|
||||
КонецЦикла;
|
||||
|
||||
Если ЕстьИтоги Тогда
|
||||
Форма[ИмяРеквизитаТаблицыФормыИтоги].Очистить();
|
||||
Для Каждого Реквизит Из Форма.ПолучитьРеквизиты(ИмяРеквизитаТаблицыФормыИтоги) Цикл
|
||||
маУдаляемыеРеквизиты.Добавить(Реквизит.Путь + "." + Реквизит.Имя);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
стКолонкиКонтейнера = Новый Структура;
|
||||
маДобавляемыеРеквизиты = Новый Массив;
|
||||
Если Колонки <> Неопределено Тогда
|
||||
|
||||
Для Каждого Колонка Из Колонки Цикл
|
||||
|
||||
стМакроколонка = Неопределено;
|
||||
Если стМакроколонки <> Неопределено И стМакроколонки.Свойство(Колонка.Имя, стМакроколонка) Тогда
|
||||
ТипКолонки = стМакроколонка.ТипЗначения;
|
||||
Иначе
|
||||
ТипКолонки = Колонка.ТипЗначения;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьНеотображаемыеТипы = Ложь;
|
||||
Для Каждого НеотображаемыйТип Из маНеотображаемыеТипы Цикл
|
||||
Если ТипКолонки.СодержитТип(НеотображаемыйТип) Тогда
|
||||
ЕстьНеотображаемыеТипы = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЕстьНеотображаемыеТипы Тогда
|
||||
|
||||
ИмяКолонкиКонтейнера = Колонка.Имя + РеквизитФормыВЗначение("Объект").СуффиксРеквизитаКонтейнера();
|
||||
Реквизит = Новый РеквизитФормы(ИмяКолонкиКонтейнера, Новый ОписаниеТипов, ИмяРеквизитаТаблицыФормы,
|
||||
ИмяКолонкиКонтейнера);
|
||||
маДобавляемыеРеквизиты.Добавить(Реквизит);
|
||||
стКолонкиКонтейнера.Вставить(Колонка.Имя, ТипКолонки);
|
||||
|
||||
ТипКолонкиТаблицы = Новый ОписаниеТипов(ТипКолонки, "Строка", маНеотображаемыеТипы);
|
||||
|
||||
Иначе
|
||||
ТипКолонкиТаблицы = НормализоватьТип(ТипКолонки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипКолонкиТаблицы.СодержитТип(Тип("Число")) Тогда
|
||||
ТипКолонкиИтогов = Новый ОписаниеТипов("Число", ТипКолонкиТаблицы.КвалификаторыЧисла);
|
||||
Иначе
|
||||
ТипКолонкиИтогов = Новый ОписаниеТипов("Null");
|
||||
КонецЕсли;
|
||||
|
||||
Реквизит = Новый РеквизитФормы(Колонка.Имя, ТипКолонкиТаблицы, ИмяРеквизитаТаблицыФормы, Колонка.Имя);
|
||||
маДобавляемыеРеквизиты.Добавить(Реквизит);
|
||||
|
||||
Если ЕстьИтоги Тогда
|
||||
Реквизит = Новый РеквизитФормы(Колонка.Имя, ТипКолонкиИтогов, ИмяРеквизитаТаблицыФормыИтоги,
|
||||
Колонка.Имя);
|
||||
маДобавляемыеРеквизиты.Добавить(Реквизит);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Форма.ИзменитьРеквизиты(маДобавляемыеРеквизиты, маУдаляемыеРеквизиты);
|
||||
|
||||
Если ЕстьИтоги Тогда
|
||||
Форма[ИмяРеквизитаТаблицыФормыИтоги].Добавить();
|
||||
КонецЕсли;
|
||||
|
||||
Пока Форма.Элементы[ИмяРеквизитаТаблицыФормы].ПодчиненныеЭлементы.Количество() > 0 Цикл
|
||||
Форма.Элементы.Удалить(Форма.Элементы[ИмяРеквизитаТаблицыФормы].ПодчиненныеЭлементы[0]);
|
||||
КонецЦикла;
|
||||
|
||||
стКолонкиРезультата = Новый Структура;
|
||||
Если Колонки <> Неопределено Тогда
|
||||
|
||||
Для Каждого Колонка Из Колонки Цикл
|
||||
|
||||
ИмяКолонки = ИмяРеквизитаТаблицыФормы + Колонка.Имя;
|
||||
стКолонкиРезультата.Вставить(ИмяКолонки, Колонка.Имя);
|
||||
КолонкаТаблицы = Форма.Элементы.Добавить(ИмяКолонки, Тип("ПолеФормы"),
|
||||
Форма.Элементы[ИмяРеквизитаТаблицыФормы]);
|
||||
КолонкаТаблицы.ПутьКДанным = ИмяРеквизитаТаблицыФормы + "." + Колонка.Имя;
|
||||
|
||||
Если ЕстьИтоги Тогда
|
||||
КолонкаТаблицы.ПутьКДаннымПодвала = ИмяРеквизитаТаблицыФормыИтоги + "[0]." + Колонка.Имя;
|
||||
КонецЕсли;
|
||||
|
||||
Если фДляРедактирования Тогда
|
||||
|
||||
КолонкаТаблицы.Вид = ВидПоляФормы.ПолеВвода;
|
||||
КолонкаТаблицы.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
|
||||
КолонкаТаблицы.КнопкаОчистки = Истина;
|
||||
|
||||
Если стКолонкиКонтейнера.Свойство(Колонка.Имя) Тогда
|
||||
КолонкаТаблицы.КнопкаВыбора = Истина;
|
||||
КолонкаТаблицы.РедактированиеТекста = Ложь;
|
||||
КолонкаТаблицы.УстановитьДействие("НачалоВыбора", "ПолеТаблицыНачалоВыбора");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Форма[ИмяРеквизитаСоответствияКолонок] = стКолонкиРезультата;
|
||||
Форма[ИмяРеквизитаКолонкиКонтейнера] = стКолонкиКонтейнера;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ТаблицаИнициализироватьКонтейнерыСтрокиПоТипам(СтрокаТаблицы, ТаблицаЗначенийКолонкиКонтейнера) Экспорт
|
||||
|
||||
Для Каждого кз Из ТаблицаЗначенийКолонкиКонтейнера Цикл
|
||||
|
||||
ИмяКолонки = кз.Ключ;
|
||||
ТипЗначения = кз.Значение;
|
||||
маТипыЗначения = ТипЗначения.Типы();
|
||||
|
||||
Контейнер = Неопределено;
|
||||
Если маТипыЗначения.Количество() = 1 Тогда
|
||||
|
||||
Если ТипЗначения.СодержитТип(Тип("Тип")) Тогда
|
||||
Контейнер = РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(Тип("Неопределено"));
|
||||
ИначеЕсли ТипЗначения.СодержитТип(Тип("МоментВремени")) Тогда
|
||||
Контейнер = РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(
|
||||
Новый МоментВремени('00010101', Неопределено));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Контейнер) Тогда
|
||||
Контейнер = ПустойКонтейнер();
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаТаблицы[ИмяКолонки + РеквизитФормыВЗначение("Объект").СуффиксРеквизитаКонтейнера()] = Контейнер;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПустойКонтейнер()
|
||||
Возврат Новый Структура("Тип, Представление", , "???");
|
||||
КонецФункции
|
||||
|
||||
//Контейнеры в таблице должны быть всегда.
|
||||
//Если контейнер не нужен, и значение храниться в основном поле - добавляем пустой контейнер.
|
||||
Процедура ДобавитьКонтейнеры(СтрокаТаблицыЗначенийРеквизита, СтрокаИсточник, КолонкиКонтейнера) Экспорт
|
||||
|
||||
Для Каждого кз Из КолонкиКонтейнера Цикл
|
||||
|
||||
ИмяКолонки = кз.Ключ;
|
||||
ИмяКолонкиКонтейнера = ИмяКолонки + РеквизитФормыВЗначение("Объект").СуффиксРеквизитаКонтейнера();
|
||||
|
||||
Если ТипЗнч(СтрокаИсточник[ИмяКолонки]) = Тип("РезультатЗапроса") Тогда
|
||||
Контейнер = РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(
|
||||
СтрокаИсточник[кз.Ключ].Выгрузить());
|
||||
Иначе
|
||||
Контейнер = РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(СтрокаИсточник[кз.Ключ]);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Контейнер) <> Тип("Структура") Тогда
|
||||
Контейнер = ПустойКонтейнер();
|
||||
Иначе
|
||||
СтрокаТаблицыЗначенийРеквизита[ИмяКолонки] = Контейнер.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаТаблицыЗначенийРеквизита[ИмяКолонкиКонтейнера] = Контейнер;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТаблицаВРеквизитыФормы(ТаблицаЗначений, ТаблицаЗначенийРеквизит, ТаблицаЗначенийКолонкиКонтейнераРеквизит) Экспорт
|
||||
|
||||
фЕстьКонтейнеры = ТаблицаЗначенийКолонкиКонтейнераРеквизит.Количество() > 0;
|
||||
Если Не фЕстьКонтейнеры Тогда
|
||||
ТаблицаЗначенийРеквизит.Загрузить(ТаблицаЗначений);
|
||||
Иначе
|
||||
|
||||
Для Каждого Строка Из ТаблицаЗначений Цикл
|
||||
СтрокаТаблицыЗначенийРеквизита = ТаблицаЗначенийРеквизит.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаТаблицыЗначенийРеквизита, Строка);
|
||||
Если фЕстьКонтейнеры Тогда
|
||||
ДобавитьКонтейнеры(СтрокаТаблицыЗначенийРеквизита, Строка, ТаблицаЗначенийКолонкиКонтейнераРеквизит);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТаблицаИзРеквизитовФормы(ТаблицаЗначенийРеквизит, ТаблицаЗначенийКолонкиКонтейнераРеквизит) Экспорт
|
||||
|
||||
тзДанные = ТаблицаЗначенийРеквизит.Выгрузить();
|
||||
|
||||
Если ТаблицаЗначенийКолонкиКонтейнераРеквизит.Количество() = 0 Тогда
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(тзДанные);
|
||||
КонецЕсли;
|
||||
|
||||
стИменаКолонокКонтейнеров = Новый Структура;
|
||||
Для Каждого кз Из ТаблицаЗначенийКолонкиКонтейнераРеквизит Цикл
|
||||
стИменаКолонокКонтейнеров.Вставить(кз.Ключ + РеквизитФормыВЗначение("Объект").СуффиксРеквизитаКонтейнера());
|
||||
КонецЦикла;
|
||||
|
||||
тзВозвращаемаяТаблица = Новый ТаблицаЗначений;
|
||||
Для Каждого Колонка Из тзДанные.Колонки Цикл
|
||||
|
||||
Если стИменаКолонокКонтейнеров.Свойство(Колонка.Имя) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТипКолонки = Колонка.ТипЗначения;
|
||||
ТаблицаЗначенийКолонкиКонтейнераРеквизит.Свойство(Колонка.Имя, ТипКолонки);
|
||||
тзВозвращаемаяТаблица.Колонки.Добавить(Колонка.Имя, ТипКолонки);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
чКоличествоСтрок = тзДанные.Количество();
|
||||
Для Каждого СтрокаТаблицыЗначенийРеквизита Из ТаблицаЗначенийРеквизит Цикл
|
||||
Строка = тзВозвращаемаяТаблица.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Строка, СтрокаТаблицыЗначенийРеквизита);
|
||||
Для Каждого кз Из ТаблицаЗначенийКолонкиКонтейнераРеквизит Цикл
|
||||
ИмяКолонки = кз.Ключ;
|
||||
Строка[ИмяКолонки] = РеквизитФормыВЗначение("Объект").Контейнер_ВосстановитьЗначение(
|
||||
СтрокаТаблицыЗначенийРеквизита[ИмяКолонки + РеквизитФормыВЗначение(
|
||||
"Объект").СуффиксРеквизитаКонтейнера()]);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(тзВозвращаемаяТаблица);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ConditionalAppearance xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
|
||||
<item>
|
||||
<selection>
|
||||
<item>
|
||||
<field>СоставТипа</field>
|
||||
</item>
|
||||
</selection>
|
||||
<filter>
|
||||
<item xsi:type="FilterItemComparison">
|
||||
<left xsi:type="dcscor:Field">СоставТипа.ВыбранПодч</left>
|
||||
<comparisonType>Equal</comparisonType>
|
||||
<right xsi:type="xs:boolean">true</right>
|
||||
</item>
|
||||
</filter>
|
||||
<appearance>
|
||||
<dcscor:item xsi:type="SettingsParameterValue">
|
||||
<dcscor:parameter>ЦветФона</dcscor:parameter>
|
||||
<dcscor:value xsi:type="v8ui:Color">win:ScrollBar</dcscor:value>
|
||||
</dcscor:item>
|
||||
</appearance>
|
||||
</item>
|
||||
</ConditionalAppearance>
|
||||
+2066
File diff suppressed because it is too large
Load Diff
+882
@@ -0,0 +1,882 @@
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
|
||||
МетаданныеОбработки = ОбработкаОбъект.Метаданные();
|
||||
|
||||
// Получаем ссылку на обработку/отчет по имени.
|
||||
ИмяОбработки = МетаданныеОбработки.Имя;
|
||||
ПутьМетаданных = "ВнешняяОбработка." + ИмяОбработки;
|
||||
дзДеревоТипов = Неопределено;
|
||||
|
||||
ТипЗначения = Параметры.ТипЗначения;
|
||||
|
||||
Параметры.Свойство("СписокРазрешенных", СписокРазрешенных);
|
||||
|
||||
Если Не Параметры.Свойство("ВПараметр", РежимВПараметр) Тогда
|
||||
РежимВПараметр = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если РежимВПараметр Тогда
|
||||
РежимСтрокой = "В параметр";
|
||||
Элементы.КомандаОК.Заголовок = РежимСтрокой;
|
||||
Иначе
|
||||
РежимСтрокой = "Редактирование типа";
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.Свойство("Имя", ИмяПараметра) Тогда
|
||||
Заголовок = СтрШаблон("%1 (%2)", ИмяПараметра, НРег(РежимСтрокой));
|
||||
Иначе
|
||||
Заголовок = РежимСтрокой;
|
||||
ИмяПараметра = "ТаблицаЗначений";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ТипЗначения) = Тип("Структура") И ТипЗначения.Тип = "Тип" Тогда
|
||||
|
||||
Попытка
|
||||
маТипы = Новый Массив;
|
||||
маТипы.Добавить(РеквизитФормыВЗначение("Объект").Контейнер_ВосстановитьЗначение(ТипЗначения));
|
||||
ТипЗначения = Новый ОписаниеТипов(маТипы);
|
||||
Исключение
|
||||
ТипЗначения = Новый ОписаниеТипов;
|
||||
КонецПопытки;
|
||||
|
||||
фПростойВид = Истина;
|
||||
фРедактированиеТипа = Истина;
|
||||
Элементы.СоставнойТип.Видимость = Ложь;
|
||||
Элементы.Контейнер.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыДаты.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыЧисла.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыСтроки.Видимость = Ложь;
|
||||
|
||||
ИначеЕсли ТипЗнч(ТипЗначения) = Тип("Тип") Тогда
|
||||
|
||||
маТипы = Новый Массив;
|
||||
маТипы.Добавить(ТипЗначения);
|
||||
ТипЗначения = Новый ОписаниеТипов(маТипы);
|
||||
|
||||
фПростойВид = Истина;
|
||||
фРедактированиеТипа = Истина;
|
||||
Элементы.СоставнойТип.Видимость = Ложь;
|
||||
Элементы.Контейнер.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыДаты.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыЧисла.Видимость = Ложь;
|
||||
Элементы.ГруппаКвалификаторыСтроки.Видимость = Ложь;
|
||||
|
||||
Иначе
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТипЗначения) Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов;
|
||||
КонецЕсли;
|
||||
|
||||
ТипКонтейнера = Неопределено;
|
||||
фПростойВид = Не Параметры.Свойство("ТипКонтейнера", ТипКонтейнера);
|
||||
|
||||
Если фПростойВид Тогда
|
||||
ТипКонтейнера = 0;
|
||||
Элементы.Контейнер.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипКонтейнера = 3 Тогда
|
||||
|
||||
//Режим редактирования структуры таблицы. Таблицу можно передать с данными, они будут сохранены.
|
||||
Таблица = РеквизитФормыВЗначение("Объект").СтрокаВЗначение(ТипЗначения.Значение);
|
||||
|
||||
//Сами данные на клиента не потащим.
|
||||
АдресТаблицы = ПоместитьВоВременноеХранилище(Таблица, УникальныйИдентификатор);
|
||||
|
||||
ЗаполнитьСтруктуруТаблицы(Таблица);
|
||||
ТипЗначения = Новый ОписаниеТипов;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СоставнойТип = ТипЗначения.Типы().Количество() > 1;
|
||||
|
||||
КвалификаторыДатыСостав = ТипЗначения.КвалификаторыДаты.ЧастиДаты;
|
||||
КвалификаторыСтрокиДлина = ТипЗначения.КвалификаторыСтроки.Длина;
|
||||
КвалификаторыСтрокиФиксированная = ТипЗначения.КвалификаторыСтроки.ДопустимаяДлина = ДопустимаяДлина.Фиксированная;
|
||||
КвалификаторыЧислаДлина = ТипЗначения.КвалификаторыЧисла.Разрядность;
|
||||
КвалификаторыЧислаНеОтрицательный = ТипЗначения.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный;
|
||||
КвалификаторыЧислаТочность = ТипЗначения.КвалификаторыЧисла.РазрядностьДробнойЧасти;
|
||||
|
||||
дзДеревоТипов = ПолучитьДеревоТипов(ТипЗначения, СписокРазрешенных);
|
||||
//Если НЕ СоставнойТип И ТипКонтейнера = 0 Тогда
|
||||
// ДобавитьМоментИГраницуВДерево(дзДеревоТипов, ТипЗначения);
|
||||
//КонецЕсли;
|
||||
|
||||
ДеревоТипов = ПоместитьВоВременноеХранилище(дзДеревоТипов, УникальныйИдентификатор);
|
||||
ОбновитьСоставТипаНаСервере();
|
||||
|
||||
УстановитьВидимостьЭлементов();
|
||||
|
||||
ТекущийЭлемент = Элементы.СтрокаПоиска;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДеревоТиповВДанныеФормы(Узел, УзелРеквизита, ТекущаяСтрока = Неопределено, ВыбранПодч = Ложь)
|
||||
|
||||
ЭлементыУзла = УзелРеквизита.ПолучитьЭлементы();
|
||||
|
||||
Для Каждого Строка Из Узел.Строки Цикл
|
||||
|
||||
Если Строка.Строки.Количество() > 0 Тогда
|
||||
|
||||
СтрокаРеквизита = ЭлементыУзла.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаРеквизита, Строка);
|
||||
СтрокаРеквизита.ВыбранПодч = Ложь;
|
||||
ДеревоТиповВДанныеФормы(Строка, СтрокаРеквизита, ТекущаяСтрока, СтрокаРеквизита.ВыбранПодч);
|
||||
|
||||
Если СтрокаРеквизита.ПолучитьЭлементы().Количество() = 0 Тогда
|
||||
ЭлементыУзла.Удалить(СтрокаРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Если Не ЗначениеЗаполнено(СтрокаПоиска) Или Найти(ВРег(Строка.Представление), ВРег(СтрокаПоиска)) > 0
|
||||
//ИЛИ Найти(ВРег(Строка.Имя), ВРег(СтрокаПоиска)) > 0
|
||||
Тогда
|
||||
СтрокаРеквизита = ЭлементыУзла.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаРеквизита, Строка);
|
||||
ВыбранПодч = ВыбранПодч Или Строка.Выбран;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущаяСтрока = Неопределено И СтрокаРеквизита <> Неопределено И Строка.Выбран Тогда
|
||||
ТекущаяСтрока = СтрокаРеквизита.ПолучитьИдентификатор();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбновитьОтметкиДерева(УзелДерева, УзелСоставаТипа)
|
||||
Перем ЭлементыУзла;
|
||||
|
||||
Если УзелСоставаТипа <> Неопределено Тогда
|
||||
ЭлементыУзла = УзелСоставаТипа.ПолучитьЭлементы();
|
||||
КонецЕсли;
|
||||
|
||||
й = 0;
|
||||
Для Каждого СтрокаДерева Из УзелДерева.Строки Цикл
|
||||
|
||||
Если ЭлементыУзла = Неопределено Или ЭлементыУзла.Количество() <= й Тогда
|
||||
Если ФлагСброшеныВсе Тогда
|
||||
СтрокаДерева.Выбран = Ложь;
|
||||
Если СтрокаДерева.Строки.Количество() > 0 Тогда
|
||||
ОбновитьОтметкиДерева(СтрокаДерева, Неопределено);
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
Иначе
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФлагСброшеныВсе Тогда
|
||||
СтрокаДерева.Выбран = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлементыУзла[й].Имя = СтрокаДерева.Имя Тогда
|
||||
|
||||
СтрокаДерева.Выбран = ЭлементыУзла[й].Выбран;
|
||||
|
||||
Если СтрокаДерева.Строки.Количество() > 0 Тогда
|
||||
ОбновитьОтметкиДерева(СтрокаДерева, ЭлементыУзла[й]);
|
||||
КонецЕсли;
|
||||
|
||||
й = й + 1;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ФлагСброшеныВсе = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбновитьСоставТипаНаСервере()
|
||||
|
||||
дзДерево = ПолучитьИзВременногоХранилища(ДеревоТипов);
|
||||
ОбновитьОтметкиДерева(дзДерево, СоставТипа);
|
||||
ПоместитьВоВременноеХранилище(дзДерево, ДеревоТипов);
|
||||
|
||||
ТекущаяСтрока = Неопределено;
|
||||
СоставТипа.ПолучитьЭлементы().Очистить();
|
||||
ДеревоТиповВДанныеФормы(дзДерево, СоставТипа, ТекущаяСтрока);
|
||||
Элементы.СоставТипа.ТекущаяСтрока = ТекущаяСтрока;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьСостояниеДереваТипов()
|
||||
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
|
||||
Для Каждого Элемент Из СоставТипа.ПолучитьЭлементы() Цикл
|
||||
Элементы.СоставТипа.Развернуть(Элемент.ПолучитьИдентификатор(), Истина);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьСоставТипа() Экспорт
|
||||
ОбновитьСоставТипаНаСервере();
|
||||
УстановитьСостояниеДереваТипов();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьПредставлениеКвалификаторовТипа(ТипЗначения)
|
||||
|
||||
маКвалификаторы = Новый Массив;
|
||||
|
||||
Если ТипЗначения.СодержитТип(Тип("Строка")) Тогда
|
||||
ПредставлениеКвалификаторовСтроки = "Длина " + ТипЗначения.КвалификаторыСтроки.Длина;
|
||||
маКвалификаторы.Добавить(Новый Структура("Тип, Квалификаторы", "Строка", ПредставлениеКвалификаторовСтроки));
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗначения.СодержитТип(Тип("Дата")) Тогда
|
||||
ПредставлениеКвалификаторовДаты = ТипЗначения.КвалификаторыДаты.ЧастиДаты;
|
||||
маКвалификаторы.Добавить(Новый Структура("Тип, Квалификаторы", "Дата", ПредставлениеКвалификаторовДаты));
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗначения.СодержитТип(Тип("Число")) Тогда
|
||||
ПредставлениеКвалификаторовЧисла = "Знак " + ТипЗначения.КвалификаторыЧисла.ДопустимыйЗнак + " "
|
||||
+ ТипЗначения.КвалификаторыЧисла.Разрядность + "." + ТипЗначения.КвалификаторыЧисла.РазрядностьДробнойЧасти;
|
||||
маКвалификаторы.Добавить(Новый Структура("Тип, Квалификаторы", "Число", ПредставлениеКвалификаторовЧисла));
|
||||
КонецЕсли;
|
||||
|
||||
ФлагНуженЗаголовок = маКвалификаторы.Количество() > 1;
|
||||
|
||||
ПредставлениеКвалификаторовТипа = "";
|
||||
Для Каждого стКвалификаторы Из маКвалификаторы Цикл
|
||||
ПредставлениеКвалификаторовТипа = ПредставлениеКвалификаторовТипа + ?(ФлагНуженЗаголовок, стКвалификаторы.Тип
|
||||
+ ": ", "") + стКвалификаторы.Квалификаторы + "; ";
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПредставлениеКвалификаторовТипа;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьСтруктуруТаблицы(Таблица)
|
||||
|
||||
Для Каждого Колонка Из Таблица.Колонки Цикл
|
||||
СтрокаСтруктуры = СтруктураТаблицы.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаСтруктуры, Колонка, "Имя, ТипЗначения");
|
||||
СтрокаСтруктуры.ИмяСтарое = Колонка.Имя;
|
||||
СтрокаСтруктуры.Квалификаторы = ПолучитьПредставлениеКвалификаторовТипа(Колонка.ТипЗначения);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьПервыйВыбранный(СоставТипа)
|
||||
|
||||
Для Каждого СтрокаТипа Из СоставТипа.ПолучитьЭлементы() Цикл
|
||||
Если СтрокаТипа.ЭтоГруппа Тогда
|
||||
Результат = ПолучитьПервыйВыбранный(СтрокаТипа);
|
||||
Если Результат <> Неопределено Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Если СтрокаТипа.Выбран Тогда
|
||||
Возврат СтрокаТипа.Имя;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция СобратьТипы(СоставТипа, маТипы = Неопределено)
|
||||
|
||||
Если маТипы = Неопределено Тогда
|
||||
маТипы = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаТипа Из СоставТипа.Строки Цикл
|
||||
Если СтрокаТипа.ЭтоГруппа Тогда
|
||||
маТипы = СобратьТипы(СтрокаТипа, маТипы);
|
||||
Иначе
|
||||
Если СтрокаТипа.Выбран Тогда
|
||||
маТипы.Добавить(Тип(СтрокаТипа.Имя));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат маТипы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьОписаниеТипов()
|
||||
|
||||
дзДерево = ПолучитьИзВременногоХранилища(ДеревоТипов);
|
||||
ОбновитьОтметкиДерева(дзДерево, СоставТипа);
|
||||
маТипы = СобратьТипы(дзДерево);
|
||||
|
||||
КвалификаторыЧисла = Новый КвалификаторыЧисла(КвалификаторыЧислаДлина, КвалификаторыЧислаТочность, ?(
|
||||
КвалификаторыЧислаНеОтрицательный, ДопустимыйЗнак.Неотрицательный, ДопустимыйЗнак.Любой));
|
||||
КвалификаторыСтроки = Новый КвалификаторыСтроки(КвалификаторыСтрокиДлина, ?(КвалификаторыСтрокиФиксированная,
|
||||
ДопустимаяДлина.Фиксированная, ДопустимаяДлина.Переменная));
|
||||
КвалификаторыДаты = Новый КвалификаторыДаты(?(КвалификаторыДатыСостав = "Дата и время", ЧастиДаты.ДатаВремя,
|
||||
ЧастиДаты[КвалификаторыДатыСостав]));
|
||||
|
||||
Возврат Новый ОписаниеТипов(маТипы, КвалификаторыЧисла, КвалификаторыСтроки, КвалификаторыДаты);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьКонтейнерТипа(ОписаниеТипов)
|
||||
|
||||
Обработка = РеквизитФормыВЗначение("Объект");
|
||||
ВозвращаемыйТип = Тип("Неопределено");
|
||||
|
||||
маТипы = ОписаниеТипов.Типы();
|
||||
Если маТипы.Количество() > 0 Тогда
|
||||
ВозвращаемыйТип = маТипы[0];
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(ВозвращаемыйТип);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьТаблицу(ТекстЗапроса = Неопределено)
|
||||
|
||||
Обработка = РеквизитФормыВЗначение("Объект");
|
||||
|
||||
фЕстьИзмененияКолонок = Ложь;
|
||||
стСоответствиеКолонок = Новый Структура;
|
||||
маВыраженияКолонок = Новый Массив;
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Для Каждого СтрокаСтруктуры Из СтруктураТаблицы Цикл
|
||||
|
||||
Колонка = Таблица.Колонки.Добавить(СтрокаСтруктуры.Имя, СтрокаСтруктуры.ТипЗначения);
|
||||
|
||||
маВыраженияКолонок.Добавить(СтрШаблон(" %1.%2 КАК %2", ИмяПараметра, Колонка.Имя));
|
||||
|
||||
Если ЗначениеЗаполнено(СтрокаСтруктуры.ИмяСтарое) Тогда
|
||||
стСоответствиеКолонок.Вставить(СтрокаСтруктуры.Имя, СтрокаСтруктуры.ИмяСтарое);
|
||||
фЕстьИзмененияКолонок = фЕстьИзмененияКолонок Или СтрокаСтруктуры.ИмяСтарое <> СтрокаСтруктуры.Имя;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если стСоответствиеКолонок.Количество() > 0 Тогда
|
||||
|
||||
СтараяТаблица = ПолучитьИзВременногоХранилища(АдресТаблицы);
|
||||
|
||||
Если фЕстьИзмененияКолонок Тогда
|
||||
|
||||
Для Каждого Строка Из СтараяТаблица Цикл
|
||||
СтрокаНовая = Таблица.Добавить();
|
||||
Для Каждого кз Из стСоответствиеКолонок Цикл
|
||||
СтрокаНовая[кз.Ключ] = Строка[кз.Значение];
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
Для Каждого Строка Из СтараяТаблица Цикл
|
||||
ЗаполнитьЗначенияСвойств(Таблица.Добавить(), Строка);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВыраженияКолонок = СтрСоединить(маВыраженияКолонок, ",
|
||||
|");
|
||||
ТекстЗапроса = СтрШаблон("
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| %1
|
||||
|ПОМЕСТИТЬ %2
|
||||
|ИЗ &%2 КАК %2;", ВыраженияКолонок, ИмяПараметра);
|
||||
|
||||
Возврат РеквизитФормыВЗначение("Объект").Контейнер_СохранитьЗначение(Таблица);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПолноеИмяФормы(ИмяФормы)
|
||||
Возврат СтрШаблон("%1.Форма.%2", ПутьМетаданных, ИмяФормы);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаОК(Команда)
|
||||
|
||||
ВозвращаемоеЗначение = Новый Структура("ИмяПараметра, ТипКонтейнера, ОписаниеКонтейнера", ИмяПараметра,
|
||||
ТипКонтейнера, ПолучитьОписаниеТипов());
|
||||
|
||||
Если ТипКонтейнера < 3 Тогда
|
||||
|
||||
Если фРедактированиеТипа Тогда
|
||||
ВозвращаемоеЗначение.ОписаниеКонтейнера = ПолучитьКонтейнерТипа(ВозвращаемоеЗначение.ОписаниеКонтейнера);
|
||||
ИначеЕсли ВозвращаемоеЗначение.ОписаниеКонтейнера.СодержитТип(Тип("Граница"))
|
||||
Или ВозвращаемоеЗначение.ОписаниеКонтейнера.СодержитТип(Тип("МоментВремени")) Тогда
|
||||
ВозвращаемоеЗначение.ТипКонтейнера = 0;
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
ВозвращаемоеЗначение.ОписаниеКонтейнера = ПолучитьТаблицу();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Закрыть(ВозвращаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КомандаВЗапрос(Команда)
|
||||
Перем ТекстЗапроса;
|
||||
|
||||
ВозвращаемоеЗначение = Новый Структура("ИмяПараметра, ТипКонтейнера, ОписаниеКонтейнера, ТекстЗапроса",
|
||||
ИмяПараметра, ТипКонтейнера, ПолучитьОписаниеТипов());
|
||||
ВозвращаемоеЗначение.ОписаниеКонтейнера = ПолучитьТаблицу(ТекстЗапроса);
|
||||
ВозвращаемоеЗначение.ТекстЗапроса = ТекстЗапроса;
|
||||
|
||||
Закрыть(ВозвращаемоеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьМоментИГраницуВДерево(дзДерево, ТипЗначенияТекущий = Неопределено)
|
||||
Перем Картинки;
|
||||
|
||||
Если ТипЗначенияТекущий = Неопределено Тогда
|
||||
ТипЗначенияТекущий = Новый ОписаниеТипов;
|
||||
КонецЕсли;
|
||||
|
||||
ДобавитьТип(дзДерево, ТипЗначенияТекущий, "Граница", Картинки, "Граница", 4);
|
||||
ДобавитьТип(дзДерево, ТипЗначенияТекущий, "МоментВремени", Картинки, "Момент времени", 5);
|
||||
|
||||
фМоментГраница = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьМоментИГраницу()
|
||||
|
||||
дзДерево = ПолучитьИзВременногоХранилища(ДеревоТипов);
|
||||
ДобавитьМоментИГраницуВДерево(дзДерево);
|
||||
ПоместитьВоВременноеХранилище(дзДерево, ДеревоТипов);
|
||||
|
||||
ОбновитьСоставТипаНаСервере();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УбратьМоментИГраницуИзДерева(дзДерево)
|
||||
|
||||
Если дзДерево.Строки[4].Имя = "Граница" Тогда
|
||||
дзДерево.Строки.Удалить(дзДерево.Строки[4]);
|
||||
КонецЕсли;
|
||||
|
||||
Если дзДерево.Строки[4].Имя = "МоментВремени" Тогда
|
||||
дзДерево.Строки.Удалить(дзДерево.Строки[4]);
|
||||
КонецЕсли;
|
||||
|
||||
фМоментГраница = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УбратьМоментИГраницу()
|
||||
|
||||
дзДерево = ПолучитьИзВременногоХранилища(ДеревоТипов);
|
||||
ОбновитьОтметкиДерева(дзДерево, СоставТипа);
|
||||
УбратьМоментИГраницуИзДерева(дзДерево);
|
||||
ПоместитьВоВременноеХранилище(дзДерево, ДеревоТипов);
|
||||
|
||||
ТекущаяСтрока = Неопределено;
|
||||
СоставТипа.ПолучитьЭлементы().Очистить();
|
||||
ДеревоТиповВДанныеФормы(дзДерево, СоставТипа, ТекущаяСтрока);
|
||||
Элементы.СоставТипа.ТекущаяСтрока = ТекущаяСтрока;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьВидимостьМоментаИГраницы()
|
||||
|
||||
//Если ТипКонтейнера = 0 И НЕ СоставнойТип И (НЕ фПростойВид ИЛИ фРедактированиеТипа) Тогда
|
||||
// Если НЕ фМоментГраница Тогда
|
||||
// ДобавитьМоментИГраницу();
|
||||
// КонецЕсли;
|
||||
//Иначе
|
||||
// Если фМоментГраница Тогда
|
||||
// УбратьМоментИГраницу();
|
||||
// КонецЕсли;
|
||||
//КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьТип(дзДерево, ТипЗначенияТекущий, стрИмяТипа, Картинки, стрПредставлениеТипа = Неопределено,
|
||||
чИндексВставки = Неопределено)
|
||||
|
||||
//Если Картинки = Неопределено Тогда
|
||||
// Картинки = ПолучитьИзВременногоХранилища(Объект.Картинки);
|
||||
//КонецЕсли;
|
||||
|
||||
Если чИндексВставки = Неопределено Тогда
|
||||
Строка = дзДерево.Строки.Добавить();
|
||||
Иначе
|
||||
Строка = дзДерево.Строки.Вставить(чИндексВставки);
|
||||
КонецЕсли;
|
||||
|
||||
Строка.Имя = стрИмяТипа;
|
||||
Если ТипЗнч(Картинки) = Тип("Картинка") Тогда
|
||||
Строка.Картинка = Картинки;
|
||||
Иначе
|
||||
//Картинка = Неопределено;
|
||||
//Если Найти(стрИмяТипа, ".") = 0 Тогда
|
||||
// Если Картинки.Свойство("Тип_" + стрИмяТипа, Картинка) Тогда
|
||||
// Строка.Картинка = Картинка;
|
||||
// КонецЕсли;
|
||||
//КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если стрПредставлениеТипа = Неопределено Тогда
|
||||
Строка.Представление = стрИмяТипа;
|
||||
Иначе
|
||||
Строка.Представление = стрПредставлениеТипа;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗначенияТекущий.СодержитТип(Тип(стрИмяТипа)) Тогда
|
||||
Строка.Выбран = Истина;
|
||||
Если Строка.Родитель <> Неопределено Тогда
|
||||
Строка.Родитель.ВыбранПодч = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Менеджер, стрПрефиксИмени, КартинкаСсылок)
|
||||
// Перем КартинкаСсылок;
|
||||
|
||||
// Картинки.Свойство("Тип_" + стрПрефиксИмени, КартинкаСсылок);
|
||||
|
||||
// маТипы = Менеджер.ТипВсеСсылки().Типы();
|
||||
|
||||
ВеткаТипов = Типы.Строки.Добавить();
|
||||
ВеткаТипов.Имя = стрПрефиксИмени;
|
||||
ВеткаТипов.Представление = стрПрефиксИмени + " (" + Формат(Менеджер.Количество(), "ЧГ=0") + ")";
|
||||
ВеткаТипов.ЭтоГруппа = Истина;
|
||||
ВеткаТипов.Картинка = КартинкаСсылок;
|
||||
|
||||
Для Каждого тТип Из Менеджер Цикл
|
||||
стрИмяТипа = тТип.Имя;
|
||||
стрТип = стрПрефиксИмени + "." + стрИмяТипа;
|
||||
Ссылка = Новый (Тип(стрТип));
|
||||
|
||||
ДобавитьТип(ВеткаТипов, ТипЗначенияТекущий, стрТип, КартинкаСсылок, стрИмяТипа);
|
||||
//ДобавитьТип(ВеткаТипов, ТипЗначенияТекущий, стрТип, КартинкаСсылок, Строка(тТип));
|
||||
КонецЦикла;
|
||||
|
||||
ВеткаТипов.Строки.Сортировать("Представление");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьДеревоТипов(ТипЗначенияТекущий, СписокРазрешенных)
|
||||
Перем Картинки;
|
||||
|
||||
Типы = Новый ДеревоЗначений;
|
||||
Типы.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
|
||||
Типы.Колонки.Добавить("ВыбранПодч", Новый ОписаниеТипов("Булево"));
|
||||
Типы.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
|
||||
Типы.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка"));
|
||||
Типы.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
|
||||
Типы.Колонки.Добавить("ЭтоГруппа", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
ДобавитьТип(Типы, ТипЗначенияТекущий, "Булево", БиблиотекаКартинок.ТипБулево);
|
||||
ДобавитьТип(Типы, ТипЗначенияТекущий, "Дата", БиблиотекаКартинок.ТипДата);
|
||||
ДобавитьТип(Типы, ТипЗначенияТекущий, "Строка", БиблиотекаКартинок.ТипСтрока);
|
||||
ДобавитьТип(Типы, ТипЗначенияТекущий, "Число", БиблиотекаКартинок.ТипЧисло);
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "Null", Картинки);
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "Неопределено", Картинки);
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "ВидДвиженияНакопления", Картинки, "Вид движения накопления");
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "ВидДвиженияБухгалтерии", Картинки, "Вид движения бухгалтерии");
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "ВидСчета", Картинки, "Вид счета");
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "Тип", Картинки);
|
||||
//ДобавитьТип(Типы, ТипЗначенияТекущий, "УникальныйИдентификатор", БиблиотекаКартинок.ТипИдентификатор, "Уникальный идентификатор");
|
||||
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.Справочники, "СправочникСсылка",
|
||||
БиблиотекаКартинок.Справочник);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.Документы, "ДокументСсылка", БиблиотекаКартинок.Документ);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.Перечисления, "ПеречислениеСсылка",
|
||||
БиблиотекаКартинок.Перечисление);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.ПланыВидовХарактеристик, "ПланВидовХарактеристикСсылка",
|
||||
БиблиотекаКартинок.ПланВидовХарактеристик);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.ПланыСчетов, "ПланСчетовСсылка",
|
||||
БиблиотекаКартинок.ПланСчетов);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.ПланыВидовРасчета, "ПланВидовРасчетаСсылка",
|
||||
БиблиотекаКартинок.ПланВидовРасчета);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.БизнесПроцессы, "БизнесПроцессСсылка",
|
||||
БиблиотекаКартинок.БизнесПроцесс);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.Задачи, "ЗадачаСсылка", БиблиотекаКартинок.Задача);
|
||||
ДобавитьТипыСсылок(Типы, ТипЗначенияТекущий, Метаданные.ПланыОбмена, "ПланОбменаСсылка",
|
||||
БиблиотекаКартинок.ПланОбмена);
|
||||
|
||||
Возврат Типы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоставТипаСброситьВсеКроме(Узел, стрИмяКроме)
|
||||
|
||||
СтрокаКроме = Неопределено;
|
||||
Для Каждого Строка Из Узел.ПолучитьЭлементы() Цикл
|
||||
|
||||
Если Строка.Имя <> стрИмяКроме Тогда
|
||||
Строка.Выбран = Ложь;
|
||||
Строка.ВыбранПодч = Ложь;
|
||||
СоставТипаСброситьВсеКроме(Строка, стрИмяКроме);
|
||||
Иначе
|
||||
СтрокаКроме = Строка;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если СтрокаКроме <> Неопределено И СтрокаКроме.Выбран Тогда
|
||||
Родитель = Строка.ПолучитьРодителя();
|
||||
Если Родитель <> Неопределено Тогда
|
||||
Родитель.ВыбранПодч = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
//Мы сбросили все в урезанном дереве на клиенте. В сеансовых данных остались пометки, они уже не действительны.
|
||||
//Когда будем на сервере, сбросим их перед обновлением отметок. Для этого этот флаг.
|
||||
ФлагСброшеныВсе = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоставТипаВыбранПриИзменении(Элемент)
|
||||
|
||||
Если Не СоставнойТип Тогда
|
||||
СоставТипаСброситьВсеКроме(СоставТипа, Элементы.СоставТипа.ТекущиеДанные.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
Если Элементы.СоставТипа.ТекущиеДанные.Выбран Тогда
|
||||
Родитель = Элементы.СоставТипа.ТекущиеДанные.ПолучитьРодителя();
|
||||
Если Родитель <> Неопределено Тогда
|
||||
Родитель.ВыбранПодч = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьОтображениеКвалификаторов();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция СоставнойТипПриИзмененииНаСервере()
|
||||
|
||||
стрТекущееИмя = Неопределено;
|
||||
|
||||
Если СоставнойТип Тогда
|
||||
УстановитьВидимостьЭлементов();
|
||||
Иначе
|
||||
стрТекущееИмя = ПолучитьПервыйВыбранный(СоставТипа);
|
||||
УстановитьВидимостьЭлементов();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат стрТекущееИмя;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоставнойТипПриИзменении(Элемент)
|
||||
|
||||
стрТекущееИмя = СоставнойТипПриИзмененииНаСервере();
|
||||
|
||||
Если Не СоставнойТип Тогда
|
||||
СоставТипаСброситьВсеКроме(СоставТипа, стрТекущееИмя);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьСостояниеДереваТипов();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьОтображениеКвалификаторов() Экспорт
|
||||
|
||||
Если Не фРедактированиеТипа Тогда
|
||||
|
||||
фВидимостьКвалификаторовЧисла = Элементы.СоставТипа.ТекущиеДанные <> Неопределено
|
||||
И Элементы.СоставТипа.ТекущиеДанные.Выбран И Элементы.СоставТипа.ТекущиеДанные.Имя = "Число";
|
||||
фВидимостьКвалификаторовСтроки = Элементы.СоставТипа.ТекущиеДанные <> Неопределено
|
||||
И Элементы.СоставТипа.ТекущиеДанные.Выбран И Элементы.СоставТипа.ТекущиеДанные.Имя = "Строка";
|
||||
фВидимостьКвалификаторовДаты = Элементы.СоставТипа.ТекущиеДанные <> Неопределено
|
||||
И Элементы.СоставТипа.ТекущиеДанные.Выбран И Элементы.СоставТипа.ТекущиеДанные.Имя = "Дата";
|
||||
|
||||
Элементы.ГруппаКвалификаторыЧисла.Видимость = фВидимостьКвалификаторовЧисла;
|
||||
Элементы.ГруппаКвалификаторыСтроки.Видимость = фВидимостьКвалификаторовСтроки;
|
||||
Элементы.ГруппаКвалификаторыДаты.Видимость = фВидимостьКвалификаторовДаты;
|
||||
|
||||
Если фВидимостьКвалификаторовСтроки Тогда
|
||||
Если КвалификаторыСтрокиДлина = 0 Тогда
|
||||
КвалификаторыСтрокиКомментарий = "(неограниченная)";
|
||||
Элементы.КвалификаторыСтрокиФиксированная.Видимость = Ложь;
|
||||
Иначе
|
||||
КвалификаторыСтрокиКомментарий = "";
|
||||
Элементы.КвалификаторыСтрокиФиксированная.Видимость = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоставТипаПриАктивизацииСтроки(Элемент)
|
||||
ПодключитьОбработчикОжидания("ОбновитьОтображениеКвалификаторов", 0.1, Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КвалификаторыСтрокиДлинаПриИзменении(Элемент)
|
||||
ОбновитьОтображениеКвалификаторов();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьВидимостьЭлементов()
|
||||
|
||||
фТаблица = ТипКонтейнера = 3;
|
||||
Элементы.ГруппаТипЗначения.Видимость = Не фТаблица;
|
||||
Элементы.ГруппаРедактированиеТаблицы.Видимость = фТаблица;
|
||||
Элементы.КомандаВЗапрос.Видимость = фТаблица И ВЗапросРазрешено;
|
||||
|
||||
Если Не фТаблица Тогда
|
||||
УстановитьВидимостьМоментаИГраницы();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КонтейнерПриИзменении(Элемент)
|
||||
УстановитьВидимостьЭлементов();
|
||||
УстановитьСостояниеДереваТипов();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОкончаниеРедактированияТипа(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если РезультатЗакрытия <> Неопределено Тогда
|
||||
|
||||
СтрокаСтруктуры = ДополнительныеПараметры.Таблица.НайтиПоИдентификатору(ДополнительныеПараметры.Строка);
|
||||
СтрокаСтруктуры.ТипЗначения = РезультатЗакрытия.ОписаниеКонтейнера;
|
||||
СтрокаСтруктуры.Квалификаторы = ПолучитьПредставлениеКвалификаторовТипа(РезультатЗакрытия.ОписаниеКонтейнера);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СтруктураТаблицыТипЗначенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
ТипЗначения = Элементы.СтруктураТаблицы.ТекущиеДанные.ТипЗначения;
|
||||
|
||||
ПараметрыОповещения = Новый Структура("Таблица, Строка, Поле", СтруктураТаблицы,
|
||||
Элементы.СтруктураТаблицы.ТекущаяСтрока, "ТипЗначения");
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы = Новый ОписаниеОповещения("ОкончаниеРедактированияТипа", ЭтотОбъект,
|
||||
ПараметрыОповещения);
|
||||
ПараметрыОткрытия = Новый Структура("Объект, ТипЗначения", Объект, ТипЗначения);
|
||||
ОткрытьФорму(ПолноеИмяФормы("РедактированиеТипа"), ПараметрыОткрытия, ЭтаФорма, Истина, , ,
|
||||
ОписаниеОповещенияОЗакрытииОткрываемойФормы, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоставТипаПриИзменении(Элемент)
|
||||
|
||||
Если Элементы.СоставТипа.ТекущиеДанные.ЭтоГруппа Тогда
|
||||
|
||||
Если СоставнойТип Тогда
|
||||
|
||||
ЭлементыГруппы = СоставТипа.НайтиПоИдентификатору(Элементы.СоставТипа.ТекущаяСтрока).ПолучитьЭлементы();
|
||||
фВыбранРодитель = Элементы.СоставТипа.ТекущиеДанные.Выбран;
|
||||
Для Каждого Элемент Из ЭлементыГруппы Цикл
|
||||
Элемент.Выбран = фВыбранРодитель;
|
||||
КонецЦикла;
|
||||
|
||||
Элементы.СоставТипа.ТекущиеДанные.ВыбранПодч = фВыбранРодитель;
|
||||
|
||||
Иначе
|
||||
Элементы.СоставТипа.ТекущиеДанные.Выбран = Ложь;
|
||||
Элементы.СоставТипа.Развернуть(Элементы.СоставТипа.ТекущаяСтрока);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Родитель = СоставТипа.НайтиПоИдентификатору(Элементы.СоставТипа.ТекущаяСтрока).ПолучитьРодителя();
|
||||
Если Родитель <> Неопределено Тогда
|
||||
|
||||
Если Элементы.СоставТипа.ТекущиеДанные.Выбран Тогда
|
||||
Родитель.ВыбранПодч = Истина;
|
||||
Иначе
|
||||
Родитель.ВыбранПодч = Ложь;
|
||||
ЭлементыГруппы = Родитель.ПолучитьЭлементы();
|
||||
Для Каждого Элемент Из ЭлементыГруппы Цикл
|
||||
Если Элемент.Выбран Тогда
|
||||
Родитель.ВыбранПодч = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
|
||||
СтрокаПоиска = Текст;
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ОбновитьСоставТипа();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработатьИзменениеИмениКолонки(НоваяСтрока, ОтменаРедактирования, Отказ)
|
||||
|
||||
стрИмяКолонки = Элементы.СтруктураТаблицы.ТекущиеДанные.Имя;
|
||||
|
||||
фИмяКорректно = Ложь;
|
||||
Попытка
|
||||
//@skip-warning
|
||||
ст = Новый Структура(стрИмяКолонки);
|
||||
фИмяКорректно = ЗначениеЗаполнено(стрИмяКолонки);
|
||||
Исключение
|
||||
КонецПопытки;
|
||||
|
||||
Если Не фИмяКорректно Тогда
|
||||
ПоказатьПредупреждение( ,
|
||||
"Неверное имя колонки! Имя должно состоять из одного слова, начинаться с буквы и не содержать специальных символов кроме ""_"".",
|
||||
, Заголовок);
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
маСтрокиИмени = СтруктураТаблицы.НайтиСтроки(Новый Структура("Имя", стрИмяКолонки));
|
||||
Если маСтрокиИмени.Количество() > 1 Тогда
|
||||
ПоказатьПредупреждение( , "Колонка с таким именем уже есть! Введите другое имя.", , Заголовок);
|
||||
Отказ = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СтруктураТаблицыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
|
||||
ОбработатьИзменениеИмениКолонки(НоваяСтрока, ОтменаРедактирования, Отказ);
|
||||
КонецПроцедуры
|
||||
+3287
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
|
After Width: | Height: | Size: 703 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 703 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 703 B |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 703 B |
+1304
File diff suppressed because it is too large
Load Diff
+1033
File diff suppressed because it is too large
Load Diff
+53
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:ExternalDataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="91506ea2-c522-405a-b069-34f42a571875">
|
||||
<producedTypes>
|
||||
<objectType typeId="e2cd1e29-6038-425b-af8b-a6c8f37523c2" valueTypeId="6e11a9cc-161f-4e75-bf04-fc02cc8bf751"/>
|
||||
</producedTypes>
|
||||
<name>ШаблонДополнительнойОбработки</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Шаблон дополнительной обработки</value>
|
||||
</synonym>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Additional data processor template</value>
|
||||
</synonym>
|
||||
<containedObjects classId="c3831ec8-d8d5-4f93-8a22-f9bfae07327f" objectId="71edb984-525c-4e11-9896-de835c509a7b"/>
|
||||
<defaultForm>ExternalDataProcessor.ШаблонДополнительнойОбработки.Form.ФормаНастроек</defaultForm>
|
||||
<forms uuid="83da5579-9e73-499c-8845-19633426c1de">
|
||||
<name>ФормаНастроек</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма настроек</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="5f4b2f24-10c8-4129-be50-2f682f073c6c">
|
||||
<name>РедактированиеТипа</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Редактирование типа</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="b8437d93-a454-40b4-b8d5-835fb858ff78">
|
||||
<name>ПодборВСписок</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Подбор в список</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="26aabf5f-ad22-4db3-974c-57f389b8a947">
|
||||
<name>РедактированиеТаблицы</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Редактирование таблицы</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:ExternalDataProcessor>
|
||||
Reference in New Issue
Block a user