This commit is contained in:
wakadakawaka 2025-06-02 20:57:43 +05:00
commit d6783569cf
7459 changed files with 2755597 additions and 0 deletions

View File

@ -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.V8ConfigurationNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.26

View File

@ -0,0 +1,975 @@
<?xml version="1.0" encoding="UTF-8"?>
<GraphicalSchema xmlns="http://v8.1c.ru/8.3/xcf/scheme" xmlns:sch="http://v8.1c.ru/8.2/data/graphscheme" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" 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:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BackColor>style:FieldBackColor</BackColor>
<GridEnabled>true</GridEnabled>
<DrawGridMode>Lines</DrawGridMode>
<GridHorizontalStep>20</GridHorizontalStep>
<GridVerticalStep>20</GridVerticalStep>
<PrintParameters>
<TopMargin>10</TopMargin>
<LeftMargin>10</LeftMargin>
<BottomMargin>10</BottomMargin>
<RightMargin>10</RightMargin>
<BlackAndWhite>false</BlackAndWhite>
<FitPageMode>Auto</FitPageMode>
</PrintParameters>
<Items>
<Start id="1" uuid="0e506886-d155-46df-9ace-ce806b7c0b6b">
<Properties>
<Name>Старт</Name>
<Title/>
<ToolTip/>
<TabOrder>1</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>0</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="20" left="380" bottom="60" right="420"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
</Properties>
<Events>
<Event name="BeforeStart"/>
</Events>
</Start>
<ConnectionLine id="2">
<Properties>
<Name>Линия1</Name>
<Title/>
<ToolTip/>
<TabOrder>2</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>1</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="400" y="60"/>
<Point x="400" y="80"/>
<Point x="400" y="80"/>
<Point x="400" y="100"/>
</PivotPoints>
<Connect>
<From>
<Item>Старт</Item>
<PortIndex>4</PortIndex>
</From>
<To>
<Item>Выполнить</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Activity id="3" uuid="fa123bb1-d6d4-46b6-9285-47328d5526b2">
<Properties>
<Name>Выполнить</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выполнить</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>3</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>2</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="100" left="340" bottom="160" right="460"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<TaskDescription>Выполнить</TaskDescription>
<Explanation>Исполнитель</Explanation>
<Group>false</Group>
<AddressingAttributes>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.ДополнительныйОбъектАдресации">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.Исполнитель">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.ОсновнойОбъектАдресации">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.РольИсполнителя">
<Value xsi:nil="true"/>
</AddressingAttribute>
</AddressingAttributes>
</Properties>
<Events>
<Event name="InteractiveActivationProcessing"/>
<Event name="BeforeCreateTasks">ВыполнитьПередСозданиемЗадач</Event>
<Event name="OnCreateTask">ВыполнитьПриСозданииЗадач</Event>
<Event name="OnExecute">ВыполнитьПриВыполнении</Event>
<Event name="CheckExecutionProcessing"/>
<Event name="BeforeExecute"/>
<Event name="BeforeExecuteInteractively"/>
</Events>
</Activity>
<ConnectionLine id="4">
<Properties>
<Name>Линия2</Name>
<Title/>
<ToolTip/>
<TabOrder>4</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>3</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="400" y="160"/>
<Point x="400" y="180"/>
<Point x="400" y="180"/>
<Point x="400" y="200"/>
</PivotPoints>
<Connect>
<From>
<Item>Выполнить</Item>
<PortIndex>4</PortIndex>
</From>
<To>
<Item>НужнаПроверка</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Activity id="5" uuid="74a2cd47-0642-4401-8831-720bd844f736">
<Properties>
<Name>Проверить</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверить</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>5</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>4</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="300" left="340" bottom="360" right="460"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<TaskDescription>Проверить</TaskDescription>
<Explanation>Проверяющий</Explanation>
<Group>false</Group>
<AddressingAttributes>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.ДополнительныйОбъектАдресации">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.Исполнитель">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.ОсновнойОбъектАдресации">
<Value xsi:nil="true"/>
</AddressingAttribute>
<AddressingAttribute ref="Task.ЗадачаИсполнителя.AddressingAttribute.РольИсполнителя">
<Value xsi:nil="true"/>
</AddressingAttribute>
</AddressingAttributes>
</Properties>
<Events>
<Event name="InteractiveActivationProcessing"/>
<Event name="BeforeCreateTasks"/>
<Event name="OnCreateTask">ПроверитьПриСозданииЗадач</Event>
<Event name="OnExecute">ПроверитьПриВыполнении</Event>
<Event name="CheckExecutionProcessing"/>
<Event name="BeforeExecute"/>
<Event name="BeforeExecuteInteractively"/>
</Events>
</Activity>
<ConnectionLine id="6">
<Properties>
<Name>Линия3</Name>
<Title/>
<ToolTip/>
<TabOrder>6</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>5</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="400" y="360"/>
<Point x="400" y="380"/>
<Point x="400" y="380"/>
<Point x="400" y="400"/>
</PivotPoints>
<Connect>
<From>
<Item>Проверить</Item>
<PortIndex>4</PortIndex>
</From>
<To>
<Item>ВернутьИсполнителю</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Condition id="11" uuid="6427007c-b0ff-468b-944b-6b183bb9ba6d">
<Properties>
<Name>ВернутьИсполнителю</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Вернуть исполнителю?</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>8</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>6</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="400" left="340" bottom="460" right="460"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<TruePortIndex>3</TruePortIndex>
<FalsePortIndex>1</FalsePortIndex>
</Properties>
<Events>
<Event name="ConditionCheck">ВернутьИсполнителюПроверкаУсловия</Event>
</Events>
</Condition>
<ConnectionLine id="12">
<Properties>
<Name>Линия4</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Нет</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>9</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>7</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="340" y="430"/>
<Point x="180" y="430"/>
<Point x="180" y="480"/>
<Point x="400" y="480"/>
<Point x="400" y="500"/>
</PivotPoints>
<ManualyMovedSegments>
<Segment index="1">
<Start x="180" y="430"/>
<End x="180" y="480"/>
</Segment>
</ManualyMovedSegments>
<Connect>
<From>
<Item>ВернутьИсполнителю</Item>
<PortIndex>1</PortIndex>
</From>
<To>
<Item>Завершение</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<ConnectionLine id="13">
<Properties>
<Name>Линия5</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Да</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>10</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>8</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="460" y="430"/>
<Point x="500" y="430"/>
<Point x="500" y="80"/>
<Point x="400" y="80"/>
<Point x="400" y="100"/>
</PivotPoints>
<ManualyMovedSegments>
<Segment index="1">
<Start x="500" y="430"/>
<End x="500" y="80"/>
</Segment>
</ManualyMovedSegments>
<Connect>
<From>
<Item>ВернутьИсполнителю</Item>
<PortIndex>3</PortIndex>
</From>
<To>
<Item>Выполнить</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Condition id="20" uuid="ce785ad7-e2f0-4f30-8948-521c6566a695">
<Properties>
<Name>НужнаПроверка</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Нужна проверка?</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>11</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>9</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="200" left="340" bottom="260" right="460"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<TruePortIndex>3</TruePortIndex>
<FalsePortIndex>1</FalsePortIndex>
</Properties>
<Events>
<Event name="ConditionCheck">НужнаПроверкаПроверкаУсловия</Event>
</Events>
</Condition>
<ConnectionLine id="21">
<Properties>
<Name>Линия6</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Нет</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>12</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>10</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="340" y="230"/>
<Point x="180" y="230"/>
<Point x="180" y="480"/>
<Point x="400" y="480"/>
<Point x="400" y="500"/>
</PivotPoints>
<ManualyMovedSegments>
<Segment index="1">
<Start x="180" y="230"/>
<End x="180" y="480"/>
</Segment>
<Segment index="2">
<Start x="180" y="480"/>
<End x="400" y="480"/>
</Segment>
</ManualyMovedSegments>
<Connect>
<From>
<Item>НужнаПроверка</Item>
<PortIndex>1</PortIndex>
</From>
<To>
<Item>Завершение</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<ConnectionLine id="22">
<Properties>
<Name>Линия7</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Да</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>13</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>11</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="460" y="230"/>
<Point x="480" y="230"/>
<Point x="480" y="280"/>
<Point x="400" y="280"/>
<Point x="400" y="300"/>
</PivotPoints>
<ManualyMovedSegments>
<Segment index="1">
<Start x="480" y="230"/>
<End x="480" y="280"/>
</Segment>
</ManualyMovedSegments>
<Connect>
<From>
<Item>НужнаПроверка</Item>
<PortIndex>3</PortIndex>
</From>
<To>
<Item>Проверить</Item>
<PortIndex>2</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Line>
<DecorativeLine>false</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<ConnectionLine id="23">
<Properties>
<Name>ДекоративнаяЛиния1</Name>
<Title/>
<ToolTip/>
<TabOrder>14</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>12</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="160" y="20"/>
<Point x="160" y="640"/>
</PivotPoints>
<Connect>
<From>
<Item/>
<PortIndex>0</PortIndex>
</From>
<To>
<Item/>
<PortIndex>0</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>None</EndArrow>
</Properties>
</ConnectionLine>
<ConnectionLine id="24">
<Properties>
<Name>ДекоративнаяЛиния2</Name>
<Title/>
<ToolTip/>
<TabOrder>15</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>13</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="540" y="20"/>
<Point x="540" y="640"/>
</PivotPoints>
<Connect>
<From>
<Item/>
<PortIndex>0</PortIndex>
</From>
<To>
<Item/>
<PortIndex>0</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>None</EndArrow>
</Properties>
</ConnectionLine>
<Decoration id="25">
<Properties>
<Name>Декорация1</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>постановка задачи</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>16</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>14</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>true</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="100" left="20" bottom="160" right="140"/>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<Shape>Document</Shape>
<FlipMode>0</FlipMode>
<Angle xsi:type="xs:decimal">0</Angle>
</Properties>
</Decoration>
<ConnectionLine id="26">
<Properties>
<Name>ДекоративнаяЛиния3</Name>
<Title/>
<ToolTip/>
<TabOrder>17</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>15</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="140" y="130"/>
<Point x="240" y="130"/>
<Point x="240" y="130"/>
<Point x="340" y="130"/>
</PivotPoints>
<Connect>
<From>
<Item>Декорация1</Item>
<PortIndex>5</PortIndex>
</From>
<To>
<Item>Выполнить</Item>
<PortIndex>1</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Decoration id="27">
<Properties>
<Name>Декорация2</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>результат выполнения (оценка исполнителя):
- выполнено;
- отменено.</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>18</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>16</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>true</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Left</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="80" left="560" bottom="180" right="700"/>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<Shape>Document</Shape>
<FlipMode>0</FlipMode>
<Angle xsi:type="xs:decimal">0</Angle>
</Properties>
</Decoration>
<Decoration id="29">
<Properties>
<Name>Декорация3</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>результат выполнения (оценка исполнителя)</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>20</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>17</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>true</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="280" left="200" bottom="380" right="320"/>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<Shape>Document</Shape>
<FlipMode>0</FlipMode>
<Angle xsi:type="xs:decimal">0</Angle>
</Properties>
</Decoration>
<ConnectionLine id="30">
<Properties>
<Name>ДекоративнаяЛиния5</Name>
<Title/>
<ToolTip/>
<TabOrder>21</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>18</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="320" y="330"/>
<Point x="330" y="330"/>
<Point x="330" y="330"/>
<Point x="340" y="330"/>
</PivotPoints>
<Connect>
<From>
<Item>Декорация3</Item>
<PortIndex>5</PortIndex>
</From>
<To>
<Item>Проверить</Item>
<PortIndex>1</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<ConnectionLine id="34">
<Properties>
<Name>ДекоративнаяЛиния4</Name>
<Title/>
<ToolTip/>
<TabOrder>24</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>19</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="460" y="130"/>
<Point x="510" y="130"/>
<Point x="510" y="130"/>
<Point x="560" y="130"/>
</PivotPoints>
<Connect>
<From>
<Item>Выполнить</Item>
<PortIndex>3</PortIndex>
</From>
<To>
<Item>Декорация2</Item>
<PortIndex>1</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Decoration id="35">
<Properties>
<Name>Декорация5</Name>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>результат выполнения (оценка проверяющего):
- выполнено
- отменено
- возвращено (на доработку исполнителю)</v8:content>
</v8:item>
</Title>
<ToolTip/>
<TabOrder>25</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>20</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>true</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Left</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="260" left="560" bottom="400" right="700"/>
<Picture/>
<PictureSize>AutoSize</PictureSize>
<Shape>Document</Shape>
<FlipMode>0</FlipMode>
<Angle xsi:type="xs:decimal">0</Angle>
</Properties>
</Decoration>
<ConnectionLine id="36">
<Properties>
<Name>ДекоративнаяЛиния7</Name>
<Title/>
<ToolTip/>
<TabOrder>26</TabOrder>
<BackColor>#000000</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>21</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<PivotPoints>
<Point x="460" y="330"/>
<Point x="510" y="330"/>
<Point x="510" y="330"/>
<Point x="560" y="330"/>
</PivotPoints>
<Connect>
<From>
<Item>Проверить</Item>
<PortIndex>3</PortIndex>
</From>
<To>
<Item>Декорация5</Item>
<PortIndex>5</PortIndex>
</To>
</Connect>
<Line width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Dashed</v8ui:style>
</Line>
<DecorativeLine>true</DecorativeLine>
<TextLocation>FirstSegment</TextLocation>
<BeginArrow>None</BeginArrow>
<EndArrow>Filled</EndArrow>
</Properties>
</ConnectionLine>
<Completion id="74" uuid="de38fbf1-a4c1-4f42-ae7f-4760652559e0">
<Properties>
<Name>Завершение</Name>
<Title/>
<ToolTip/>
<TabOrder>41</TabOrder>
<BackColor>auto</BackColor>
<TextColor>style:FormTextColor</TextColor>
<LineColor>style:BorderColor</LineColor>
<GroupNumber>0</GroupNumber>
<ZOrder>22</ZOrder>
<Hyperlink>false</Hyperlink>
<Transparent>false</Transparent>
<Font xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" ref="sys:DefaultGUIFont" kind="WindowsFont"/>
<HorizontalAlign>Center</HorizontalAlign>
<VerticalAlign>Center</VerticalAlign>
<PictureLocation>Left</PictureLocation>
<Location top="500" left="380" bottom="540" right="420"/>
<Border width="1" gap="false">
<v8ui:style xsi:type="sch:ConnectorLineType">Solid</v8ui:style>
</Border>
<Picture/>
<PictureSize>AutoSize</PictureSize>
</Properties>
<Events>
<Event name="OnComplete">ЗавершениеПриЗавершении</Event>
</Events>
</Completion>
</Items>
</GraphicalSchema>

View File

@ -0,0 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначена для выполнения бизнес-процесса <a href="BusinessProcess.Задание.Form.ФормаБизнесПроцесса/Help">Задание</a>.</p>
<p>Открывается из списков <a href="Task.ЗадачаИсполнителя/Help">задач</a>, например, <a href="Task.ЗадачаИсполнителя.Form.МоиЗадачиДляРабочегоСтола/Help">Мои задачи на рабочем столе</a> или <a href="Task.ЗадачаИсполнителя.Form.ФормаСписка/Help">Все задачи</a>.</p>
<h3>Главное</h3>
<ul><li>На вкладке <strong>Главное</strong> размещается <strong>Предмет задания</strong>, указывается <strong>Задача</strong> и расшифровка задачи.</li></ul><h3>История выполнения</h3>
<ul><li>На вкладке <strong>История выполнения</strong> можно просмотреть информацию о работе исполнителя над задачей (заполняется автоматически).
</li>
<li>Если задача выполнена или отменена, такую задачу уже невозможно изменить. Обратите внимание, что поле <strong>История выполнения</strong> заполняется приложением автоматически и защищено от редактирования.</li></ul><h3>Важность</h3>
<ul><li>Принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>.
</li>
<li>Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выберите соответствующее значение этого поля. </li></ul><h3>Дата начала выполнения</h3>
<ul><li>В поле <strong>Дата начала</strong> можно проставить дату и время, когда задание начало выполняться. Для того чтобы это поле было доступно, в разделе <strong>Администрирование - Органайзер</strong> необходимо установить флажок <strong>Дата начала задач</strong>. По данному полю можно будет затем сортировать задачи в списках.</li></ul><h3>Принятие к исполнению</h3>
<ul><li>
<div>Задача, непринятая к исполнению, в списках выделяется жирным шрифтом. Выполните соответствующую команду меню <strong>Еще</strong>, для того чтобы <strong>Принятьк исполнению</strong> задачу. После этого задача исчезает из списков задач других исполнителей, назначенных на ту же роль.</div>
</li>
<li>
<div>С помощью соответствующей команды меню <strong>Еще</strong> можно <strong>Отменить принятие к исполнению</strong>.</div></li></ul><h3>Выполнение задания</h3>
<ul><li>Задачи могут быть без проверки выполнения. В этом случае проверяющим является сам исполнитель.
</li>
<li>В поле <strong>Результат выполнения задания</strong> напишите комментарий о выполнении задания.
</li>
<li>Подтвердите выполнение (нажав кнопку <strong>Выполнено</strong>),
</li>
<li>После этого заполняется дата выполнения, задача закрывается и становится защищенной от редактирования.</li></ul><h3>Невыполнение</h3>
<ul><li>В поле <strong>Результат выполнения задания</strong> напишите причину невыполнения задания.
</li>
<li>Нажмите кнопку <strong>Отменено</strong>, что означает невыполнение задачи.
</li>
<li>После нажатия кнопки заполняется <strong>Дата</strong> отказа от выполнения, задача закрывается и становится защищенной от редактирования.</li></ul><h3>Отправка другому исполнителю</h3>
<ul><li>Задачу можно <strong>Перенаправить</strong> другому исполнителю с помощью соответствующей кнопки.
</li>
<li>Заполните необходимые <a href="Task.ЗадачаИсполнителя.Form.ПеренаправитьЗадачи/Help">поля</a>.</li></ul><h3>Создание подчиненного бизнес-процесса</h3>
<ul><li>
<div>Для того чтобы использовать подчиненные бизнес-процессы, в разделе <strong>Администрирование - Органайзер</strong> необходимо установить соответствующий флажок.</div>
</li>
<li>
<div>Часто бизнес-процессы создаются не сами по себе, а в рамках продолжения задач других бизнес-процессов. Например, директор поручает руководителям подразделений подготовить ежегодный план-отчет. Руководители на основании этой задачи дают поручения своим исполнителям. Исполнители начинают работать, формировать отчеты, отправлять их на согласование и т.д. Таким образом, от первого поручения директора вырастает целая иерархия бизнес-процессов и задач.</div>
</li>
<li>
<div>Для того чтобы запустить один бизнес-процесс на основании другого, в задаче родительского бизнес-процесса выполните команду <strong>Создать на основании</strong>, из списка выберите вид бизнес-процесса, например, <strong>Задание</strong>. Заполните необходимые <a href="BusinessProcess.Задание.Form.ФормаБизнесПроцесса/Help">поля</a>.</div></li></ul><h3>Напоминание</h3>
<ul><li>
<div>Для того чтобы не забыть выполнить задачу, нажмите <img src="CommonPicture.Напоминание"></img><strong>Напомнить</strong>, заполните необходимые <a href="InformationRegister.НапоминанияПользователя.Form.Напоминание/Help">поля</a>. <a name="СтандартныеПодсистемы.НапоминанияПользователя">В указанный момент времени приложение выведет </a><a href="InformationRegister.НапоминанияПользователя.Form.ФормаОповещения/Help">напоминание</a> на экран.</div></li></ul><h3>Изменение задания</h3>
<ul><li>С помощью ссылки <strong>Изменить задание</strong> можно открыть задание и переработать его (при наличии прав доступа). В этом случае задание снова будет направлено исполнителю. </li></ul><h3>Дополнительные сведения о задаче</h3>
<ul><li>
<div>Для просмотра <a href="Task.ЗадачаИсполнителя.Form.Дополнительно/Help">дополнительной информации</a> о задаче выполните команду <strong>Еще</strong> <strong>- Дополнительно</strong>.</div></li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">Работа с бизнес-процессами</a>.</div>
</li>
<li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>

View File

@ -0,0 +1,324 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
// Для существующего - в ПриЧтенииНаСервере.
Если Объект.Ссылка.Пустая() Тогда
ИнициализироватьФорму();
КонецЕсли;
ТекущийПользователь = Пользователи.ТекущийПользователь();
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами");
ПараметрыГиперссылки = МодульРаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
ПараметрыГиперссылки.Владелец = "Объект.БизнесПроцесс";
ПараметрыГиперссылки.Заголовок = НСтр("ru = 'Файлы задания'");
МодульРаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
БизнесПроцессыИЗадачиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтотОбъект);
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ВыполнитьЗадачу = Ложь;
Если Не (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда
Возврат;
КонецЕсли;
Если Не ЗаданиеВыполнено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Укажите причину, по которой задача отклоняется.'"),,
"Объект.РезультатВыполнения",, Отказ);
Возврат;
КонецЕсли;
// Предварительная запись бизнес-процесса для корректной работы обработчика точки маршрута.
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
БизнесПроцессыИЗадачиКлиент.ФормаЗадачиОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "Запись_Задание" Тогда
Если (Источник = Объект.БизнесПроцесс Или (ТипЗнч(Источник) = Тип("Массив") И Источник.Найти(
Объект.БизнесПроцесс) <> Неопределено)) Тогда
Прочитать();
КонецЕсли;
КонецЕсли;
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ИнициализироватьФорму();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СрокНачалаИсполненияПриИзменении(Элемент)
Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда
Объект.ДатаНачала = КонецДня(Объект.ДатаНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаИсполненияПриИзменении(Элемент)
Если Объект.ДатаИсполнения = НачалоДня(Объект.ДатаИсполнения) Тогда
Объект.ДатаИсполнения = КонецДня(Объект.ДатаИсполнения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьИЗакрытьВыполнить()
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПредметНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Предмет);
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания,
СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВыполненоВыполнить(Команда)
ЗаданиеВыполнено = Истина;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Отменено(Команда)
ЗаданиеВыполнено = Ложь;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Дополнительно(Команда)
БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПринятьКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь);
КонецПроцедуры
&НаКлиенте
Процедура ОтменитьПринятиеКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЗадание(Команда)
Если Модифицированность Тогда
Записать();
КонецЕсли;
ПоказатьЗначение(, Объект.БизнесПроцесс);
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ИнициализироватьФорму()
НачальныйПризнакВыполнения = Объект.Выполнена;
ПрочитатьРеквизитыБизнесПроцесса();
УстановитьСостояниеЭлементов();
ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач");
Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения);
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата);
БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, Элементы.ГруппаСостояние,
Элементы.ДатаИсполнения);
Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена;
Элементы.ИзменитьЗадание.Видимость = (Объект.Автор = Пользователи.ТекущийПользователь());
Исполнитель = ?(ЗначениеЗаполнено(Объект.Исполнитель), Объект.Исполнитель, Объект.РольИсполнителя);
Если ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание) Тогда
Элементы.Выполнено.Доступность = Истина;
Элементы.Отклонено.Доступность = Истина;
Иначе
Элементы.Выполнено.Доступность = Ложь;
Элементы.Отклонено.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьРеквизитыБизнесПроцесса()
ЗадачаОбъект = РеквизитФормыВЗначение("Объект");
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено;
ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения;
ЗаданиеСодержание = ЗаданиеОбъект.Содержание;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект)
УстановитьПривилегированныйРежим(Истина);
НачатьТранзакцию();
Попытка
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс);
БизнесПроцессОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка);
БизнесПроцессОбъект.Выполнено = ЗаданиеВыполнено;
БизнесПроцессОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервере
Процедура УстановитьСостояниеЭлементов()
БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,57 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначена для проверки выполнения <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">бизнес-процесса</a> <a href="BusinessProcess.Задание.Form.ФормаБизнесПроцесса/Help">Задание</a>.</p>
<p>Открывается из списков <a href="Task.ЗадачаИсполнителя/Help">задач</a>, например, <a href="Task.ЗадачаИсполнителя.Form.МоиЗадачиДляРабочегоСтола/Help">Мои задачи на рабочем столе</a> или <a href="Task.ЗадачаИсполнителя.Form.ФормаСписка/Help">Все задачи</a>.</p>
<h3>Главное</h3>
<ul><li>На вкладке <strong>Главное</strong> размещается <strong>Предмет задания</strong>, указывается <strong>Задача</strong> и расшифровка задачи.</li></ul><h3>История выполнения</h3>
<ul><li>На вкладке <strong>История выполнения</strong> можно просмотреть информацию о работе исполнителя над задачей (заполняется автоматически).
</li>
<li>Если задача выполнена или отменена, такую задачу уже невозможно изменить. Обратите внимание, что поле <strong>История выполнения</strong> заполнилось приложением автоматически и защищено от редактирования.</li></ul><h3>Важность</h3>
<ul><li>Принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>.
</li>
<li>Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выберите соответствующие значения этого поля. </li></ul><h3>Дата начала выполнения</h3>
<ul><li>В поле <strong>Дата начала</strong> можно проставить дату и время, когда задание начало выполняться. Для того чтобы это поле было доступно, в разделе <strong>Администрирование - Органайзер</strong> необходимо установить флажок <strong>Дата начала задач</strong>. По данному полю можно будет затем сортировать задачи в списках.</li></ul><h3>Принятие к исполнению</h3>
<ul><li>
<div>Задача, непринятая к исполнению, в списках выделяется жирным шрифтом. Выполните соответствующую команду меню <strong>Еще</strong>, для того чтобы <strong>Принятьк исполнению</strong> задачу. После этого задача исчезает из списков задач других исполнителей, назначенных на ту же роль.</div>
</li>
<li>
<div>С помощью соответствующей команды меню <strong>Еще</strong> можно <strong>Отменить принятие к исполнению</strong>.</div></li></ul><h3>Проверка выполнения</h3>
<ul><li>В поле <strong>Результат проверки задания</strong> напишите комментарий о выполнении задачи.
</li>
<li>Подтвердите выполнение (нажав кнопку <strong>Выполнено</strong>),
</li>
<li>После этого заполняется <strong>Дата</strong> выполнения, задача закрывается и становится защищенной от редактирования.</li></ul><h3>Невыполнение</h3>
<ul><li>В поле <strong>Результат проверки задания</strong> напишите причину невыполнения задания.
</li>
<li>Нажмите кнопку <strong>Отменено</strong>, что означает невыполнение задания.
</li>
<li>После нажатия кнопки заполняется дата отказа от выполнения, задача закрывается и становится защищенной от редактирования.</li></ul><h3>Возвращение исполнителю на доработку</h3>
<ul><li>
<div>В поле <strong>Результат проверки</strong> укажите причину, по которой задача возвращается на доработку.</div>
</li>
<li>
<div>Нажмите <strong>Возвращено исполнителю</strong>. После этого задача вернется в список задач исполнителя.</div></li></ul><h3>Создание подчиненного бизнес-процесса</h3>
<ul><li>
<div>Для того чтобы использовать подчиненные бизнес-процессы, в разделе <strong>Администрирование - Органайзер</strong> необходимо установить соответствующий флажок.</div>
</li>
<li>
<div>Часто бизнес-процессы создаются не сами по себе, а в рамках продолжения задач других бизнес-процессов. Например, директор поручает руководителям подразделений подготовить ежегодный план-отчет. Руководители на основании этой задачи дают поручения своим исполнителям. Исполнители начинают работать, формировать отчеты, отправлять их на согласование и т.д. Таким образом, от первого поручения директора вырастает целая иерархия бизнес-процессов и задач.</div>
</li>
<li>
<div>Для того чтобы запустить один бизнес-процесс на сновании другого, в задаче родительского бизнес-процесса выполните команду <strong>Создать на основании</strong>, из списка выберите вид бизнес-процесса, например, <strong>Задание</strong>. Заполните необходимые <a href="BusinessProcess.Задание.Form.ФормаБизнесПроцесса/Help">поля</a>.</div></li></ul><ul><a name="СтандартныеПодсистемы.НапоминанияПользователя">
<h3>Напоминание</h3>
</a>
<ul><a name="СтандартныеПодсистемы.НапоминанияПользователя"></a>
<li><a name="СтандартныеПодсистемы.НапоминанияПользователя">
</a>
<div><a name="СтандартныеПодсистемы.НапоминанияПользователя">Для того чтобы не забыть выполнить задачу, нажмите <img src="CommonPicture.Напоминание"></img><strong>Напомнить</strong>, заполните необходимые </a><a href="InformationRegister.НапоминанияПользователя.Form.Напоминание/Help">поля</a>. В указанный момент времени приложение выведет <a href="InformationRegister.НапоминанияПользователя.Form.ФормаОповещения/Help">напоминание</a> на экран.</div></li></ul><h3>Отправка другому исполнителю</h3>
<ul><li>Задачу можно <strong>Перенаправить</strong> другому исполнителю с помощью соответствующей кнопки.
</li>
<li>Заполните необходимые <a href="Task.ЗадачаИсполнителя.Form.ПеренаправитьЗадачи/Help">поля</a>.</li></ul><h3>Изменение задания</h3>
<ul><li>С помощью ссылки <strong>Изменить задание</strong> можно открыть задание и переработать его (при наличии прав доступа). В этом случае задание снова будет направлено исполнителю.</li></ul><h3>Дополнительные сведения о задаче</h3>
<ul><li>
<div>Для просмотра <a href="Task.ЗадачаИсполнителя.Form.Дополнительно/Help">дополнительной информации</a> о задаче выполните команду <strong>Еще</strong> <strong>- Дополнительно</strong>.</div></li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">Работа с бизнес-процессами</a>.</div>
</li>
<li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></ul></body></html>

View File

@ -0,0 +1,335 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
// Для существующего - в ПриЧтенииНаСервере.
Если Объект.Ссылка.Пустая() Тогда
ИнициализироватьФорму();
КонецЕсли;
ТекущийПользователь = Пользователи.ТекущийПользователь();
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами");
ПараметрыГиперссылки = МодульРаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
ПараметрыГиперссылки.Заголовок = НСтр("ru = 'Файлы задания'");
ПараметрыГиперссылки.Владелец = "Объект.БизнесПроцесс";
МодульРаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
БизнесПроцессыИЗадачиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтотОбъект);
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ВыполнитьЗадачу = Ложь;
Если Не (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда
Возврат;
КонецЕсли;
Если Не ЗаданиеВыполнено И Не ЗаданиеПодтверждено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Укажите причину, по которой задача возвращается на доработку.'"),,
"Объект.РезультатВыполнения",, Отказ);
Возврат;
ИначеЕсли Не ЗаданиеВыполнено И ЗаданиеПодтверждено И Не ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Укажите причину, по которой задача отменяется.'"),,
"Объект.РезультатВыполнения",, Отказ);
Возврат;
КонецЕсли;
// Предварительная запись бизнес-процесса для корректной работы обработчика точки маршрута.
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ИнициализироватьФорму();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
БизнесПроцессыИЗадачиКлиент.ФормаЗадачиОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "Запись_Задание" Тогда
Если (Источник = ЗаданиеСсылка Или (ТипЗнч(Источник) = Тип("Массив")
И Источник.Найти(ЗаданиеСсылка) <> Неопределено)) Тогда
Прочитать();
КонецЕсли;
КонецЕсли;
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СрокНачалаИсполненияПриИзменении(Элемент)
Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда
Объект.ДатаНачала = КонецДня(Объект.ДатаНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредметНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Предмет);
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания,
СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрытьВыполнить(Команда)
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Выполнено(Команда)
ЗаданиеПодтверждено = Истина;
ЗаданиеВыполнено = Истина;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Возвращено(Команда)
ЗаданиеПодтверждено = Ложь;
ЗаданиеВыполнено = Ложь;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Отменено(Команда)
ЗаданиеПодтверждено = Истина;
ЗаданиеВыполнено = Ложь;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЗаданиеВыполнить(Команда)
Если Модифицированность Тогда
Записать();
КонецЕсли;
ПоказатьЗначение(, ЗаданиеСсылка);
КонецПроцедуры
&НаКлиенте
Процедура Дополнительно(Команда)
БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПринятьКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь);
КонецПроцедуры
&НаКлиенте
Процедура ОтменитьПринятиеКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтотОбъект);
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ИнициализироватьФорму()
НачальныйПризнакВыполнения = Объект.Выполнена;
ПрочитатьРеквизитыБизнесПроцесса();
УстановитьСостояниеЭлементов();
ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач");
Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения);
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата);
БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект, Элементы.ГруппаСостояние,
Элементы.ДатаИсполнения);
Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена;
Исполнитель = ?(ЗначениеЗаполнено(Объект.Исполнитель), Объект.Исполнитель, Объект.РольИсполнителя);
Если ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание) Тогда
Элементы.Выполнено.Доступность = Истина;
Элементы.Отменено.Доступность = Истина;
Элементы.Возвращено.Доступность = Истина;
Иначе
Элементы.Выполнено.Доступность = Ложь;
Элементы.Отменено.Доступность = Ложь;
Элементы.Возвращено.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьРеквизитыБизнесПроцесса()
ЗадачаОбъект = РеквизитФормыВЗначение("Объект");
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект(); // БизнесПроцессОбъект
ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено;
ЗаданиеСсылка = ЗаданиеОбъект.Ссылка;
ЗаданиеПодтверждено = ЗаданиеОбъект.Подтверждено;
ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения;
ЗаданиеСодержание = ЗаданиеОбъект.Содержание;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект)
УстановитьПривилегированныйРежим(Истина);
НачатьТранзакцию();
Попытка
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено;
ЗаданиеОбъект.Подтверждено = ЗаданиеПодтверждено;
ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка установлена в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервере
Процедура УстановитьСостояниеЭлементов()
БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,68 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначено для постановки и проверки выполнения произвольных <a href="Task.ЗадачаИсполнителя/Help">задач</a>.</p>
<p>Можно запустить из документа приложения по команде <strong>Создать на основании</strong> (из бизнес-процесса также, для этого необходимы <a href="DataProcessor.ПанельАдминистрированияБСП.Form.Органайзер/Help">настройки</a> - такое задание станет подчиненным бизнес-процессом). Также можно начать новый <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">бизнес-процесс</a> <strong>Задание</strong> по команде <strong>Создать</strong> в списке <a href="BusinessProcess.Задание/Help">Задания</a>.</p>
<h3>Сведения о задании</h3>
<ul><li><strong>Главная задача</strong> - заполняется приложением автоматически, если бизнес-процесс является подчиненным. По ссылке в этом поле можно просмотреть данные о главном бизнес-процессе.
</li>
<li><strong>Задание</strong> - напишите заголовок задания, который будет показан в списках бизнес-процессов. Поле является обязательным для заполнения.
</li>
<li><strong>Важность</strong> - принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>. Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выберите соответствующее значение этого поля.
<ul><a name="СтандартныеПодсистемы.Пользователи"></a></ul></li>
<li><strong>Исполнитель</strong> - выберите исполнителя из списка <a href="Catalog.Пользователи/Help">пользователей</a> приложения или из списка <a href="CommonForm.ВыборИсполнителяБизнесПроцесса/Help">исполнителей</a>. Поля является обязательным для заполнения.
</li>
<li><strong>Срок</strong> - укажите дату и время, когда нужно выполнить задание.
</li>
<li><strong>Предмет</strong> - автоматически проставляется документ приложения, на основании которого создано задание.
</li>
<li>В текстовом поле ниже можно при необходимости более подробно объяснить суть задания. Недоступно для подчиненных бизнес-процессов.
</li>
<li>
<div>Включите флажок <strong>Проверить выполнение</strong>, для того чтобы:</div>
<ul><li>
<div>назначить проверяющего из списка пользователей;</div>
</li>
<li>
<div>ввести <strong>Срок</strong> - дату и время, до которого надо проверить выполнение задания. Если срок не заполнен, то проверка не производится.</div></li></ul></li>
<li>
<div><a name="СтандартныеПодсистемы.Пользователи"><strong>Автор</strong> - автоматически проставляется приложение</a><a name="СтандартныеПодсистемы.Пользователи">м текущий </a><a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователь</a>. Автора можно назначить из списка <strong>Пользователи</strong>.</div>
</li>
<li>
<div><strong>Начато</strong> - дата ввода задания. Заполняется приложением автоматически. Поле не подлежит редактированию.</div></li></ul><h3>Старт бизнес-процесса</h3>
<ul><li>После того как задание заполнено, нажмите кнопку <strong>Стартовать и закрыть</strong>, для того чтобы сохранить <strong>Задание</strong>, начать бизнес-процесс и вернуться в приложение.
</li>
<li>Для того чтобы начать бизнес-процесс, можно также воспользоваться командой <strong>Старт</strong>. В этом случае приложение сохранит задание, начнет бизнес-процесс, но задание останется открытым.
</li>
<li>Приложение автоматически формируетзадачи, из которых состоит бизнес-процесс <strong>Задание</strong>:
<ul><li><a href="BusinessProcess.Задание.Form.ДействиеВыполнить/Help">выполнение задания</a>;
<ul><li>после выполнения этой задачи в зависимости от настроек задание становится выполненным или формируется задача <a href="BusinessProcess.Задание.Form.ДействиеПроверить/Help">проверка выполнения</a>. </li></ul></li></ul></li>
<li>Для того чтобы записать черновик задания, но не стартовать его, нажмите <strong>Записать</strong>. Такое задание можно дозаполнить и стартовать позднее, в более подходящий момент времени из списка заданий или открыв задание.</li></ul><h3>Отложенный старт бизнес-процесса</h3>
<ul><li>
<div>Имеется возможность начать бизнес-процесс не сразу, а отложить его старт на определенное время. Например, можно запланировать старт на завтра или через неделю.</div>
</li>
<li>
<div>Для настройки отложенного старта задания после заполнения всех необходимых полей нажмите кнопку <img src="CommonPicture.ПроцессОтложен"></img>.</div>
<ul><li>
<div>В открывшемся окне включите флажок <strong>Отложенный старт задания</strong>.</div>
</li>
<li>
<div>Заполните поля <strong>Дата</strong> и <strong>Время</strong> - укажите, когда нужно начать бизнес-процесс. В нижней части окна отразится, через сколько дней и часов будет запущено задание.</div>
</li>
<li>
<div>Нажмите кнопку <strong>Готово</strong>.</div></li></ul></li>
<li>
<div>После этого в карточке бизнес-процесса выводится сообщение со ссылкой, в которой указывается дата и время отложенного старта.</div>
</li>
<li>
<div>Для запуска отложенных бизнес-процессов в нужное время необходимо настроить регламентное задание <strong>Старт отложенных бизнес-процессов</strong>.</div>
</li>
<li>
<div>После того как задание стартовано, кнопка отложенного старта становится неактивной.</div></li></ul><h3>Управление движением бизнес-процесса</h3>
<ul><li>Для того чтобы <strong>Остановить</strong> или <strong>Продолжить</strong> бизнес-процесс, воспользуйтесь соответствующими кнопками (активна одна из кнопок). Остановленный бизнес-процесс в некоторых списках выделяется значком <img src="CommonPicture.ЗнакСтоп"></img>.</li></ul><h3>Просмотр карты маршрута</h3>
<ul><li>Нажмите кнопку <img src="StdPicture.BusinessProcess"></img><strong>Открыть карту маршрута бизнес-процесса</strong>, для того чтобы посмотреть бизнес-процесс в наглядной форме.
</li>
<li>Также можно воспользоваться командой <strong>Еще</strong> <strong>- Карта маршрута</strong>.
</li>
<li><a href="DataProcessor.КартаМаршрутаБизнесПроцесса/Help">Карта маршрута</a> описывает логику бизнес-процесса и весь его жизненный цикл в виде схематического изображения - последовательности прохождения точек маршрута.</li></ul><h3>Просмотр задач</h3>
<ul><li>Для того чтобы просмотреть <a href="Task.ЗадачаИсполнителя.Form.ЗадачиПоБизнесПроцессу/Help">задачи</a>, из которых состоит данный бизнес-процесс, выполните команду <strong>Задачи</strong> в панели навигации. Если задание не стартовано, то список задач пустой.</li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>

View File

@ -0,0 +1,703 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОписаниеПеременных
&НаКлиенте
Перем ОткрытаФормаВыбораИсполнителя; // Признак того, что исполнитель выбирается из формы, а не быстрым вводом.
&НаКлиенте
Перем ОткрытаФормаВыбораПроверяющего; // Признак того, что проверяющий выбирается из формы, а не быстрым вводом.
&НаКлиенте
Перем КонтекстВыбора;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
// Для существующего - в ПриЧтенииНаСервере.
Если Объект.Ссылка.Пустая() Тогда
ИнициализироватьФорму();
КонецЕсли;
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами");
ГиперссылкаФайлов = МодульРаботаСФайлами.ГиперссылкаФайлов();
ГиперссылкаФайлов.Размещение = "КоманднаяПанель";
МодульРаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ГиперссылкаФайлов);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОбновитьДоступностьКомандОстановки();
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ИнициализироватьФорму();
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.ВыборРолиИсполнителя") Тогда
Если КонтекстВыбора = "ИсполнительПриИзменении" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Объект.Исполнитель = ВыбранноеЗначение.РольИсполнителя;
КонецЕсли;
УстановитьДоступностьПроверяющего(ЭтотОбъект);
ИначеЕсли КонтекстВыбора = "ПроверяющийПриИзменении" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Объект.Проверяющий = ВыбранноеЗначение.РольИсполнителя;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ИзмененаНастройкаОтложенногоСтарта" Тогда
Отложен = (Параметр.Отложен
И Параметр.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияПроцессовДляЗапуска.ГотовКСтарту"));
ДатаОтложенногоСтарта = Параметр.ДатаОтложенногоСтарта;
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
Если Элементы.ГруппаСостояние.Видимость Тогда
ИнфоНадписьЗаголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
КонецЕсли;
КонецЕсли;
// СтандартныеПодсистемы.РаботаСФайлами
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецЕсли;
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверитьДатуЗавершенияОтложенногоПроцесса(ТекущийОбъект, Отказ);
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ИзменятьЗаданияЗаднимЧислом = ПолучитьФункциональнуюОпцию("ИзменятьЗаданияЗаднимЧислом");
Если НачальныйПризнакСтарта И ИзменятьЗаданияЗаднимЧислом Тогда
УстановитьПривилегированныйРежим(Истина);
ТекущийОбъект.ИзменитьРеквизитыНевыполненныхЗадач();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_Задание", ПараметрыЗаписи, Объект.Ссылка);
Оповестить("Запись_ЗадачаИсполнителя", ПараметрыЗаписи, Неопределено);
Если ПараметрыЗаписи.Свойство("Старт") И ПараметрыЗаписи.Старт Тогда
ПодключитьОбработчикОжидания("ОбновитьФорму", 0.2, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьФорму()
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
Если Элементы.ГруппаСостояние.Видимость Тогда
ИнфоНадписьЗаголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
КонецЕсли;
ОбновитьДоступностьКомандОстановки();
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НаПроверкеПриИзменении(Элемент)
УстановитьДоступностьПроверяющего(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПредметНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Предмет);
КонецПроцедуры
&НаКлиенте
Процедура ГлавнаяЗадачаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.ГлавнаяЗадача);
КонецПроцедуры
&НаКлиенте
Процедура ИнфоНадписьЗаголовокОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьНастройкуОтложенногоСтарта();
КонецПроцедуры
&НаКлиенте
Процедура ИсполнительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
БизнесПроцессыИЗадачиКлиент.ВыбратьИсполнителя(Элемент, Объект.Исполнитель);
КонецПроцедуры
&НаКлиенте
Процедура ИсполнительПриИзменении(Элемент)
Если ОткрытаФормаВыбораИсполнителя = Истина Тогда
Возврат;
КонецЕсли;
ОсновнойОбъектАдресации = Неопределено;
ДополнительныйОбъектАдресации = Неопределено;
Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда
Если ИспользуетсяСОбъектамиАдресации(Объект.Исполнитель) Тогда
КонтекстВыбора = "ИсполнительПриИзменении";
ПараметрыФормы = БизнесПроцессыИЗадачиКлиент.ПараметрыФормыВыбораРолиИсполнителя(Объект.Исполнитель,
ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации);
БизнесПроцессыИЗадачиКлиент.ОткрытьФормуВыбораРолиИсполнителя(ПараметрыФормы, ЭтотОбъект);
Возврат;
КонецЕсли;
КонецЕсли;
УстановитьДоступностьПроверяющего(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИсполнительОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ОткрытаФормаВыбораИсполнителя = ТипЗнч(ВыбранноеЗначение) = Тип("Структура");
Если ОткрытаФормаВыбораИсполнителя Тогда
СтандартнаяОбработка = Ложь;
Объект.Исполнитель = ВыбранноеЗначение.РольИсполнителя;
Объект.ОсновнойОбъектАдресации = ВыбранноеЗначение.ОсновнойОбъектАдресации;
Объект.ДополнительныйОбъектАдресации = ВыбранноеЗначение.ДополнительныйОбъектАдресации;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИсполнительАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Текст) Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = СформироватьДанныеВыбораИсполнителя(Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИсполнительОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Текст) Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = СформироватьДанныеВыбораИсполнителя(Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверяющийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
БизнесПроцессыИЗадачиКлиент.ВыбратьИсполнителя(Элемент, Объект.Проверяющий);
КонецПроцедуры
&НаКлиенте
Процедура ПроверяющийПриИзменении(Элемент)
Если ОткрытаФормаВыбораПроверяющего = Истина Тогда
Возврат;
КонецЕсли;
ОсновнойОбъектАдресации = Неопределено;
ДополнительныйОбъектАдресации = Неопределено;
Если ТипЗнч(Объект.Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Проверяющий) Тогда
Если ИспользуетсяСОбъектамиАдресации(Объект.Проверяющий) Тогда
КонтекстВыбора = "ПроверяющийПриИзменении";
ПараметрыФормы = БизнесПроцессыИЗадачиКлиент.ПараметрыФормыВыбораРолиИсполнителя(Объект.Проверяющий,
ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации);
БизнесПроцессыИЗадачиКлиент.ОткрытьФормуВыбораРолиИсполнителя(ПараметрыФормы, ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверяющийОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ОткрытаФормаВыбораПроверяющего = ТипЗнч(ВыбранноеЗначение) = Тип("Структура");
Если ОткрытаФормаВыбораПроверяющего Тогда
СтандартнаяОбработка = Ложь;
Объект.Проверяющий = ВыбранноеЗначение.РольИсполнителя;
Объект.ОсновнойОбъектАдресацииПроверяющий = ВыбранноеЗначение.ОсновнойОбъектАдресации;
Объект.ДополнительныйОбъектАдресацииПроверяющий = ВыбранноеЗначение.ДополнительныйОбъектАдресации;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверяющийАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Текст) Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = СформироватьДанныеВыбораИсполнителя(Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверяющийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Текст) Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = СформироватьДанныеВыбораИсполнителя(Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СрокИсполненияПриИзменении(Элемент)
Если Объект.СрокИсполнения = НачалоДня(Объект.СрокИсполнения) Тогда
Объект.СрокИсполнения = КонецДня(Объект.СрокИсполнения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СрокПроверкиПриИзменении(Элемент)
Если Объект.СрокПроверки = НачалоДня(Объект.СрокПроверки) Тогда
Объект.СрокПроверки = КонецДня(Объект.СрокПроверки);
КонецЕсли;
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания,
СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ОчиститьСообщения();
Если Не ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
Записать();
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура Остановить(Команда)
БизнесПроцессыИЗадачиКлиент.ОстановитьБизнесПроцессИзФормыОбъекта(ЭтотОбъект);
ОбновитьДоступностьКомандОстановки();
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьБизнесПроцесс(Команда)
БизнесПроцессыИЗадачиКлиент.ПродолжитьБизнесПроцессИзФормыОбъекта(ЭтотОбъект);
ОбновитьДоступностьКомандОстановки();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьОтложенныйСтарт(Команда)
ОткрытьНастройкуОтложенногоСтарта();
КонецПроцедуры
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиКлиент");
МодульРаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
//
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Проверяющий.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.НаПроверке");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Проверяющий");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
//
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Проверяющий.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.НаПроверке");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Проверяющий");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьФорму()
НачальныйПризнакСтарта = Объект.Стартован;
УстановитьРеквизитыОтложенногоСтарта();
ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач");
ИзменятьЗаданияЗаднимЧислом = ПолучитьФункциональнуюОпцию("ИзменятьЗаданияЗаднимЧислом");
ИспользоватьПодчиненныеБизнесПроцессы = ПолучитьФункциональнуюОпцию("ИспользоватьПодчиненныеБизнесПроцессы");
ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Объект.Предмет);
Если Объект.ГлавнаяЗадача = Неопределено Или Объект.ГлавнаяЗадача.Пустая() Тогда
ГлавнаяЗадачаСтрокой = НСтр("ru = 'не задана'");
Иначе
ГлавнаяЗадачаСтрокой = Строка(Объект.ГлавнаяЗадача);
КонецЕсли;
УстановитьСвойстваЭлементовФормы(ЭтотОбъект);
Если Элементы.ГруппаСостояние.Видимость Тогда
ИнфоНадписьЗаголовок = СтроковыеФункции.ФорматированнаяСтрока(СообщениеОСтатусеЗадания(ЭтотОбъект));
Элементы.ИнфоНадписьЗаголовок.Высота = ?(СтрДлина(ИнфоНадписьЗаголовок) > 80, 2, 1);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДоступностьКомандОстановки()
Если Объект.Завершен Тогда
Элементы.ФормаОстановить.Видимость = Ложь;
Элементы.ФормаПродолжить.Видимость = Ложь;
Возврат;
КонецЕсли;
Если Объект.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияБизнесПроцессов.Остановлен") Тогда
Элементы.ФормаОстановить.Видимость = Ложь;
Элементы.ФормаПродолжить.Видимость = Истина;
Иначе
Элементы.ФормаОстановить.Видимость = Объект.Стартован;
Элементы.ФормаПродолжить.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПроверяющего(Форма)
ДоступностьПоля = Форма.Объект.НаПроверке;
Форма.Элементы.ГруппаПроверяющий.Доступность = ДоступностьПоля;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИспользуетсяСОбъектамиАдресации(ПроверяемыйОбъект)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроверяемыйОбъект, "ИспользуетсяСОбъектамиАдресации");
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСвойстваЭлементовФормы(Форма)
Если Форма.ТолькоПросмотр Тогда
Форма.Элементы.ФормаОстановить.Видимость = Ложь;
Форма.Элементы.ФормаЗаписатьИЗакрыть.Видимость = Ложь;
Форма.Элементы.ФормаНастроитьОтложенныйСтарт.Видимость = Ложь;
Форма.Элементы.ФормаЗаписать.Видимость = Ложь;
Форма.Элементы.ФормаПродолжить.Видимость = Ложь;
Иначе
ОбъектСтартован = ОбъектСтартован(Форма);
Форма.Элементы.СрокИсполненияВремя.Видимость = Форма.ИспользоватьДатуИВремяВСрокахЗадач;
Форма.Элементы.СрокПроверкиВремя.Видимость = Форма.ИспользоватьДатуИВремяВСрокахЗадач;
Форма.Элементы.Дата.Формат = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D");
Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено
И Не Форма.Объект.Предмет.Пустая();
Форма.Элементы.ФормаСтартИЗакрыть.Видимость = Не ОбъектСтартован;
Форма.Элементы.ФормаСтартИЗакрыть.КнопкаПоУмолчанию = Не ОбъектСтартован;
Форма.Элементы.ФормаСтарт.Видимость = Не ОбъектСтартован;
Форма.Элементы.ФормаНастроитьОтложенныйСтарт.Видимость = Не ОбъектСтартован;
Форма.Элементы.ФормаЗаписатьИЗакрыть.Видимость = ?(Форма.Объект.Завершен, Ложь, ОбъектСтартован);
Форма.Элементы.ФормаЗаписать.Видимость = Не Форма.Объект.Завершен;
Форма.Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = ОбъектСтартован;
Форма.Элементы.ФормаНастроитьОтложенныйСтарт.Доступность = Не Форма.Объект.Стартован;
Если Форма.Объект.ГлавнаяЗадача = Неопределено Или Форма.Объект.ГлавнаяЗадача.Пустая() Тогда
Форма.Элементы.ГлавнаяЗадача.Гиперссылка = Ложь;
КонецЕсли;
Если Не Форма.ИспользоватьПодчиненныеБизнесПроцессы Тогда
Форма.Элементы.ГлавнаяЗадача.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
Форма.Элементы.ГруппаСостояние.Видимость = Форма.Объект.Завершен Или ОбъектСтартован(Форма);
УстановитьДоступностьПроверяющего(Форма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция СообщениеОСтатусеЗадания(Форма)
ТекстСостояния = "";
Если Форма.Объект.Завершен Тогда
ДатаЗавершенияСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач,
Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=DT"),
Формат(Форма.Объект.ДатаЗавершения, "ДЛФ=D"));
СтрокаТекста = ?(Форма.Объект.Выполнено,
НСтр("ru = 'Задание выполнено %1.'"), НСтр("ru = 'Задание отменено %1.'"));
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаТекста, ДатаЗавершенияСтрокой);
Для Каждого Элемент Из Форма.Элементы Цикл
Если ТипЗнч(Элемент) <> Тип("ПолеФормы") И ТипЗнч(Элемент) <> Тип("ГруппаФормы") Тогда
Продолжить;
КонецЕсли;
Элемент.ТолькоПросмотр = Истина;
КонецЦикла;
ИначеЕсли Форма.Объект.Стартован Тогда
ТекстСостояния = ?(Форма.ИзменятьЗаданияЗаднимЧислом,
НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания вступят в силу немедленно для ранее выданной задачи.'"),
НСтр("ru = 'Изменения формулировки, важности, автора, а также перенос сроков исполнения и проверки задания не будут отражены в ранее выданной задаче.'"));
ИначеЕсли Форма.Отложен Тогда
ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, Формат(Форма.ДатаОтложенногоСтарта,
"ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D"));
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Задание будет запущено <a href=""%1"">%2</a>'"), "ОткрытьНастройкуОтложенногоСтарта",
ДатаОтложенногоСтартаСтрокой);
КонецЕсли;
Возврат ТекстСостояния;
КонецФункции
&НаСервере
Процедура ПроверитьДатуЗавершенияОтложенногоПроцесса(ПроверяемыйОбъект, Отказ)
Если Не ЗначениеЗаполнено(ПроверяемыйОбъект.СрокИсполнения) Тогда
Возврат;
КонецЕсли;
ДатаОтложенногоСтарта = БизнесПроцессыИЗадачиСервер.ДатаОтложенногоСтартаПроцесса(ПроверяемыйОбъект.Ссылка);
Если ПроверяемыйОбъект.СрокИсполнения < ДатаОтложенногоСтарта Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Срок исполнения задания не может быть меньше даты отложенного старта.'"),,
"СрокИсполнения", "Объект.СрокИсполнения");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьНастройкуОтложенногоСтарта()
Если КлючевыеРеквизитыФормыЗаполнены() Тогда
БизнесПроцессыИЗадачиКлиент.НастроитьОтложенныйСтарт(Объект.Ссылка, Объект.СрокИсполнения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция КлючевыеРеквизитыФормыЗаполнены()
Если Объект.Стартован Тогда
Возврат Истина;
КонецЕсли;
ОчиститьСообщения();
РеквизитыФормыЗаполнены = Истина;
Если Не ЗначениеЗаполнено(Объект.Исполнитель) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Исполнитель"" не заполнено.'"),,
"Исполнитель", "Объект.Исполнитель");
РеквизитыФормыЗаполнены = Ложь;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Наименование) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Задание"" не заполнено.'"),,
"Исполнитель", "Объект.Наименование");
РеквизитыФормыЗаполнены = Ложь;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.СрокИсполнения) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Поле ""Срок"" исполнения не заполнено.'"),,
"СрокИсполнения", "Объект.СрокИсполнения");
РеквизитыФормыЗаполнены = Ложь;
КонецЕсли;
Возврат РеквизитыФормыЗаполнены;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОбъектСтартован(Форма)
Возврат Форма.Объект.Стартован Или Форма.Отложен;
КонецФункции
&НаСервере
Процедура УстановитьРеквизитыОтложенногоСтарта()
ДатаОтложенногоСтарта = БизнесПроцессыИЗадачиСервер.ДатаОтложенногоСтартаПроцесса(Объект.Ссылка);
Отложен = (ДатаОтложенногоСтарта <> '00010101');
КонецПроцедуры
&НаСервереБезКонтекста
Функция СформироватьДанныеВыбораИсполнителя(Знач Текст)
Возврат БизнесПроцессыИЗадачиСервер.СформироватьДанныеВыбораИсполнителя(Текст);
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<use>false</use>
<field>Дата</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,117 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПоАвтору = Пользователи.ТекущийПользователь();
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ЗадачаИсточник", Задачи.ЗадачаИсполнителя.ПустаяСсылка());
УстановитьОтбор();
ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач");
Элементы.СрокИсполнения.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D");
Элементы.СрокПроверки.Формат = ?(ИспользоватьДатуИВремяВСрокахЗадач, "ДЛФ=DT", "ДЛФ=D");
БизнесПроцессыИЗадачиСервер.УстановитьОформлениеБизнесПроцессов(Список.УсловноеОформление);
Элементы.ФормаОстановить.Видимость = ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание);
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
УстановитьОтборСписка(Настройки);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПоАвторуПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаКлиенте
Процедура ПоИсполнителюПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаКлиенте
Процедура ПоПроверяющемуПриИзменении(Элемент)
УстановитьОтбор();
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьЗавершенныеЗаданияПриИзменении(Элемент)
УстановитьОтбор();
Элементы.Список.Обновить();
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьОстановленныеПриИзменении(Элемент)
УстановитьОтбор();
Элементы.Список.Обновить();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Остановить(Команда)
БизнесПроцессыИЗадачиКлиент.Остановить(Элементы.Список.ВыделенныеСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьБизнесПроцесс(Команда)
БизнесПроцессыИЗадачиКлиент.СделатьАктивным(Элементы.Список.ВыделенныеСтроки);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьОтбор()
ПараметрыОтбора = Новый Соответствие;
ПараметрыОтбора.Вставить("ПоказыватьЗавершенныеЗадания", ПоказыватьЗавершенныеЗадания);
ПараметрыОтбора.Вставить("ПоказыватьОстановленные", ПоказыватьОстановленные);
ПараметрыОтбора.Вставить("ПоАвтору", ПоАвтору);
ПараметрыОтбора.Вставить("ПоИсполнителю", ПоИсполнителю);
ПараметрыОтбора.Вставить("ПоПроверяющему", ПоПроверяющему);
УстановитьОтборСписка(ПараметрыОтбора);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтборСписка(ПараметрыОтбора)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Завершен", Ложь,,,
Не ПараметрыОтбора["ПоказыватьЗавершенныеЗадания"]);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Остановлен", Ложь,,,
Не ПараметрыОтбора["ПоказыватьОстановленные"]);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Автор",
ПараметрыОтбора["ПоАвтору"],,, Не ПараметрыОтбора["ПоАвтору"].Пустая());
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Исполнитель",
ПараметрыОтбора["ПоИсполнителю"],,, Не ПараметрыОтбора["ПоИсполнителю"].Пустая());
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Проверяющий",
ПараметрыОтбора["ПоПроверяющему"],,, Не ПараметрыОтбора["ПоПроверяющему"].Пустая());
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,28 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Предназначен для управления бизнес-процессами <strong>Задание</strong>.</p>
<p>Этот <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">бизнес-процесс</a> состоит из двух шагов - исполнение и проверка, при этом проверяющий может вернуть задачу на доработку.</p>
<p>Формируемые приложением по бизнес-процессу <strong>Задание</strong> <a href="Task.ЗадачаИсполнителя/Help">задачи</a> на исполнение и на проверку адресуются исполнителю не только явно, с использованием персональной адресации, но и с помощью <a href="Catalog.РолиИсполнителей/Help">ролевой адресации</a>.</p>
<p>Открывается по команде <strong>Задания</strong> в разделе <strong>Бизнес-процессы и задачи</strong>.</p>
<p>В списке выводится:</p>
<ul><li><img src="CommonPicture.ВосклицательныйЗнакСерый"></img> - важность, принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>. Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выбираются соответствующие значения этого поля.
</li>
<li><strong>Номер</strong> - номер проставляется приложением автоматически, рядом с номером проставляется один из значков <img src="CommonPicture.СостоянияПроцессов"></img>, обозначающий состояние бизнес-процесса <strong>Задание</strong>.
</li>
<li><strong>Дата</strong> - дата и время создания бизнес-процесса <strong>Задание</strong>.
</li>
<li><strong>Задание</strong> - полное наименование.
</li>
<li><strong>Срок исполнения</strong> - дата и время, к которому <strong>Задание</strong> должно быть выполнено.
</li>
<li><strong>Завершено</strong> - дата и время выполнения.</li></ul><h3>Отборы</h3>
<ul><a name="СтандартныеПодсистемы.Пользователи">
</a>
<li><a name="СтандартныеПодсистемы.Пользователи">Приложение автоматически отбирает задания по полю <strong>Автор</strong> для текущего </a><a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>. Можно отобрать задания по любому <strong>Автору</strong>, для этого выберите его из списка пользователей.
</li>
<li>Для отбора по полю <strong>Исполнитель</strong> также можно выбрать нужного из списка <a href="Catalog.Пользователи/Help">пользователей</a>, в случае ролевой адресации становится доступным список <a href="CommonForm.ВыборИсполнителяБизнесПроцесса/Help">исполнителей роли</a>.</li></ul><h3>Просмотр всех заданий</h3>
<ul><li>Установите соответствующие флажки, для того чтобы <strong>Показывать завершенные </strong>и <strong>остановленные</strong> задания. По умолчанию флажки сняты.</li></ul><h3>Ввод нового задания</h3>
<ul><li>Нажмите <strong>Создать</strong>, заполните необходимые <a href="BusinessProcess.Задание.Form.ФормаБизнесПроцесса/Help">поля</a>.</li></ul><h3>Управление движением бизнес-процесса</h3>
<ul><li>С помощью кнопки можно <strong>Остановить</strong> начатый бизнес-процесс.
</li>
<li>С помощью кнопки <strong>Продолжить</strong> в любой момент можно возобновить выполнение остановленного бизнес-процесса. </li></ul><h3>См. также: </h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,267 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("Автор");
Результат.Добавить("Важность");
Результат.Добавить("Исполнитель");
Результат.Добавить("ПроверитьВыполнение");
Результат.Добавить("Проверяющий");
Результат.Добавить("СрокИсполнения");
Результат.Добавить("СрокПроверки");
Возврат Результат;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.БизнесПроцессыИЗадачи
// Получить структуру с описанием формы выполнения задачи.
// Вызывается при открытии формы выполнения задачи.
//
// Параметры:
// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - открываемая задача.
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание - текущая точка маршрута.
//
// Возвращаемое значение:
// Структура:
// * ПараметрыФормы - Структура:
// ** Ключ - ЗадачаСсылка.ЗадачаИсполнителя
// * ИмяФормы - Строка - имя формы, передаваемое в метод контекста ОткрытьФорму()
//
Функция ФормаВыполненияЗадачи(ЗадачаСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
Результат = Новый Структура;
Результат.Вставить("ПараметрыФормы", Новый Структура("Ключ", ЗадачаСсылка));
ИмяФормы = ?(ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Проверить,
Метаданные.БизнесПроцессы.Задание.Формы.ДействиеПроверить.ПолноеИмя(),
Метаданные.БизнесПроцессы.Задание.Формы.ДействиеВыполнить.ПолноеИмя());
Результат.Вставить("ИмяФормы", ИмяФормы);
Возврат Результат;
КонецФункции
// Вызывается при перенаправлении задачи.
//
// Параметры:
// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - перенаправляемая задача.
// НоваяЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача для нового исполнителя.
//
Процедура ПриПеренаправленииЗадачи(ЗадачаСсылка, НоваяЗадачаСсылка) Экспорт
// АПК:1327-выкл Блокировка бизнес-процесса установлена ранее
// в вызывающей функции БизнесПроцессыИЗадачи.ПеренаправитьЗадачи.
СведенияОЗадаче = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
"Ссылка,БизнесПроцесс,РезультатВыполнения,ДатаИсполнения,Исполнитель");
БизнесПроцессОбъект = СведенияОЗадаче.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(БизнесПроцессОбъект.Ссылка);
БизнесПроцессОбъект.РезультатВыполнения = РезультатВыполненияПриПеренаправлении(СведенияОЗадаче)
+ ?(ЗначениеЗаполнено(БизнесПроцессОбъект.РезультатВыполнения), Символы.ПС, "")
+ БизнесПроцессОбъект.РезультатВыполнения;
УстановитьПривилегированныйРежим(Истина);
БизнесПроцессОбъект.Записать();
// АПК:1327-вкл
КонецПроцедуры
// Вызывается при выполнении задачи из формы списка.
//
// Параметры:
// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача.
// БизнесПроцессСсылка - БизнесПроцессСсылка - бизнес-процесс, по которому сформирована задача ЗадачаСсылка.
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка - точка маршрута.
//
Процедура ОбработкаВыполненияПоУмолчанию(ЗадачаСсылка, БизнесПроцессСсылка, ТочкаМаршрутаБизнесПроцесса) Экспорт
ЭтоТочкаМаршрутаВыполнить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить);
ЭтоТочкаМаршрутаПроверить = (ТочкаМаршрутаБизнесПроцесса = БизнесПроцессы.Задание.ТочкиМаршрута.Проверить);
Если Не ЭтоТочкаМаршрутаВыполнить И Не ЭтоТочкаМаршрутаПроверить Тогда
Возврат;
КонецЕсли;
// Устанавливаем значения по умолчанию для пакетного выполнения задач.
НачатьТранзакцию();
Попытка
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(БизнесПроцессСсылка);
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = БизнесПроцессСсылка.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
Если ЭтоТочкаМаршрутаВыполнить Тогда
ЗаданиеОбъект.Выполнено = Истина;
ИначеЕсли ЭтоТочкаМаршрутаПроверить Тогда
ЗаданиеОбъект.Выполнено = Истина;
ЗаданиеОбъект.Подтверждено = Истина;
КонецЕсли;
ЗаданиеОбъект.Записать(); // АПК:1327 Блокировка в БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы.
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
// Конец СтандартныеПодсистемы.БизнесПроцессыИЗадачи
// СтандартныеПодсистемы.УправлениеДоступом
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"ПрисоединитьДополнительныеТаблицы
|ЭтотСписок КАК Задание
|
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ИсполнителиЗадач
|ПО
| ИсполнителиЗадач.РольИсполнителя = Задание.Исполнитель
| И ИсполнителиЗадач.ОсновнойОбъектАдресации = Задание.ОсновнойОбъектАдресации
| И ИсполнителиЗадач.ДополнительныйОбъектАдресации = Задание.ДополнительныйОбъектАдресации
|
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсполнителиЗадач КАК ПроверяющиеЗадач
|ПО
| ПроверяющиеЗадач.РольИсполнителя = Задание.Проверяющий
| И ПроверяющиеЗадач.ОсновнойОбъектАдресации = Задание.ОсновнойОбъектАдресацииПроверяющий
| И ПроверяющиеЗадач.ДополнительныйОбъектАдресации = Задание.ДополнительныйОбъектАдресацииПроверяющий
|;
|РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Автор)
| ИЛИ ЗначениеРазрешено(Исполнитель КРОМЕ Справочник.РолиИсполнителей)
| ИЛИ ЗначениеРазрешено(ИсполнителиЗадач.Исполнитель)
| ИЛИ ЗначениеРазрешено(Проверяющий КРОМЕ Справочник.РолиИсполнителей)
| ИЛИ ЗначениеРазрешено(ПроверяющиеЗадач.Исполнитель)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЗначениеРазрешено(Автор)";
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
// СтандартныеПодсистемы.ПодключаемыеКоманды
// Определяет список команд создания на основании.
//
// Параметры:
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
// Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
КонецПроцедуры
// Для использования в процедуре ДобавитьКомандыСозданияНаОсновании других модулей менеджеров объектов.
// Добавляет в список команд создания на основании этот объект.
//
// Параметры:
// КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений, Неопределено - описание добавленной команды.
//
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульСозданиеНаОсновании = ОбщегоНазначения.ОбщийМодуль("СозданиеНаОсновании");
Команда = МодульСозданиеНаОсновании.ДобавитьКомандуСозданияНаОсновании(КомандыСозданияНаОсновании,
Метаданные.БизнесПроцессы.Задание);
Если Команда <> Неопределено Тогда
Команда.ФункциональныеОпции = "ИспользоватьБизнесПроцессыИЗадачи";
КонецЕсли;
Возврат Команда;
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
////////////////////////////////////////////////////////////////////////////////
// Прочие
// Устанавливает состояние элементов формы задачи.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения:
// * Элементы - ВсеЭлементыФормы:
// ** Предмет - РасширениеПоляФормыДляПоляНадписи
//
Процедура УстановитьСостояниеЭлементовФормыЗадачи(Форма) Экспорт
Если Форма.Элементы.Найти("РезультатВыполнения") <> Неопределено
И Форма.Элементы.Найти("ИсторияВыполнения") <> Неопределено Тогда
Форма.Элементы.ИсторияВыполнения.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(
Форма.ЗаданиеРезультатВыполнения);
КонецЕсли;
Форма.Элементы.Предмет.Гиперссылка = Форма.Объект.Предмет <> Неопределено И Не Форма.Объект.Предмет.Пустая();
Форма.ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(Форма.Объект.Предмет);
КонецПроцедуры
Функция РезультатВыполненияПриПеренаправлении(Знач СведенияОЗадаче)
Комментарий = СокрЛП(СведенияОЗадаче.РезультатВыполнения);
Если Не ПустаяСтрока(Комментарий) Тогда
Комментарий = ": " + Комментарий;
КонецЕсли;
Если Пользователи.ТекущийПользователь() = СведенияОЗадаче.Исполнитель Тогда
СтрокаФормат = НСтр("ru = '%1, %2 перенаправил(а) задачу%3'");
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, СведенияОЗадаче.ДатаИсполнения,
СведенияОЗадаче.Исполнитель, Комментарий);
Иначе
СтрокаФормат = НСтр("ru = '%1, %4 (ранее исполнителем был %2) перенаправил(а) задачу%3'");
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, СведенияОЗадаче.ДатаИсполнения,
СведенияОЗадаче.Исполнитель, Комментарий, Пользователи.ТекущийПользователь() );
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,422 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.УправлениеДоступом
// Параметры:
// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа
//
Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт
БизнесПроцессыИЗадачиПереопределяемый.ПриЗаполненииНаборовЗначенийДоступа(ЭтотОбъект, Таблица);
Если Таблица.Количество() > 0 Тогда
Возврат;
КонецЕсли;
ЗаполнитьНаборыЗначенийДоступаПоУмолчанию(Таблица);
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытий
#Область ОбработчикиСобытийБизнесПроцесса
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если Автор <> Неопределено И Не Автор.Пустая() Тогда
АвторСтрокой = Строка(Автор);
КонецЕсли;
БизнесПроцессыИЗадачиСервер.ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(ЭтотОбъект);
Если ЗначениеЗаполнено(ГлавнаяЗадача)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГлавнаяЗадача, "БизнесПроцесс") = Ссылка Тогда
ВызватьИсключение НСтр("ru = 'Собственная задача бизнес-процесса не может быть указана как главная задача.'");
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ГруппаИсполнителейЗадач = ?(ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей"),
БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Исполнитель, ОсновнойОбъектАдресации,
ДополнительныйОбъектАдресации), Исполнитель);
ГруппаИсполнителейЗадачПроверяющий = ?(ТипЗнч(Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей"),
БизнесПроцессыИЗадачиСервер.ГруппаИсполнителейЗадач(Проверяющий, ОсновнойОбъектАдресацииПроверяющий,
ДополнительныйОбъектАдресацииПроверяющий), Проверяющий);
УстановитьПривилегированныйРежим(Ложь);
Если Не ЭтоНовый() И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Предмет") <> Предмет Тогда
ИзменитьПредметЗадач();
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ЭтоНовый() Тогда
Автор = Пользователи.АвторизованныйПользователь();
Проверяющий = Пользователи.АвторизованныйПользователь();
Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Пользователи") Тогда
Исполнитель = ДанныеЗаполнения;
Иначе
// Для возможности автоподбора в незаполненном поле Исполнитель.
Исполнитель = Справочники.Пользователи.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если ДанныеЗаполнения <> Неопределено И ТипЗнч(ДанныеЗаполнения) <> Тип("Структура")
И ДанныеЗаполнения <> Задачи.ЗадачаИсполнителя.ПустаяСсылка() Тогда
Если ТипЗнч(ДанныеЗаполнения) <> Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда
Предмет = ДанныеЗаполнения;
Иначе
Предмет = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗаполнения, "Предмет");
КонецЕсли;
КонецЕсли;
БизнесПроцессыИЗадачиСервер.ЗаполнитьГлавнуюЗадачу(ЭтотОбъект, ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив;
Если Не НаПроверке Тогда
МассивНепроверяемыхРеквизитов.Добавить("Проверяющий");
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
НомерИтерации = 0;
Выполнено = Ложь;
Подтверждено = Ложь;
РезультатВыполнения = "";
ДатаЗавершения = '00010101000000';
Состояние = Перечисления.СостоянияБизнесПроцессов.Активен;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовКартыМаршрута
// Параметры:
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание
// ФормируемыеЗадачи - Массив из ЗадачаОбъект
// Отказ - Булево
//
Процедура ВыполнитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
НомерИтерации = НомерИтерации + 1;
Записать();
// Устанавливаем реквизиты адресации и доп. реквизиты для каждой задачи.
Для Каждого Задача Из ФормируемыеЗадачи Цикл
Задача.Автор = Автор;
Задача.АвторСтрокой = Строка(Автор);
Если ТипЗнч(Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") Тогда
Задача.РольИсполнителя = Исполнитель;
Задача.ОсновнойОбъектАдресации = ОсновнойОбъектАдресации;
Задача.ДополнительныйОбъектАдресации = ДополнительныйОбъектАдресации;
Задача.Исполнитель = Неопределено;
Иначе
Задача.Исполнитель = Исполнитель;
КонецЕсли;
Задача.Наименование = НаименованиеЗадачиДляВыполнения();
Задача.СрокИсполнения = СрокИсполненияЗадачиДляВыполнения();
Задача.Важность = Важность;
Задача.Предмет = Предмет;
КонецЦикла;
КонецПроцедуры
Процедура ВыполнитьПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)
Если Предмет = Неопределено Или Предмет.Пустая() Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Процедура ВыполнитьПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)
РезультатВыполнения = РезультатВыполненияТочкиВыполнить(Задача) + РезультатВыполнения;
Записать();
КонецПроцедуры
// Параметры:
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание
// ФормируемыеЗадачи - Массив из ЗадачаОбъект
// Отказ - Булево
//
Процедура ПроверитьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)
Если Проверяющий.Пустая() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
// Устанавливаем реквизиты адресации и доп. реквизиты для каждой задачи.
Для Каждого Задача Из ФормируемыеЗадачи Цикл
Задача.Автор = Автор;
Если ТипЗнч(Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") Тогда
Задача.РольИсполнителя = Проверяющий;
Задача.ОсновнойОбъектАдресации = ОсновнойОбъектАдресацииПроверяющий;
Задача.ДополнительныйОбъектАдресации = ДополнительныйОбъектАдресацииПроверяющий;
Иначе
Задача.Исполнитель = Проверяющий;
КонецЕсли;
Задача.Наименование = НаименованиеЗадачиДляПроверки();
Задача.СрокИсполнения = СрокИсполненияЗадачиДляПроверки();
Задача.Важность = Важность;
Задача.Предмет = Предмет;
КонецЦикла;
КонецПроцедуры
Процедура ПроверитьПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)
РезультатВыполнения = РезультатВыполненияТочкиПроверить(Задача) + РезультатВыполнения;
Записать();
КонецПроцедуры
Процедура НужнаПроверкаПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
Результат = НаПроверке;
КонецПроцедуры
Процедура ВернутьИсполнителюПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
Результат = Не Подтверждено;
КонецПроцедуры
Процедура ЗавершениеПриЗавершении(ТочкаМаршрутаБизнесПроцесса, Отказ)
ДатаЗавершения = БизнесПроцессыИЗадачиСервер.ДатаЗавершенияБизнесПроцесса(Ссылка);
Записать();
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Актуализирует значения реквизит невыполненных задач
// согласно реквизитам бизнес-процесса Задание:
// Важность, СрокИсполнения, Наименование и Автор.
//
Процедура ИзменитьРеквизитыНевыполненныхЗадач() Экспорт
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя");
ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка);
Запрос = Новый Запрос("ВЫБРАТЬ
| ЗадачиИсполнителя.Ссылка КАК Ссылка
|ИЗ
| Задача.ЗадачаИсполнителя КАК ЗадачиИсполнителя
|ГДЕ
| ЗадачиИсполнителя.БизнесПроцесс = &БизнесПроцесс
| И ЗадачиИсполнителя.ПометкаУдаления = ЛОЖЬ
| И ЗадачиИсполнителя.Выполнена = ЛОЖЬ");
Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); // ЗадачаОбъект
ЗадачаОбъект.Важность = Важность;
ЗадачаОбъект.СрокИсполнения = ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить,
СрокИсполненияЗадачиДляВыполнения(), СрокИсполненияЗадачиДляПроверки());
ЗадачаОбъект.Наименование = ?(ЗадачаОбъект.ТочкаМаршрута = БизнесПроцессы.Задание.ТочкиМаршрута.Выполнить,
НаименованиеЗадачиДляВыполнения(), НаименованиеЗадачиДляПроверки());
ЗадачаОбъект.Автор = Автор;
// Не выполняем предварительную блокировку данных для редактирования, т.к.
// Это изменение имеет более высокий приоритет над открытыми формами задач.
ЗадачаОбъект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Процедура ИзменитьПредметЗадач()
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Задача.ЗадачаИсполнителя");
ЭлементБлокировки.УстановитьЗначение("БизнесПроцесс", Ссылка);
Запрос = Новый Запрос("ВЫБРАТЬ
| ЗадачиИсполнителя.Ссылка КАК Ссылка
|ИЗ
| Задача.ЗадачаИсполнителя КАК ЗадачиИсполнителя
|ГДЕ
| ЗадачиИсполнителя.БизнесПроцесс = &БизнесПроцесс");
Запрос.УстановитьПараметр("БизнесПроцесс", Ссылка);
УстановитьПривилегированныйРежим(Истина);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); // ЗадачаОбъект
ЗадачаОбъект.Предмет = Предмет;
// Не выполняем предварительную блокировку данных для редактирования, т.к.
// Это изменение имеет более высокий приоритет над открытыми формами задач.
ЗадачаОбъект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Функция НаименованиеЗадачиДляВыполнения()
Возврат Наименование;
КонецФункции
Функция СрокИсполненияЗадачиДляВыполнения()
Возврат СрокИсполнения;
КонецФункции
Функция НаименованиеЗадачиДляПроверки()
НаименованиеЗадачи = НСтр("ru='Проверить'");
Возврат ?(ПустаяСтрока(НаименованиеЗадачи), "", НаименованиеЗадачи + ": ") + Наименование;
КонецФункции
Функция СрокИсполненияЗадачиДляПроверки()
Возврат СрокПроверки;
КонецФункции
Функция РезультатВыполненияТочкиВыполнить(Знач ЗадачаСсылка)
ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
"РезультатВыполнения,ДатаИсполнения,Исполнитель,Выполнена");
СтрокаФормат = ?(ЗадачаДанные.Выполнена,
НСтр("ru = '%1, %2 выполнил(а) задачу:
|%3'") + Символы.ПС,
НСтр("ru = '%1, %2 отклонил(а) задачу:
|%3'") + Символы.ПС);
Комментарий = СокрЛП(ЗадачаДанные.РезультатВыполнения);
Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС);
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения,
ЗадачаДанные.Исполнитель, Комментарий);
Возврат Результат;
КонецФункции
Функция РезультатВыполненияТочкиПроверить(Знач ЗадачаСсылка)
Если Не Подтверждено Тогда
СтрокаФормат = НСтр("ru = '%1, %2 вернул(а) задачу на доработку:
|%3'") + Символы.ПС;
Иначе
СтрокаФормат = ?(Выполнено,
НСтр("ru = '%1, %2 подтвердил(а) выполнение задачи:
|%3'") + Символы.ПС,
НСтр("ru = '%1, %2 подтвердил(а) отмену задачи:
|%3'") + Символы.ПС);
КонецЕсли;
ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
"РезультатВыполнения,ДатаИсполнения,Исполнитель");
Комментарий = СокрЛП(ЗадачаДанные.РезультатВыполнения);
Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС);
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаФормат, ЗадачаДанные.ДатаИсполнения,
ЗадачаДанные.Исполнитель, Комментарий);
Возврат Результат;
КонецФункции
Процедура ЗаполнитьНаборыЗначенийДоступаПоУмолчанию(Таблица)
// Логика ограничения по умолчанию для
// - чтения: Автор ИЛИ Исполнитель (с учетом адресации) ИЛИ Проверяющий (с учетом адресации)
// - изменения: Автор.
// Если предмет не задан (т.е. бизнес-процесс без основания), тогда предмет не участвует в логике ограничения.
// Чтение, Изменение: набор № 1.
Строка = Таблица.Добавить();
Строка.НомерНабора = 1;
Строка.Чтение = Истина;
Строка.Изменение = Истина;
Строка.ЗначениеДоступа = Автор;
// Чтение: набор № 2.
Строка = Таблица.Добавить();
Строка.НомерНабора = 2;
Строка.Чтение = Истина;
Строка.ЗначениеДоступа = ГруппаИсполнителейЗадач;
// Чтение: набор № 3.
Строка = Таблица.Добавить();
Строка.НомерНабора = 3;
Строка.Чтение = Истина;
Строка.ЗначениеДоступа = ГруппаИсполнителейЗадачПроверяющий;
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

View File

@ -0,0 +1,784 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:BusinessProcess xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="dad11c2e-08fc-4a6b-8829-8be6c64c15fc">
<producedTypes>
<objectType typeId="4a670c5f-960b-4b36-b587-59bcea4d8449" valueTypeId="ef743aff-e3c0-40fc-b3b5-7d3b85b46a99"/>
<refType typeId="07d25a98-bdd8-4f7b-b87b-172294158755" valueTypeId="76d38a5e-4135-448f-9047-95df317bc687"/>
<selectionType typeId="d0447d5c-7808-4532-8a98-0cb3974a90bf" valueTypeId="db074c28-d78b-4923-8098-d61176ae2af7"/>
<listType typeId="9c74798b-2430-4cda-97f2-44472b8d59ac" valueTypeId="a6c9e1ae-11c9-4e53-9157-eb648ef81567"/>
<managerType typeId="9f615ee8-8711-4ca9-98d0-f0a258dcdfd2" valueTypeId="78f05877-ade5-4bbd-965c-fc1569544124"/>
<routePointRef typeId="35f39a4f-8a59-4b48-aa38-ef5f2640d375" valueTypeId="95eb9992-fb45-4346-80f0-716fadb2c664"/>
</producedTypes>
<name>Задание</name>
<synonym>
<key>ru</key>
<value>Задание</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>BusinessProcess.Задание.StandardAttribute.Number</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Started</name>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>HeadTask</name>
<fillValue xsi:type="core:ReferenceValue">
<value>Task.ЗадачаИсполнителя.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Completed</name>
<synonym>
<key>ru</key>
<value>Завершено</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Задание завершено</value>
</toolTip>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Date</name>
<toolTip>
<key>ru</key>
<value>Дата выдачи задания</value>
</toolTip>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Number</name>
<toolTip>
<key>ru</key>
<value>Номер задания</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value> </value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<basedOn>Catalog.Файлы</basedOn>
<basedOn>Catalog.Пользователи</basedOn>
<basedOn>Task.ЗадачаИсполнителя</basedOn>
<createOnInput>DontUse</createOnInput>
<includeHelpInContents>true</includeHelpInContents>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<dataLockFields>BusinessProcess.Задание.Attribute.ГлавнаяЗадача</dataLockFields>
<dataLockFields>BusinessProcess.Задание.StandardAttribute.HeadTask</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<listPresentation>
<key>ru</key>
<value>Задания</value>
</listPresentation>
<explanation>
<key>ru</key>
<value>Задание для исполнителя</value>
</explanation>
<editType>InDialog</editType>
<defaultObjectForm>BusinessProcess.Задание.Form.ФормаБизнесПроцесса</defaultObjectForm>
<defaultListForm>BusinessProcess.Задание.Form.ФормаСписка</defaultListForm>
<numberType>String</numberType>
<numberLength>11</numberLength>
<numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<task>Task.ЗадачаИсполнителя</task>
<createTaskInPrivilegedMode>true</createTaskInPrivilegedMode>
<attributes uuid="a76b1fd1-ba00-40e6-8756-f17fee449818">
<name>Автор</name>
<synonym>
<key>ru</key>
<value>Автор</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользователь, выдавший задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<createOnInput>Use</createOnInput>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Пользователи.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5c913626-48d1-4e0a-a423-64078ce59c7b">
<name>Важность</name>
<synonym>
<key>ru</key>
<value>Важность</value>
</synonym>
<comment>Важность задач точки действия Выполнить для исполнителя</comment>
<type>
<types>EnumRef.ВариантыВажностиЗадачи</types>
</type>
<toolTip>
<key>ru</key>
<value>Важность задания для его исполнителей</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<quickChoice>Use</quickChoice>
<createOnInput>DontUse</createOnInput>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>Enum.ВариантыВажностиЗадачи.EnumValue.Обычная</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="0a4e6b7a-b380-4547-bc3c-5d6895a5d19a">
<name>Выполнено</name>
<synonym>
<key>ru</key>
<value>Выполнено</value>
</synonym>
<comment>Результат выполнения задания после завершения бизнес-процесса.</comment>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Результат выполнения задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="7b0ec304-1904-413e-a9c6-ff62e87107dd">
<name>ГлавнаяЗадача</name>
<synonym>
<key>ru</key>
<value>Главная задача</value>
</synonym>
<type>
<types>TaskRef.ЗадачаИсполнителя</types>
</type>
<toolTip>
<key>ru</key>
<value>Главная задача для данного задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="d4dd8c96-914d-496f-b735-ef85ec473605">
<name>ДатаЗавершения</name>
<synonym>
<key>ru</key>
<value>Дата завершения</value>
</synonym>
<comment>Фактическая дата завершения бизнес-процесса</comment>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Фактическая дата завершения выполнения задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="62517db4-59e6-4945-bcd6-b3f1845572bf">
<name>Исполнитель</name>
<synonym>
<key>ru</key>
<value>Исполнитель</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.РолиИсполнителей</types>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользователь, которому поручено выполнять задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a6a9dd40-24cd-4d40-a12d-44f94f8c05a7">
<name>Наименование</name>
<synonym>
<key>ru</key>
<value>Задание</value>
</synonym>
<comment>АПК:58 - Описание задания</comment>
<type>
<types>String</types>
<stringQualifiers>
<length>250</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Краткое описание задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="f0f72149-0e7f-441a-b70d-8f47d4977927">
<name>НаПроверке</name>
<synonym>
<key>ru</key>
<value>На проверке</value>
</synonym>
<comment>Признак того, что указан проверяющий по задаче</comment>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Требуется этап проверки данного задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="776efc3e-ac27-4550-bafd-6e91aa987af2">
<name>НомерИтерации</name>
<synonym>
<key>ru</key>
<value>Номер итерации</value>
</synonym>
<comment>Количество циклов бизнес-процесса между исполнителем и проверяющим</comment>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Количество итераций задания между исполнителем и проверяющим</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:NumberValue">
<value>0</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9f478c85-b72c-40ae-aa08-7ddf73b5b15c">
<name>Подтверждено</name>
<synonym>
<key>ru</key>
<value>Подтверждено</value>
</synonym>
<comment>Внутреннее состояние бизнес-процесса</comment>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Признак того, что проверяющий подтвердил результат выполнения задачи ее исполнителей (служебный реквизит)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="cc438366-85ea-48be-8b74-d05cddb1fc51">
<name>Предмет</name>
<synonym>
<key>ru</key>
<value>Предмет</value>
</synonym>
<comment>Объект системы, &quot;по поводу&quot; которого был создан бизнес-процесс.</comment>
<type>
<types>DefinedType.ПредметЗадачи</types>
</type>
<toolTip>
<key>ru</key>
<value>Объект приложения, по поводу которого введено задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4688fd3b-4a92-4ed8-b111-0cf22a729b1c">
<name>Проверяющий</name>
<synonym>
<key>ru</key>
<value>Проверяющий</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.РолиИсполнителей</types>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользователь, выполняющий проверку задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Пользователи.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="92029d1f-0472-4aaa-8fd6-9fb3c3cf414e">
<name>РезультатВыполнения</name>
<synonym>
<key>ru</key>
<value>Результат выполнения</value>
</synonym>
<comment>История переписки исполнителя и проверяющего</comment>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>История переписки по заданию</value>
</toolTip>
<multiLine>true</multiLine>
<extendedEdit>true</extendedEdit>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3271b800-1825-422f-97bb-757baf403e90">
<name>Содержание</name>
<synonym>
<key>ru</key>
<value>Содержание</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Содержание задания</value>
</toolTip>
<multiLine>true</multiLine>
<extendedEdit>true</extendedEdit>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="6fd6efc1-facc-4ece-a5b3-3dce6acca81d">
<name>Состояние</name>
<synonym>
<key>ru</key>
<value>Состояние</value>
</synonym>
<type>
<types>EnumRef.СостоянияБизнесПроцессов</types>
</type>
<toolTip>
<key>ru</key>
<value>Текущее состояние бизнес-процесса (служебный реквизит)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>Enum.СостоянияБизнесПроцессов.EnumValue.Активен</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4ee82868-7a20-4c3a-91f9-42a6bf53ac37">
<name>СрокИсполнения</name>
<synonym>
<key>ru</key>
<value>Срок исполнения</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Плановый срок выполнения задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a040c756-4687-4bfd-a690-b122d3c490e5">
<name>СрокПроверки</name>
<synonym>
<key>ru</key>
<value>Срок проверки</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Плановый срок проверки задания</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="bd5940d5-13fd-4f59-bb6c-614f93f9c8e4">
<name>АвторСтрокой</name>
<synonym>
<key>ru</key>
<value>Автор строкой</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Имя пользователя, выдавшего задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="961a9801-3956-4ea0-b0d3-908f09bf4929">
<name>ВнешнееЗадание</name>
<synonym>
<key>ru</key>
<value>Внешнее задание</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Признак того, что задание внешнее (направлено пользователю другой программы)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="6fac5c14-e126-4342-9078-edf1d0efcbf2">
<name>ЗадачаИсточник</name>
<synonym>
<key>ru</key>
<value>Задача источник</value>
</synonym>
<type>
<types>TaskRef.ЗадачаИсполнителя</types>
</type>
<toolTip>
<key>ru</key>
<value>Исходная задача, для которой в другой программе запущено внешнее задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="0a3325a1-21c4-4997-882f-4ac2edc175f0">
<name>СодержаниеПредмета</name>
<synonym>
<key>ru</key>
<value>Содержание предмета</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Содержание предмета в формате HTML или MXL</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="71102d3f-f020-4d6f-9582-9a7eefb4e797">
<name>ОсновнойОбъектАдресации</name>
<synonym>
<key>ru</key>
<value>Основной объект адресации</value>
</synonym>
<type>
<types>Characteristic.ОбъектыАдресацииЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Уточняет роль, которой поручено выполнять задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="53ef6849-a3f3-4171-9167-f349f2d6a736">
<name>ОсновнойОбъектАдресацииПроверяющий</name>
<synonym>
<key>ru</key>
<value>Основной объект адресации (проверяющий)</value>
</synonym>
<type>
<types>Characteristic.ОбъектыАдресацииЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Уточняет роль, которой поручено проверять задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3f588bd3-d461-42b7-8ab1-386af6399d56">
<name>ДополнительныйОбъектАдресации</name>
<synonym>
<key>ru</key>
<value>Дополнительный объект адресации</value>
</synonym>
<type>
<types>Characteristic.ОбъектыАдресацииЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Уточняет роль, которой поручено выполнять задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1">
<name>ДополнительныйОбъектАдресацииПроверяющий</name>
<synonym>
<key>ru</key>
<value>Дополнительный объект адресации (проверяющий)</value>
</synonym>
<type>
<types>Characteristic.ОбъектыАдресацииЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Уточняет роль, которой поручено проверять задание</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="8c576405-29c1-46b1-ab2e-40e52c21cab0">
<name>ГруппаИсполнителейЗадач</name>
<synonym>
<key>ru</key>
<value>Группа исполнителей задач</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.Пользователи</types>
<types>CatalogRef.ГруппыИсполнителейЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Сведения для ограничения прав доступа (служебный реквизит)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b33a89da-8589-4902-83fa-6545e5fce23e">
<name>ГруппаИсполнителейЗадачПроверяющий</name>
<synonym>
<key>ru</key>
<value>Группа исполнителей задач (проверяющий)</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.Пользователи</types>
<types>CatalogRef.ГруппыИсполнителейЗадач</types>
</type>
<toolTip>
<key>ru</key>
<value>Сведения для ограничения прав доступа (служебный реквизит)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="f0620d5a-e1fe-419f-af37-e0f462f97e8d">
<name>ДействиеВыполнить</name>
<synonym>
<key>ru</key>
<value>Действие выполнить</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="3e2f2ae1-c809-43fc-8276-b0a16a92858c">
<name>ДействиеПроверить</name>
<synonym>
<key>ru</key>
<value>Действие проверить</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="b58942ca-1367-4e1d-b5b4-7d973d0fecd8">
<name>ФормаБизнесПроцесса</name>
<synonym>
<key>ru</key>
<value>Форма бизнес-процесса</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="1a7c7427-bead-4655-9dd6-df6e722663c5">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:BusinessProcess>

View File

@ -0,0 +1,802 @@
<?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:FormGroup">
<name>ЦелаяЧасть</name>
<id>100</id>
<items xsi:type="form:FormField">
<name>ЦелаяЧастьЕдинственноеЧисло</name>
<id>104</id>
<title>
<key>ru</key>
<value>Один</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ЦелаяЧастьЕдинственноеЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ЦелаяЧастьЕдинственноеЧислоРасширеннаяПодсказка</name>
<id>106</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЦелаяЧастьЕдинственноеЧислоКонтекстноеМеню</name>
<id>105</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>ПолеВводаИзменениеТекстаРедактирования</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ЦелаяЧастьМножественноеЧисло</name>
<id>107</id>
<title>
<key>ru</key>
<value>Два</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ЦелаяЧастьМножественноеЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ЦелаяЧастьМножественноеЧислоРасширеннаяПодсказка</name>
<id>109</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЦелаяЧастьМножественноеЧислоКонтекстноеМеню</name>
<id>108</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>ПолеВводаИзменениеТекстаРедактирования</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Целая часть</value>
</title>
<extendedTooltip>
<name>ЦелаяЧастьРасширеннаяПодсказка</name>
<id>101</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>true</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ДробнаяЧасть</name>
<id>102</id>
<items xsi:type="form:FormField">
<name>ДробнаяЧастьЕдинственноеЧисло</name>
<id>110</id>
<title>
<key>ru</key>
<value>Один</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДробнаяЧастьЕдинственноеЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДробнаяЧастьЕдинственноеЧислоРасширеннаяПодсказка</name>
<id>112</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДробнаяЧастьЕдинственноеЧислоКонтекстноеМеню</name>
<id>111</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>ПолеВводаИзменениеТекстаРедактирования</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДробнаяЧастьМножественноеЧисло</name>
<id>113</id>
<title>
<key>ru</key>
<value>Два</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДробнаяЧастьМножественноеЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДробнаяЧастьМножественноеЧислоРасширеннаяПодсказка</name>
<id>115</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДробнаяЧастьМножественноеЧислоКонтекстноеМеню</name>
<id>114</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>ПолеВводаИзменениеТекстаРедактирования</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Дробная часть</value>
</title>
<extendedTooltip>
<name>ДробнаяЧастьРасширеннаяПодсказка</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>true</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаЧислоРазрядовДробнойЧасти</name>
<id>56</id>
<items xsi:type="form:FormField">
<name>ДлинаДробнойЧасти</name>
<id>20</id>
<title>
<key>ru</key>
<value>Число разрядов дробной части</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДлинаДробнойЧасти</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДлинаДробнойЧастиРасширеннаяПодсказка</name>
<id>96</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлинаДробнойЧастиКонтекстноеМеню</name>
<id>33</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>15</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<listChoiceMode>true</listChoiceMode>
<choiceList>
<presentation>
<key>ru</key>
<value>2 знака</value>
</presentation>
<value xsi:type="core:StringValue">
<value>2</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>1 знак</value>
</presentation>
<value xsi:type="core:StringValue">
<value>1</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>3 знака</value>
</presentation>
<value xsi:type="core:StringValue">
<value>3</value>
</value>
</choiceList>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Число разрядов дробной части</value>
</title>
<extendedTooltip>
<name>ГруппаЧислоРазрядовДробнойЧастиРасширеннаяПодсказка</name>
<id>95</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПримерПрописи</name>
<id>61</id>
<items xsi:type="form:FormField">
<name>СуммаЧисло</name>
<id>59</id>
<title>
<key>ru</key>
<value>Сумма</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СуммаЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПолеВводаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>СуммаЧислоРасширеннаяПодсказка</name>
<id>98</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СуммаЧислоКонтекстноеМеню</name>
<id>60</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СуммаПрописью</name>
<id>62</id>
<title>
<key>ru</key>
<value>Сумма прописью</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СуммаПрописью</segments>
</dataPath>
<extendedTooltip>
<name>СуммаПрописьюРасширеннаяПодсказка</name>
<id>99</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СуммаПрописьюКонтекстноеМеню</name>
<id>63</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пример прописи суммы</value>
</title>
<extendedTooltip>
<name>ГруппаПримерПрописиРасширеннаяПодсказка</name>
<id>97</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>true</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗаписатьИЗакрыть</name>
<id>116</id>
<title>
<key>ru</key>
<value>Записать и закрыть</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаписатьИЗакрытьРасширеннаяПодсказка</name>
<id>117</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ЗаписатьИЗакрыть</commandName>
<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>118</id>
<title>
<key>ru</key>
<value>Записать</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаписатьРасширеннаяПодсказка</name>
<id>119</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Записать</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Abort</excludedCommands>
<excludedCommands>Close</excludedCommands>
<excludedCommands>CustomizeForm</excludedCommands>
<excludedCommands>Ignore</excludedCommands>
<excludedCommands>No</excludedCommands>
<excludedCommands>OK</excludedCommands>
<excludedCommands>RestoreValues</excludedCommands>
<excludedCommands>Retry</excludedCommands>
<excludedCommands>SaveValues</excludedCommands>
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ДлинаДробнойЧасти</name>
<title>
<key>ru</key>
<value>Число разрядов дробной части</value>
</title>
<id>11</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>СуммаЧисло</name>
<title>
<key>ru</key>
<value>Сумма число</value>
</title>
<id>12</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<scale>2</scale>
<nonNegative>true</nonNegative>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>СуммаПрописью</name>
<title>
<key>ru</key>
<value>Сумма прописью</value>
</title>
<id>13</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>1</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>2</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>
<attributes>
<name>ДробнаяЧастьМножественноеЧисло</name>
<title>
<key>ru</key>
<value>Дробная часть множественное число</value>
</title>
<id>4</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>Auto</currentRowUse>
</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>Auto</currentRowUse>
</formCommands>
<parameters>
<name>ПараметрыПрописи</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>КодЯзыка</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,14 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Для того чтобы в печатных формах правильно указывалось наименование валюты прописью, необходимо задать параметры прописи целой и дробной части валюты.</p>
<p>Открывается по ссылке из окна валюты.</p>
<ul><li><strong>Целая часть</strong> - укажите параметры склонения целой части валюты: <strong>Род</strong> и соответствующие шаблоны склонения в единственном и множественном числе.
</li>
<li><strong>Дробная часть</strong> - укажите параметры склонения дробной части валюты: <strong>Род</strong> и соответствующие шаблоны склонения в единственном и множественном числе.
</li>
<li><strong>Число разрядов дробной части</strong> - в случае если дробная часть в печатных формах отображается числом, то можно установить нужное количество разрядов при выводе печатных форм документов. Например, если установлено количество разрядов 1 знак, то сумма по документу будет отображена, как 150,2 евро, а если 2 знака, то 150,20 евро.
</li>
<li><strong>Пример прописи суммы</strong> - число, введенное в поле <strong>Сумма</strong>, будет написано по указанным параметрам прописи валюты. Используйте эту возможность для проверки параметров прописи валюты.</li></ul><p>Параметры прописи валюты заполнены по умолчанию для основных валют: <strong>рубль</strong>, <strong>Евро</strong>, <strong>доллар</strong>. Для остальных валют их необходимо заполнить самостоятельно.</p>
<h3>См. также: </h3>
<ul><li><a href="Catalog.Валюты/Help">Валюты</a>
</li>
<li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,138 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПрочитатьПараметрыПрописи();
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ГруппаПримерПрописи.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево;
Элементы.СуммаПрописью.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;
Элементы.СуммаПрописью.Высота = 2;
Элементы.СуммаПрописью.МногострочныйРежим = Истина;
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СуммаЧисло = 123.45;
УстановитьСуммуПрописью();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПолеВводаПриИзменении(Элемент)
Модифицированность = Истина;
УстановитьСуммуПрописью();
ОповеститьВладельца();
КонецПроцедуры
&НаКлиенте
Процедура ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ОповеститьВладельца(Истина, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Записать(Команда)
ОповеститьВладельца(Истина);
Модифицированность = ВладелецФормы.Модифицированность;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыПрописи(Форма)
ПараметрыПрописи = Новый Массив;
ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьЕдинственноеЧисло);
ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьМножественноеЧисло);
ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьЕдинственноеЧисло);
ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьМножественноеЧисло);
ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти);
Возврат СтрСоединить(ПараметрыПрописи, ", ");
КонецФункции
&НаКлиенте
Процедура УстановитьСуммуПрописью()
Если ЗначениеЗаполнено(Параметры.КодЯзыка) Тогда
СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + Параметры.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи(ЭтотОбъект)); // АПК:1357
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьПараметрыПрописи()
ПараметрыПрописи = СтрРазделить(Параметры.ПараметрыПрописи, ",", Истина);
Если ПараметрыПрописи.Количество() <> 5 Тогда
Возврат;
КонецЕсли;
ЦелаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[0]);
ЦелаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[1]);
ДробнаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[2]);
ДробнаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[3]);
ДлинаДробнойЧасти = ОчиститьСтрокуСЧисломОтПостороннихСимволов(ПараметрыПрописи[4]);
КонецПроцедуры
&НаСервере
Функция ОчиститьСтрокуСЧисломОтПостороннихСимволов(СтрокаСЧислом)
ПосторонниеСимволы = СтрСоединить(СтрРазделить(СтрокаСЧислом, "0123456789", Ложь), "");
Возврат СтрСоединить(СтрРазделить(СтрокаСЧислом, ПосторонниеСимволы, Ложь), "");
КонецФункции
&НаКлиенте
Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
ПараметрыПрописи = Новый Структура;
ПараметрыПрописи.Вставить("КодЯзыка", Параметры.КодЯзыка);
ПараметрыПрописи.Вставить("ПараметрыПрописи", ПараметрыПрописи(ЭтотОбъект));
ПараметрыПрописи.Вставить("Записать", Записать);
ПараметрыПрописи.Вставить("Закрыть", Закрыть);
Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,516 @@
<?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">
<title>
<key>ru</key>
<value>Параметры прописи</value>
</title>
<items xsi:type="form:FormGroup">
<name>ГруппаЯзыки</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Языки</value>
</title>
<extendedTooltip>
<name>ГруппаЯзыкиРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Страницы</name>
<id>17</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<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>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<handlers>
<event>OnCurrentPageChange</event>
<name>СтраницыПриСменеСтраницы</name>
</handlers>
<pagesRepresentation>TabsOnLeftHorizontal</pagesRepresentation>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПримерПрописи</name>
<id>19</id>
<items xsi:type="form:FormField">
<name>СуммаЧисло</name>
<id>21</id>
<title>
<key>ru</key>
<value>Сумма</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СуммаЧисло</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>СуммаЧислоПриИзменении</name>
</handlers>
<extendedTooltip>
<name>СуммаЧислоРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СуммаЧислоКонтекстноеМеню</name>
<id>22</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СуммаПрописью</name>
<id>24</id>
<title>
<key>ru</key>
<value>Сумма прописью</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СуммаПрописью</segments>
</dataPath>
<titleLocation>Left</titleLocation>
<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>
<contextMenu>
<name>СуммаПрописьюКонтекстноеМеню</name>
<id>25</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пример прописи суммы</value>
</title>
<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>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>true</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗаписатьИЗакрыть</name>
<id>27</id>
<title>
<key>ru</key>
<value>Записать и закрыть</value>
</title>
<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.Command.ЗаписатьИЗакрыть</commandName>
<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>29</id>
<title>
<key>ru</key>
<value>Записать</value>
</title>
<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.Command.Записать</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<height>15</height>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ОсновнойЯзык</name>
<id>1</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>Языки</name>
<id>3</id>
<valueType>
<types>ValueTable</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<columns>
<name>КодЯзыка</name>
<id>1</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Представление</name>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Имя</name>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>32</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Суффикс</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ФормаРедактирования</name>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Страница</name>
<id>6</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>МультиязычныеСтрокиВРеквизитах</name>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>СуммаПрописью</name>
<title>
<key>ru</key>
<value>Сумма прописью</value>
</title>
<id>4</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>5</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<scale>2</scale>
<nonNegative>true</nonNegative>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<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>Auto</currentRowUse>
</formCommands>
<formCommands>
<name>ЗаписатьИЗакрыть</name>
<title>
<key>ru</key>
<value>Записать и закрыть</value>
</title>
<id>3</id>
<toolTip>
<key>ru</key>
<value>Записать и закрыть</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ЗаписатьИЗакрыть</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
</formCommands>
<parameters>
<name>ИмяРеквизита</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>Представления</name>
<valueType/>
</parameters>
<parameters>
<name>ТекущееЗначение</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ТолькоПросмотр</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>Если в приложении ведется работа на нескольких языках, то параметры прописи валюты можно вводить на всех используемых языках.
<div>После перевода параметров прописи появляется возможность формировать на нужных языках печатные формы, содержащие суммы, записанные прописью, например, "<b>One hundred twenty three dollars 45 cents</b>".</div>
<div>Для перехода к редактированию параметров прописей на нужном языке необходимо выбрать соответствующий пункт в подменю <b>Параметры прописи</b> в карточке валюты.</div>
<div><br></div></body></html>

View File

@ -0,0 +1,550 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НаборЯзыков = Новый ТаблицаЗначений;
НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10));
НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150));
ДоступныеЯзыки = Новый Массив;
Для Каждого Язык Из Метаданные.Языки Цикл
ДоступныеЯзыки.Добавить(Язык.КодЯзыка);
КонецЦикла;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда
МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность");
ДоступныеЯзыки = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки();
КонецЕсли;
Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл
НовыйЯзык = НаборЯзыков.Добавить();
НовыйЯзык.КодЯзыка = КодЯзыка;
НовыйЯзык.Представление = РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка);
КонецЦикла;
ИмеющиесяЯзыкиВводаПрописей = ИмеющиесяЯзыкиВводаПрописей();
Для Каждого ЯзыкКонфигурации Из НаборЯзыков Цикл
Если ИмеющиесяЯзыкиВводаПрописей.Найти(ЯзыкКонфигурации.КодЯзыка) <> Неопределено Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = Языки.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации);
НоваяСтрока.Имя = "Язык_" + ЯзыкКонфигурации.КодЯзыка;
КонецЦикла;
СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр);
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
ОписаниеЯзыка = ОписаниеЯзыка(ОсновнойЯзык);
Если ОписаниеЯзыка <> Неопределено Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
КонецЕсли;
Для Каждого Представление Из Параметры.Представления Цикл
ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка);
Если ОписаниеЯзыка <> Неопределено Тогда
Если СтрСравнить(ОписаниеЯзыка.КодЯзыка, ОсновнойЯзык) = 0 Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение),
Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]);
Иначе
ЭтотОбъект[ОписаниеЯзыка.Имя] = Представление[Параметры.ИмяРеквизита];
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СуммаЧисло = 123.45;
УстановитьСуммуПрописью();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
УстановитьСуммуПрописью();
КонецПроцедуры
&НаКлиенте
Процедура СуммаЧислоПриИзменении(Элемент)
УстановитьСуммуПрописью();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаПриИзменении(Элемент)
Модифицированность = Истина;
УстановитьСуммуПрописью();
ОповеститьВладельца();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ОповеститьВладельца(Истина, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Записать(Команда)
ОповеститьВладельца(Истина);
Модифицированность = ВладелецФормы.Модифицированность;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СформироватьПоляВводаНаРазныхЯзыках(МногострочныйРежим, ТолькоПросмотр)
Добавлять = Новый Массив;
ТипСтрока = Новый ОписаниеТипов("Строка");
Для Каждого ЯзыкКонфигурации Из Языки Цикл
Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока, ,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Параметры прописи для языка %1'"),
ЯзыкКонфигурации.Представление)));
Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока, ,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"),
ЯзыкКонфигурации.Представление)));
КонецЦикла;
ИзменитьРеквизиты(Добавлять);
РодительЭлементов = Элементы.Страницы;
Для Каждого ЯзыкКонфигурации Из Языки Цикл
Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0
И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда
Страница = Элементы.Вставить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов,
РодительЭлементов.ПодчиненныеЭлементы.Получить(0));
Иначе
Страница = Элементы.Добавить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов);
КонецЕсли;
ЯзыкКонфигурации.Страница = Страница.Имя;
Страница.Вид = ВидГруппыФормы.Страница;
Страница.Заголовок = ЯзыкКонфигурации.Представление;
ПолеВвода = Элементы.Добавить(ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
ПолеВвода.ПутьКДанным = ЯзыкКонфигурации.Имя;
Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда
ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи;
ПолеВвода.Гиперссылка = Истина;
ПолеВвода.УстановитьДействие("Нажатие", "Подключаемый_Нажатие");
Иначе
ПолеВвода.Вид = ВидПоляФормы.ПолеВвода;
ПолеВвода.Ширина = 40;
ПолеВвода.МногострочныйРежим = МногострочныйРежим;
ПолеВвода.ТолькоПросмотр = ТолькоПросмотр;
ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПолеВвода.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеВводаПриИзменении");
ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования",
одключаемый_ПолеВводаИзменениеТекстаРедактирования");
Подсказка = ПодсказкаЗаполненияПараметровПрописей(ЯзыкКонфигурации.КодЯзыка);
ПолеВвода.ПодсказкаВвода = Подсказка.ПодсказкаВвода;
ПодсказкаВвода = Элементы.Добавить("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
ПодсказкаВвода.ПутьКДанным = "ПодсказкаВвода" + ЯзыкКонфигурации.Имя;
ПодсказкаВвода.Вид = ВидПоляФормы.ПолеВвода;
ПодсказкаВвода.ТолькоПросмотр = Истина;
ПодсказкаВвода.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
ПодсказкаВвода.РастягиватьПоВертикали = Истина;
ПодсказкаВвода.АвтоМаксимальнаяВысота = Ложь;
ПодсказкаВвода.МногострочныйРежим = Истина;
ПодсказкаВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПодсказкаВвода.ЦветРамки = ЦветаСтиля.ЦветФонаФормы;
Если Не ЗначениеЗаполнено(Подсказка.Инструкция) Тогда
Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'");
КонецЕсли;
ЭтотОбъект["ПодсказкаВвода" + ЯзыкКонфигурации.Имя] = Подсказка.Инструкция;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ОписаниеЯзыка(КодЯзыка)
Отбор = Новый Структура("КодЯзыка", КодЯзыка);
НайденныеЭлементы = Языки.НайтиСтроки(Отбор);
Если НайденныеЭлементы.Количество() > 0 Тогда
Возврат НайденныеЭлементы[0];
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаКлиенте
Процедура УстановитьСуммуПрописью()
ТекущийЯзык = ОписаниеТекущегоЯзыка();
Если ТекущийЯзык = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыПрописи = ЭтотОбъект[ТекущийЯзык.Имя];
СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + ТекущийЯзык.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1357
КонецПроцедуры
&НаКлиенте
Функция ОписаниеТекущегоЯзыка()
ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
Если ТекущаяСтраница = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Языки.НайтиСтроки(Новый Структура("Страница", ТекущаяСтраница.Имя))[0];
КонецФункции
&НаКлиенте
Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
ТекущийЯзык = ОписаниеТекущегоЯзыка();
ПараметрыПрописи = Новый Структура;
ПараметрыПрописи.Вставить("КодЯзыка", ТекущийЯзык.КодЯзыка);
ПараметрыПрописи.Вставить("ПараметрыПрописи", ЭтотОбъект[ТекущийЯзык.Имя]);
ПараметрыПрописи.Вставить("Записать", Записать);
ПараметрыПрописи.Вставить("Закрыть", Закрыть);
Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
КонецПроцедуры
&НаСервере
Функция ИмеющиесяЯзыкиВводаПрописей()
Возврат РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей().ВыгрузитьЗначения();
КонецФункции
&НаСервере
Функция ПодсказкаЗаполненияПараметровПрописей(Знач КодЯзыка)
Результат = Новый Структура;
Результат.Вставить("Инструкция", "");
Результат.Вставить("ПодсказкаВвода", "");
Если Не ЗначениеЗаполнено(КодЯзыка) Тогда
Возврат Результат;
КонецЕсли;
КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
Если КодЯзыка = "ru" Или КодЯзыка = "be" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для русского и белорусского языков (ru_RU, be_BY):
|
|рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2
|
|""рубль, рубля, рублей, м"" предмет исчисления:
|рубль единственное число именительный падеж;
|рубля единственное число родительный падеж;
|рублей множественное число родительный падеж;
мужской род (ж женский род, с - средний род);
|""копейка, копейки, копеек, ж"" дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2'");
ИначеЕсли КодЯзыка = "uk" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для украинского языка (uk_UA):
|
|гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2
|
|""гривна, гривны, гривен, м"" предмет исчисления:
|""гривна единственное число именительный падеж;
|гривны единственное число родительный падеж;
|гривен множественное число родительный падеж;
мужской род (ж женский род, с - средний род);
|""копейка, копейки, копеек, ж"" дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2'");
ИначеЕсли КодЯзыка = "pl" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для польского языка (pl_PL):
|
|złoty, złote, złotych, m, grosz, grosze, groszy, m, 2
|
|""złoty, złote, złotych, m "" - предмет исчисления (m - мужской род, ż - женский род, ń - средний род, mo личностный мужской род).
|złoty - единственное число именительный падеж;
|złote - единственное число винительный падеж;
|złotych - множественное число винительный падеж;
|m - мужской род (ż - женский род, ń - средний род, mo личностный мужской род);
|""grosz, grosze, groszy, m "" - дробная часть (может отсутствовать) (аналогично целой части);
|2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'złoty, złote, złotych, m, grosz, grosze, groszy, m, 2'");
ИначеЕсли КодЯзыка = "en" Или КодЯзыка = "fr" Или КодЯзыка = "fi" Или КодЯзыка = "kk" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для английского, французского, финского и казахского языков (en_US, fr_CA,fi_FI, kk_KZ):
|
|dollar, dollars, cent, cents, 2
|
|""dollar, dollars"" предмет исчисления в единственном и множественном числе;
|""cent, cents"" дробная часть в единственном и множественном числе (может отсутствовать);
|""2"" количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'dollar, dollars, cent, cents, 2'");
ИначеЕсли КодЯзыка = "de" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для немецкого языка (de_DE):
|
|EURO, EURO, М, Cent, Cent, M, 2
|
|""EURO, EURO, М"" предмет исчисления:
|EURO, EURO предмет исчисления в единственном и множественном числе;
|М мужской род (F женский род, N - средний род);
|""Cent, Cent, M"" дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'EURO, EURO, М, Cent, Cent, M, 2'");
ИначеЕсли КодЯзыка = "lv" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для латышского языка (lv_LV):
|
|lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J
|
|""lats, lati, latu, v"" предмет исчисления:
|lats для чисел заканчивающихся на 1, кроме 11;
|lati для чисел заканчивающихся на 2-9 и 11;
|latu множественное число (родительный падеж) используется после числительных 0, 10, 20,..., 90, 100, 200, ..., 1000, ..., 100000;
|v мужской род (s женский род);
|""santīms, santīmi, santīmu, V"" дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" количество разрядов дробной части (может отсутствовать, по умолчанию равно 2);
|""J"" - число 100 выводится как ""Одна сотня"" для предмета исчисления (N - как ""Сто"");
|может отсутствовать, по умолчанию равно ""J"";
|""J"" - число 100 выводится как ""Одна сотня"" для дробной части (N - как ""Сто"");
|может отсутствовать, по умолчанию равно ""J"".'"));
Результат.ПодсказкаВвода = НСтр("ru = 'lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J'");
ИначеЕсли КодЯзыка = "lt" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для литовского языка (lt_LT):
|
|litas, litai, litų, М, centas, centai, centų, М, 2
|
|""litas, litai, litų, М"" предмет исчисления:
|litas - единственное число целой части;
|litai - множественное число целой части от 2 до 9;
|litų - множественное число целой части прочие;
|m - род целой части (f - женский род),
|""centas, centai, centų, М"" дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'litas, litai, litų, М, centas, centai, centų, М, 2'");
ИначеЕсли КодЯзыка = "et" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для эстонского языка (et_EE):
|
|kroon, krooni, sent, senti, 2
|
|""kroon, krooni"" предмет исчисления в единственном и множественном числе;
|""sent, senti"" дробная часть в единственном и множественном числе (может отсутствовать);
|2 количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'kroon, krooni, sent, senti, 2'");
ИначеЕсли КодЯзыка = "bg" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для болгарского языка (bg_BG):
|
|лев, лева, м, стотинка, стотинки, ж, 2
|
|""лев, лева, м"" предмет исчисления:
|лев - единственное число целой части;
|лева - множественное число целой части;
|м - род целой части,
|""стотинка, стотинки, ж"" - дробная часть:
|стотинка - единственное число дробной части;
|стотинки - множественное число дробной части;
|ж - род дробной части,
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'лев, лева, м, стотинка, стотинки, ж, 2'");
ИначеЕсли КодЯзыка = "ro" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для румынского языка (ro_RO):
|
|leu, lei, M, ban, bani, W, 2
|
|""leu, lei, M"" предмет исчисления:
|leu - единственное число целой части;
|lei - множественное число целой части;
|M - род целой части;
|""ban, bani, W"" - дробная часть:
|ban - единственное число дробной части;
|bani - множественное число дробной части;
|W - род дробной части;
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'leu, lei, M, ban, bani, W, 2'");
ИначеЕсли КодЯзыка = "ka" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для грузинского языка (ka_GE):
|
|ლარი, თეთრი, 2
|
|ლარი - целая часть;
|თეთრი - дробная часть;
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'ლარი, თეთრი, 2'");
ИначеЕсли КодЯзыка = "az" Или КодЯзыка = "tk" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для азербайджанского(az) и туркменского языков(tk):
|
|TL,Kr,2
|
|""TL"" - предмет исчисления;
|""Kr"" - дробная часть (может отсутствовать);
|2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)'"));
Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2'");
ИначеЕсли КодЯзыка = "vi" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для вьетнамского языка (vi_VN):
|
|dong, xu, 2
|
|dong, - целая часть;
|xu, - дробная часть;
|2 - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'dong, xu, 2'");
ИначеЕсли КодЯзыка = "tr" Тогда
//@skip-check module-nstr-camelcase
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для турецкого языка (tr_TR):
|
|TL,Kr,2,Separate
|
|TL - целая часть;
|Kr - дробная часть (может отсутствовать);
|2 - количество разрядов дробной части (может отсутствовать, значение по умолчанию - 2);
|""Separate"" - признак написания прописи раздельно, ""Solid"" - слитно (может отсутствовать, по умолчанию слитно).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2,Separate'");
ИначеЕсли КодЯзыка = "hu" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Перечислите параметры прописи через запятую.
|Образец заполнения для венгерского языка (hu):
|
|Forint, fillér, 2
|
|Forint - целая часть;
|fillér - дробная часть;
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'Forint, fillér, 2'");
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>НаименованиеПолное</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,829 @@
<?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:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>66</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<extendedTooltip>
<name>ГруппаПользовательскихНастроекРасширеннаяПодсказка</name>
<id>67</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>64</id>
<items xsi:type="form:FormGroup">
<name>Создать</name>
<id>77</id>
<items xsi:type="form:Button">
<name>ФормаПодборИзКлассификатора</name>
<id>44</id>
<title>
<key>ru</key>
<value>По классификатору...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПодборИзКлассификатораРасширеннаяПодсказка</name>
<id>51</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПодборИзКлассификатора</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьВалюту</name>
<id>85</id>
<title>
<key>ru</key>
<value>Новую</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СоздатьВалютуРасширеннаяПодсказка</name>
<id>86</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Create</commandName>
<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>
<extendedTooltip>
<name>СоздатьРасширеннаяПодсказка</name>
<id>78</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Popup</type>
<extInfo xsi:type="form:PopupGroupExtInfo">
<representation>Auto</representation>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КомандыФормы</name>
<id>79</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Команды формы</value>
</title>
<extendedTooltip>
<name>КомандыФормыРасширеннаяПодсказка</name>
<id>80</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo">
<commandSource>Form</commandSource>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаЗагрузитьКурсыВалют</name>
<id>87</id>
<items xsi:type="form:Button">
<name>ФормаЗагрузитьКурсыВалют</name>
<id>43</id>
<title>
<key>ru</key>
<value>Загрузить курсы валют...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗагрузитьКурсыВалютРасширеннаяПодсказка</name>
<id>50</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ЗагрузитьКурсыВалют</commandName>
<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>
<extendedTooltip>
<name>ГруппаЗагрузитьКурсыВалютРасширеннаяПодсказка</name>
<id>88</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:Button">
<name>Справка</name>
<id>81</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СправкаРасширеннаяПодсказка</name>
<id>82</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Help</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Addition">
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>СтрокаПоиска</name>
<id>89</id>
<extendedTooltip>
<name>СтрокаПоискаРасширеннаяПодсказка</name>
<id>91</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СтрокаПоискаКонтекстноеМеню</name>
<id>90</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Валюты</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</items>
<items xsi:type="form:Addition">
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>УправлениеПоиском</name>
<id>92</id>
<extendedTooltip>
<name>УправлениеПоискомРасширеннаяПодсказка</name>
<id>94</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>УправлениеПоискомКонтекстноеМеню</name>
<id>93</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Валюты</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>65</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>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Валюты</name>
<id>25</id>
<title>
<key>ru</key>
<value>Валюты</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>НаименованиеПолное</name>
<id>40</id>
<displayImportance>VeryHigh</displayImportance>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.НаименованиеПолное</segments>
</dataPath>
<extendedTooltip>
<name>НаименованиеПолноеРасширеннаяПодсказка</name>
<id>55</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеПолноеКонтекстноеМеню</name>
<id>41</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>20</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>28</id>
<title>
<key>ru</key>
<value>Цифр. код</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Код</segments>
</dataPath>
<extendedTooltip>
<name>КодРасширеннаяПодсказка</name>
<id>53</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КодКонтекстноеМеню</name>
<id>29</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>9</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>32</id>
<title>
<key>ru</key>
<value>Симв. код</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Наименование</segments>
</dataPath>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>54</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>33</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>9</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Курс</name>
<id>38</id>
<displayImportance>VeryHigh</displayImportance>
<title>
<key>ru</key>
<value>Курс</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Курс</segments>
</dataPath>
<extendedTooltip>
<name>КурсРасширеннаяПодсказка</name>
<id>56</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КурсКонтекстноеМеню</name>
<id>39</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>7</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Кратность</name>
<id>36</id>
<title>
<key>ru</key>
<value>Кратность</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Кратность</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Кратность равная единице не отображается</value>
</toolTip>
<extendedTooltip>
<name>КратностьРасширеннаяПодсказка</name>
<id>59</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КратностьКонтекстноеМеню</name>
<id>37</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>7</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>61</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ссылка</segments>
</dataPath>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
<id>63</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>62</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>3</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ВалютыКоманднаяПанель</name>
<id>27</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<name>ВалютыСтрокаПоиска</name>
<id>68</id>
<extendedTooltip>
<name>ВалютыСтрокаПоискаРасширеннаяПодсказка</name>
<id>70</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВалютыСтрокаПоискаКонтекстноеМеню</name>
<id>69</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Валюты</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>ВалютыСостояниеПросмотра</name>
<id>71</id>
<extendedTooltip>
<name>ВалютыСостояниеПросмотраРасширеннаяПодсказка</name>
<id>73</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВалютыСостояниеПросмотраКонтекстноеМеню</name>
<id>72</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Валюты</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>ВалютыУправлениеПоиском</name>
<id>74</id>
<extendedTooltip>
<name>ВалютыУправлениеПоискомРасширеннаяПодсказка</name>
<id>76</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВалютыУправлениеПоискомКонтекстноеМеню</name>
<id>75</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Валюты</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ВалютыРасширеннаяПодсказка</name>
<id>52</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВалютыКонтекстноеМеню</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<representation>HierarchicalList</representation>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<handlers>
<event>OnGetDataAtServer</event>
<name>ВалютыПриПолученииДанныхНаСервере</name>
</handlers>
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>ChoiceProcessing</event>
<name>ОбработкаВыбора</name>
</handlers>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>КоманднаяПанель</value>
</value>
</mobileDeviceCommandBarContent>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Кратность</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Курс</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Наименование</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ссылка</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
Валюты.ПометкаУдаления КАК ПометкаУдаления,
Валюты.Код КАК Код,
Валюты.Наименование КАК Наименование,
Валюты.НаименованиеПолное КАК НаименованиеПолное,
ВЫРАЗИТЬ(NULL КАК ЧИСЛО(10, 2)) КАК Курс,
ВЫРАЗИТЬ(NULL КАК СТРОКА(50)) КАК Кратность,
Валюты.Ссылка КАК Ссылка
ИЗ
Справочник.Валюты КАК Валюты</queryText>
<mainTable>Catalog.Валюты</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</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>
</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>
<functionalOptions>FunctionalOption.СтандартныеПодсистемыВЛокальномРежиме</functionalOptions>
<currentRowUse>DontUse</currentRowUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,115 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Валюты.РежимВыбора = Параметры.РежимВыбора;
ДатаКурса = НачалоДня(ТекущаяДатаСеанса());
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ДатаКурса", ДатаКурса);
ИзменяемыеПоля = Новый Массив;
ИзменяемыеПоля.Добавить("Курс");
ИзменяемыеПоля.Добавить("Кратность");
Список.УстановитьОграниченияИспользованияВГруппировке(ИзменяемыеПоля);
Список.УстановитьОграниченияИспользованияВПорядке(ИзменяемыеПоля);
Список.УстановитьОграниченияИспользованияВОтборе(ИзменяемыеПоля);
ДоступноИзменениеВалют = РаботаСКурсамиВалютСлужебный.ЕстьПравоИзмененияКурсовВалют();
ДоступнаЗагрузкаКурсов = РаботаСКурсамиВалют.ДоступнаЗагрузкаКурсовВалют() И ДоступноИзменениеВалют;
Элементы.ФормаПодборИзКлассификатора.Видимость = ДоступнаЗагрузкаКурсов;
Элементы.ФормаЗагрузитьКурсыВалют.Видимость = ДоступнаЗагрузкаКурсов;
Если Не ДоступнаЗагрузкаКурсов Тогда
Если ДоступноИзменениеВалют Тогда
Элементы.СоздатьВалюту.Заголовок = НСтр("ru = 'Создать'");
КонецЕсли;
Элементы.Создать.Вид = ВидГруппыФормы.ГруппаКнопок;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Элементы.Валюты.Обновить();
Элементы.Валюты.ТекущаяСтрока = РезультатВыбора;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_КурсыВалют" Или ИмяСобытия = "Запись_ЗагрузкаКурсовВалют" Тогда
Элементы.Валюты.Обновить();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыВалюты
&НаСервереБезКонтекста
Процедура ВалютыПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Перем ДатаКурса;
Если Не Настройки.ДополнительныеСвойства.Свойство("ДатаКурса", ДатаКурса) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КурсыВалют.Валюта КАК Валюта,
| КурсыВалют.Курс КАК Курс,
| КурсыВалют.Кратность КАК Кратность
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&КонецПериода, Валюта В (&Валюты)) КАК КурсыВалют";
Запрос.УстановитьПараметр("Валюты", Строки.ПолучитьКлючи());
Запрос.УстановитьПараметр("КонецПериода", ДатаКурса);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаСписка = Строки[Выборка.Валюта];
СтрокаСписка.Данные["Курс"] = Выборка.Курс;
Если Выборка.Кратность <> 1 Тогда
Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'за %1 %2'"),
Выборка.Кратность, СтрокаСписка.Данные["Наименование"]);
СтрокаСписка.Данные["Кратность"] = Пояснение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодборИзКлассификатора(Команда)
ИмяФормыПодбора = "Обработка.ЗагрузкаКурсовВалют.Форма.ПодборВалютИзКлассификатора";
ОткрытьФорму(ИмяФормыПодбора,, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьКурсыВалют(Команда)
ПараметрыФормы = Новый Структура("ОткрытиеИзСписка", Истина);
РаботаСКурсамиВалютКлиент.ПоказатьЗагрузкуКурсовВалют(ПараметрыФормы);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,960 @@
<?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:FormGroup">
<name>ГруппаШапка</name>
<id>150</id>
<items xsi:type="form:FormField">
<name>НаименованиеПолное</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.НаименованиеПолное</segments>
</dataPath>
<extendedTooltip>
<name>НаименованиеПолноеРасширеннаяПодсказка</name>
<id>72</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеПолноеКонтекстноеМеню</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаКодНаименование</name>
<id>148</id>
<items xsi:type="form:FormField">
<name>Код</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Code</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>КодПриИзменении</name>
</handlers>
<extendedTooltip>
<name>КодРасширеннаяПодсказка</name>
<id>75</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КодКонтекстноеМеню</name>
<id>24</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>3</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Description</segments>
</dataPath>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>76</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>22</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>5</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа код и наименование</value>
</title>
<extendedTooltip>
<name>ГруппаКодНаименованиеРасширеннаяПодсказка</name>
<id>149</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ГруппаШапкаРасширеннаяПодсказка</name>
<id>151</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаСпособУстановкиКурса</name>
<id>106</id>
<items xsi:type="form:Decoration">
<name>НадписьКурсВалюты</name>
<id>142</id>
<title>
<key>ru</key>
<value>Курс валюты:</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьКурсВалютыРасширеннаяПодсказка</name>
<id>144</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьКурсВалютыКонтекстноеМеню</name>
<id>143</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КурсВалютыВводитсяВручную</name>
<id>101</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.СпособУстановкиКурса</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>КурсВалютыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>КурсВалютыВводитсяВручнуюРасширеннаяПодсказка</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КурсВалютыВводитсяВручнуюКонтекстноеМеню</name>
<id>102</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<columnsCount>1</columnsCount>
<choiceList>
<presentation>
<key>ru</key>
<value>вводится вручную</value>
</presentation>
<value xsi:type="core:ReferenceValue">
<value>Enum.СпособыУстановкиКурсаВалюты.EnumValue.РучнойВвод</value>
</value>
</choiceList>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КурсВалютыЗагружаетсяИзИнтернета</name>
<id>129</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.СпособУстановкиКурса</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>КурсВалютыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>КурсВалютыЗагружаетсяИзИнтернетаРасширеннаяПодсказка</name>
<id>131</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КурсВалютыЗагружаетсяИзИнтернетаКонтекстноеМеню</name>
<id>130</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<columnsCount>1</columnsCount>
<choiceList>
<presentation>
<key>ru</key>
<value>загружается из Интернета</value>
</presentation>
<value xsi:type="core:ReferenceValue">
<value>Enum.СпособыУстановкиКурсаВалюты.EnumValue.ЗагрузкаИзИнтернета</value>
</value>
</choiceList>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаКурсСвязанСДругойВалютой</name>
<id>138</id>
<items xsi:type="form:FormField">
<name>КурсВалютыСвязанСКурсомДругойВалюты</name>
<id>132</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.СпособУстановкиКурса</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>КурсВалютыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>КурсВалютыСвязанСКурсомДругойВалютыРасширеннаяПодсказка</name>
<id>134</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КурсВалютыСвязанСКурсомДругойВалютыКонтекстноеМеню</name>
<id>133</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<columnsCount>1</columnsCount>
<choiceList>
<presentation>
<key>ru</key>
<value>связан с курсом другой валюты:</value>
</presentation>
<value xsi:type="core:ReferenceValue">
<value>Enum.СпособыУстановкиКурсаВалюты.EnumValue.НаценкаНаКурсДругойВалюты</value>
</value>
</choiceList>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаНаценкаНаКурсДругойВалюты</name>
<id>119</id>
<items xsi:type="form:FormField">
<name>ОсновнаяВалюта</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ОсновнаяВалюта</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ОсновнаяВалютаРасширеннаяПодсказка</name>
<id>81</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОсновнаяВалютаКонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>StartChoice</event>
<name>ОсновнаяВалютаНачалоВыбора</name>
</handlers>
<width>15</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<textEdit>true</textEdit>
<availableTypes>
<types>CatalogRef.Валюты</types>
</availableTypes>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаНаценка</name>
<id>152</id>
<items xsi:type="form:FormField">
<name>Наценка</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Наценка</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Коэффициент, применяемый к курсу выбранной валюты для вычисления курса текущей валюты</value>
</toolTip>
<extendedTooltip>
<name>НаценкаРасширеннаяПодсказка</name>
<id>82</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаценкаКонтекстноеМеню</name>
<id>36</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<footerHorizontalAlign>Left</footerHorizontalAlign>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>7</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<choiceButton>false</choiceButton>
<spinButton>true</spinButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<minValue xsi:type="core:NumberValue">
<value>-99</value>
</minValue>
<maxValue xsi:type="core:NumberValue">
<value>100</value>
</maxValue>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ТекстПроцент</name>
<id>126</id>
<title>
<key>ru</key>
<value>%</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТекстПроцентРасширеннаяПодсказка</name>
<id>128</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстПроцентКонтекстноеМеню</name>
<id>127</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</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>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>ГруппаНаценкаРасширеннаяПодсказка</name>
<id>153</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Наценка на курс другой валюты</value>
</title>
<toolTipRepresentation>None</toolTipRepresentation>
<extendedTooltip>
<name>ГруппаНаценкаНаКурсДругойВалютыРасширеннаяПодсказка</name>
<id>120</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Курс связан с другой валютой</value>
</title>
<extendedTooltip>
<name>ГруппаКурсСвязанСДругойВалютойРасширеннаяПодсказка</name>
<id>139</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаКурсРассчитываетсяПоФормуле</name>
<id>140</id>
<items xsi:type="form:FormField">
<name>КурсВалютыРассчитываетсяПоФормуле</name>
<id>135</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.СпособУстановкиКурса</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>КурсВалютыПриИзменении</name>
</handlers>
<extendedTooltip>
<name>КурсВалютыРассчитываетсяПоФормулеРасширеннаяПодсказка</name>
<id>137</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КурсВалютыРассчитываетсяПоФормулеКонтекстноеМеню</name>
<id>136</id>
<autoFill>true</autoFill>
</contextMenu>
<type>RadioButtonField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
<columnsCount>1</columnsCount>
<choiceList>
<presentation>
<key>ru</key>
<value>рассчитывается по формуле:</value>
</presentation>
<value xsi:type="core:ReferenceValue">
<value>Enum.СпособыУстановкиКурсаВалюты.EnumValue.РасчетПоФормуле</value>
</value>
</choiceList>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ФормулаРасчетаКурса</name>
<id>121</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ФормулаРасчетаКурса</segments>
</dataPath>
<titleLocation>None</titleLocation>
<toolTip>
<key>ru</key>
<value>Курсы других валют в формуле обозначаются в виде наименований, заключенных в квадратные скобки. Пример:
(0.55 * [Доллар США] + 0.45 * [Евро]) / 2</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>ФормулаРасчетаКурсаРасширеннаяПодсказка</name>
<id>123</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ФормулаРасчетаКурсаКонтекстноеМеню</name>
<id>122</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>StartChoice</event>
<name>ФормулаРасчетаКурсаНачалоВыбора</name>
</handlers>
<width>35</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<choiceButton>true</choiceButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Курс рассчитывается по формуле</value>
</title>
<extendedTooltip>
<name>ГруппаКурсРассчитываетсяПоФормулеРасширеннаяПодсказка</name>
<id>141</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<showLeftMargin>true</showLeftMargin>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Способ установки курса</value>
</title>
<extendedTooltip>
<name>ГруппаСпособУстановкиКурсаРасширеннаяПодсказка</name>
<id>107</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ГиперссылкаПараметрыПрописиВалюты</name>
<id>145</id>
<title>
<key>ru</key>
<value>Параметры прописи валюты</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ГиперссылкаПараметрыПрописиВалютыРасширеннаяПодсказка</name>
<id>147</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ГиперссылкаПараметрыПрописиВалютыКонтекстноеМеню</name>
<id>146</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ПараметрыПрописиВалютыНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:FormGroup">
<name>ГруппаПараметрыПрописиВалюты</name>
<id>154</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Параметры прописи</value>
</title>
<extendedTooltip>
<name>ГруппаПараметрыПрописиВалютыРасширеннаяПодсказка</name>
<id>155</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Popup</type>
<extInfo xsi:type="form:PopupGroupExtInfo">
<representation>Auto</representation>
</extInfo>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Объект</name>
<id>1</id>
<valueType>
<types>CatalogObject.Валюты</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ФормыВводаПрописей</name>
<id>14</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>
<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>
<id>15</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>Auto</currentRowUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,65 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Описание свойств используемой валюты.</p>
<p>Валюта широко используется в деятельности любого предприятия: во всех документах, которые имеют дело с денежными суммами (счета, платежные поручения, договоры, накладные) присутствует поле <strong>Валюта</strong>, явно или по умолчанию. Значение поля <strong>Валюта</strong> заполняется в зависимости от направления деятельности предприятия: рубль, иностранная валюта или у.е.</p>
<h3>Основные сведения о валюте</h3>
<div>При добавлении валюты из <a href="DataProcessor.ЗагрузкаКурсовВалют.Form.ПодборВалютИзКлассификатора/Help">Общероссийского классификатора валют</a> следующие поля новой валюты будут заполнены автоматически: </div>
<ul><li>
<div><strong>Наименование валюты</strong> - полное наименование валюты.</div>
</li>
<li>
<div><strong>Цифровой код</strong> - числовой код, служит для идентификации валюты при загрузке курсов из сети Интернет (с портала 1С:ИТС).</div>
</li>
<li>
<div><strong>Символьный код</strong> - используется как краткое наименование и основное представление валюты.</div>
</li>
<li>
<div><strong>Курс валюты</strong> - переключатель установлен в положение <b>з</b><strong>агружается из интернета</strong>, если курс валюты может загружаться с портала 1С:ИТС. </div></li></ul><h3>Особенности использования переключателя Курс валюты</h3>
<ul><li>
<div>Положение переключателя <strong>Курс валюты загружается из интернета</strong> можно изменить в исключительных случаях:</div>
<ul><li>
<div>при добавлении валюты из классификатора (валюты, имеющую возможность загрузки курсов), которую в приложении предполагается использовать как у.е. с установкой курса вручную;</div>
</li>
<li>
<div>по техническим причинам, так как проверка актуальности валют выполняется только для валют с этим флажком.</div></li></ul></li>
<li>
<div>Для отечественной валюты переключатель <strong>Курс валюты</strong> необходимо установить в положение <strong>вводится вручную</strong>, так как курс "относительно себя" всегда равен 1. Например, на Российском предприятии переключатель <strong>Курс валюты</strong> следует установить в положение <strong>вводится вручную</strong> для рубля.</div></li></ul><h3>Зависимость курса валюты от курса другой валюты</h3>
<ul><li>Эта возможность может применяться, например, на предприятии для расчета внутреннего курса какой-либо валюты.
</li>
<li>
<div>Переключатель <strong>Курс валюты</strong> установите в положение <strong>связан с курсом другой валюты</strong>.</div>
</li>
<li>
<div>Выберите из списка или введите валюту, на основании курса которой рассчитывается курс текущей валюты. </div>
</li>
<li>
<div>Укажите <strong>Наценку, %</strong> - коэффициент, который применяется к курсу основной валюты для вычисления курса текущей валюты.</div></li></ul><h3>Расчет по формуле</h3>
<ul><li>Предусмотрена возможность ввести валюту, курс которой зависит от нескольких валют одновременно.
</li>
<li>Для этого переключатель <strong>Курс валюты</strong> установите в положение <strong>рассчитывается по формуле</strong>.
</li>
<li>Задайте способ расчета курса валюты в соответствующем поле, например, <strong>(USD+EUR)/2</strong>.
</li>
<li>Для построения сложных формул можно использовать конструктор, который открывается с помощью кнопки <img src="StdPicture.InputFieldSelect"></img>.</li>
<li>Допустимыми разделителями дробной части чисел в формуле являются знаки точки и запятой, т.е. правильно:
<ul><li><strong>EUR*1.025</strong>
</li>
<li><strong>EUR*1,025</strong></li></ul></li>
<li>Но если возникает необходимость использовать функции с двумя и более параметрами, то параметры следует разделять запятыми, а дробные части чисел - точками, например:
<ul><li><strong>Окр(EUR*1.025,2)</strong></li></ul></li>
<li>Подробнее о правилах построения подобных выражений см. раздел справки <a href="v8help://dcsui/SKD_Lang">Язык выражений системы компоновки данных</a>.</li></ul><h3>Параметры прописи валюты</h3>
<div>
<ul><li>Перейдите по <a href="Catalog.Валюты.Form.ПараметрыПрописиВалюты_en/Help">ссылке</a> и заполните <b>Параметры прописи валюты</b>.</li>
<li>Это необходимо для того, чтобы в печатных документах правильно формировалось наименование валюты прописью.</li></ul></div>
<h3>Просмотр курса валюты</h3>
<ul><li>Для перевода валютных сумм в рубли используется <a href="InformationRegister.КурсыВалют/Help">курс валюты</a>.
</li>
<li>Нажмите <strong>Курсы валют</strong> на панели навигации валюты. Можно установить интервал дат для удобства просмотра курсов.</li></ul><h3>Ввод курса валюты вручную</h3>
<ul><li>Курсы основных валют можно <a href="DataProcessor.ЗагрузкаКурсовВалют/Help">загрузить</a> с портала 1С:ИТС. Если для валюты загрузка невозможна, то переключатель <strong>Курс валюты</strong> автоматически устанавливается в положение <strong>вводится вручную</strong>.
</li>
<li>Для того чтобы заполнить курс вручную:
<ul><li>Нажмите <strong>Курсы валют</strong> на панели навигации валюты.
</li>
<li>Нажмите <strong>Создать</strong>, заполните курс валюты на нужную дату (по умолчанию установлена текущая дата).</li></ul></li></ul><h3>См. также: </h3>
<ul><li><a href="Catalog.Валюты/Help">Валюты</a>
</li>
<li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,360 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.КурсВалютыЗагружаетсяИзИнтернета.Видимость = РаботаСКурсамиВалют.ДоступнаЗагрузкаКурсовВалют();
УстановитьДоступностьЭлементов(ЭтотОбъект);
ЗаполнитьПодменюПараметрыПрописиВалюты();
Элементы.ГиперссылкаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() = 1;
Элементы.ГруппаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() > 1;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ФормулаРасчетаКурса.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу;
Элементы.ОсновнаяВалюта.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
Элементы.ГруппаШапка.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево;
КонецЕсли;
КодыВалют = Новый Массив;
РаботаСКурсамиВалютЛокализация.ПриОпределенииКодовВалютЗагружаемыхИзИнтернета(КодыВалют);
КодыВалютЗагружаемыхИзИнтернета.ЗагрузитьЗначения(КодыВалют);
ДоступнаЗагрузкаИзИнтернета = ЗначениеЗаполнено(Объект.Код) И ЗначениеЗаполнено(КодыВалютЗагружаемыхИзИнтернета)
И КодыВалютЗагружаемыхИзИнтернета.НайтиПоЗначению(Объект.Код) <> Неопределено;
Элементы.КурсВалютыЗагружаетсяИзИнтернета.Доступность = ДоступнаЗагрузкаИзИнтернета;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
ПредставлениеФормулы = МодульКонструкторФормул.ПредставлениеФормулы(ПараметрыФормулы(
Объект.ФормулаРасчетаКурса, УникальныйИдентификатор));
Иначе
Элементы.ФормулаРасчетаКурса.КнопкаВыбора = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = ЭтотОбъект И ИмяСобытия = "ПараметрыПрописиВалюты" Тогда
УстановитьПрописиНаЯзыке(Параметр.ПараметрыПрописи, Параметр.КодЯзыка);
Если Параметр.Записать Тогда
Записать();
Иначе
Модифицированность = Истина;
КонецЕсли;
Если Параметр.Закрыть Тогда
Закрыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
////////////////////////////////////////////////////////////////////////////////
// Страница "Основные сведения".
&НаКлиенте
Процедура ОсновнаяВалютаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПодготовитьДанныеВыбораПодчиненнойВалюты(ДанныеВыбора, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура КурсВалютыПриИзменении(Элемент)
УстановитьДоступностьЭлементов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПараметрыПрописиВалютыНажатие(Элемент)
ОткрытьПараметрыПрописиВалюты(0);
КонецПроцедуры
&НаКлиенте
Процедура КодПриИзменении(Элемент)
ДоступнаЗагрузкаИзИнтернета = ЗначениеЗаполнено(Объект.Код) И ЗначениеЗаполнено(КодыВалютЗагружаемыхИзИнтернета)
И КодыВалютЗагружаемыхИзИнтернета.НайтиПоЗначению(Объект.Код) <> Неопределено;
Элементы.КурсВалютыЗагружаетсяИзИнтернета.Доступность = ДоступнаЗагрузкаИзИнтернета;
Если ДоступнаЗагрузкаИзИнтернета Тогда
Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета");
Иначе
Если Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета") Тогда
Объект.СпособУстановкиКурса = ПредопределенноеЗначение("Перечисление.СпособыУстановкиКурсаВалюты.РучнойВвод");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура ПодготовитьДанныеВыбораПодчиненнойВалюты(ДанныеВыбора, Ссылка)
// Подготавливает список выбора для подчиненной валюты таким образом,
// чтобы в список не попала сама подчиненная валюта.
ДанныеВыбора = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.НаименованиеПолное КАК НаименованиеПолное,
| Валюты.Наименование КАК Наименование
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.Ссылка <> &Ссылка
| И Валюты.ОсновнаяВалюта = ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| Валюты.НаименованиеПолное";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДанныеВыбора.Добавить(Выборка.Ссылка, Выборка.НаименованиеПолное + " (" + Выборка.Наименование + ")");
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементов(Форма)
Элементы = Форма.Элементы;
Объект = Форма.Объект;
Элементы.ГруппаНаценкаНаКурсДругойВалюты.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение(
"Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты");
Элементы.ФормулаРасчетаКурса.Доступность = Объект.СпособУстановкиКурса = ПредопределенноеЗначение(
"Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПрописиНаЯзыке(ПараметрыПрописи, КодЯзыка)
Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
Объект.ПараметрыПрописи = ПараметрыПрописи;
Возврат;
КонецЕсли;
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
НайденнаяСтрока = СтрокаТаблицы;
Прервать;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
НайденнаяСтрока = Объект.Представления.Добавить();
НайденнаяСтрока.КодЯзыка = КодЯзыка;
КонецЕсли;
НайденнаяСтрока.ПараметрыПрописи = ПараметрыПрописи;
КонецПроцедуры
&НаКлиенте
Функция ПараметрыПрописиВалютыНаЯзыке(КодЯзыка)
Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
Возврат Объект.ПараметрыПрописи;
КонецЕсли;
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
НайденнаяСтрока = СтрокаТаблицы;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
Возврат "";
КонецЕсли;
Возврат НайденнаяСтрока.ПараметрыПрописи;
КонецФункции
&НаСервере
Процедура ЗаполнитьПодменюПараметрыПрописиВалюты()
Кнопка = Неопределено;
ФормыВводаПрописей = РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей();
Для Индекс = 0 По ФормыВводаПрописей.Количество() - 1 Цикл
ИмяКоманды = "ПараметрыПрописиВалюты_" + XMLСтрока(Индекс);
КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
Команда = Команды.Добавить(ИмяКоманды);
Если ЗначениеЗаполнено(КодЯзыка) Тогда
Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1...",
РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка));
Иначе
Команда.Заголовок = НСтр("ru = 'На других языках...'");
КонецЕсли;
Команда.Действие = "Подключаемый_ОткрытьФормуПараметрыПрописиВалюты";
Кнопка = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаПараметрыПрописиВалюты);
Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
Кнопка.ИмяКоманды = ИмяКоманды;
КонецЦикла;
КонецПроцедуры
// Параметры:
// Команда - КомандаФормы
//
&НаКлиенте
Процедура Подключаемый_ОткрытьФормуПараметрыПрописиВалюты(Команда)
Индекс = Число(Сред(Команда.Имя, СтрДлина("ПараметрыПрописиВалюты_") + 1));
ОткрытьПараметрыПрописиВалюты(Индекс);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПараметрыПрописиВалюты(Индекс)
ИмяФормыПрописей = ФормыВводаПрописей[Индекс].Представление;
КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
Если ИмяФормыПрописей = "ПараметрыПрописиВалютыНаДругихЯзыках" Тогда
ПараметрыПрописиВалютыНаДругихЯзыках();
Иначе
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПараметрыПрописи", ПараметрыПрописиВалютыНаЯзыке(КодЯзыка));
ПараметрыФормы.Вставить("КодЯзыка", КодЯзыка);
ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект,,, НавигационнаяСсылка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПараметрыПрописиВалютыНаДругихЯзыках(Команда)
ПараметрыПрописиВалютыНаДругихЯзыках();
КонецПроцедуры
&НаКлиенте
Процедура ПараметрыПрописиВалютыНаДругихЯзыках()
ИмяРеквизита = "ПараметрыПрописи";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ИмяРеквизита", ИмяРеквизита);
ПараметрыФормы.Вставить("ТекущееЗначение", Объект.ПараметрыПрописи);
ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыФормы.Вставить("Представления", Объект.Представления);
ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ФормулаРасчетаКурсаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормулКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонструкторФормулКлиент");
СтандартнаяОбработка = Ложь;
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииРедактированияФормулы", ЭтотОбъект);
МодульКонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыФормулы(Объект.ФормулаРасчетаКурса, УникальныйИдентификатор),
ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПараметрыФормулы(ФормулаРасчетаКурса, УникальныйИдентификатор)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
ПараметрыФормулы = МодульКонструкторФормул.ПараметрыРедактированияФормулы();
ПараметрыФормулы.Формула = ФормулаРасчетаКурса;
ПараметрыФормулы.СкобкиОперандов = Ложь;
ПараметрыФормулы.Операнды = ОперандыФормулыРасчетаКурса(УникальныйИдентификатор);
ПараметрыФормулы.Операторы = ОператорыФормулыРасчетаКурса(УникальныйИдентификатор);
Возврат ПараметрыФормулы;
КонецЕсли;
КонецФункции
&НаСервереБезКонтекста
Функция ОперандыФормулыРасчетаКурса(УникальныйИдентификатор)
Возврат ПоместитьВоВременноеХранилище(ТаблицаОперандов(), УникальныйИдентификатор);
КонецФункции
&НаСервереБезКонтекста
Функция ОператорыФормулыРасчетаКурса(УникальныйИдентификатор)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
СписокОператоров = МодульКонструкторФормул.СписокОператоров("Операторы, ЧисловыеФункции");
Возврат ПоместитьВоВременноеХранилище(СписокОператоров, УникальныйИдентификатор);
КонецЕсли;
КонецФункции
&НаСервереБезКонтекста
Функция ТаблицаОперандов()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
ТаблицаОперандов = МодульКонструкторФормул.ТаблицаПолей();
Для Каждого ОписаниеВалюты Из Справочники.Валюты.КодыВалют() Цикл
Операнд = ТаблицаОперандов.Добавить();
Операнд.Идентификатор = ОписаниеВалюты.СимвольныйКод;
Операнд.Представление = ОписаниеВалюты.СимвольныйКод;
Операнд.ТипЗначения = Новый ОписаниеТипов("Число");
КонецЦикла;
Возврат ТаблицаОперандов;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ПриЗавершенииРедактированияФормулы(ОписаниеФормулы, ДополнительныеПараметры) Экспорт
Если ОписаниеФормулы = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ФормулаРасчетаКурса = ОписаниеФормулы.Формула;
ПредставлениеФормулы = ОписаниеФормулы.ПредставлениеФормулы;
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,38 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Список предназначен для ведения валют, используемых в приложении. Необходимые для работы валюты можно подобрать из <a href="DataProcessor.ЗагрузкаКурсовВалют.Form.ПодборВалютИзКлассификатора/Help">Общероссийского классификатора валют</a> - ОКВ (рекомендуется) или добавить вручную.</p>
<p>Открыть список валют можно из раздела <strong>Справочники</strong>.</p>
<p>В списке выводится:</p>
<ul><li>
<div>
<div><strong>Наименование валюты</strong> - полное наименование валюты.</div></div>
</li>
<li>
<div>
<div><strong>Цифр. код</strong> - цифровой код, служит для идентификации валюты при загрузке курсов из сети Интернет. Например, 840 для доллара США.</div></div>
</li>
<li>
<div><strong>Симв. код</strong> - символьный код валюты, используется в качестве представления в полях ввода. Например, EUR (Евро).</div>
</li>
<li><strong>Курс</strong> - значение <a href="InformationRegister.КурсыВалют/Help">курса</a> на текущую дату.
</li>
<li>
<div><strong>Кратность</strong> - по умолчанию заполнено единицей и не выводится. Если курс какой-либо валюты очень низкий (точность составляет меньше четырех знаков дробной части), то в этом поле указывается количество котировочных единиц. Например, курс вьетнамского донга (VND) составляет 16,1574 руб. за 10000 VND. Состоит из трех вспомогательных колонок, в которых размещается данное выражение:</div>
<ul><li>
<div><strong>Кратность</strong> - проставляется количество котировочных единиц.</div></li>
<li>
<div><strong>Краткое наименование</strong> - указывается символьный код валюты</div></li></ul></li></ul><h3>Добавление валюты из Общероссийского классификатора валют (ОКВ)</h3>
<ul><li>
<div>Нажмите <strong>Создать - По классификатору</strong> (рекомендуется для корректного ввода валюты). </div>
</li>
<li>
<div>Следующие поля новой валюты будут заполнены из <a href="DataProcessor.ЗагрузкаКурсовВалют.Form.ПодборВалютИзКлассификатора/Help">классификатора</a> автоматически: <strong>Наименование</strong>, <strong>Символьный код</strong>, <strong>Цифровой код</strong>, положение переключателя <strong>Курс валюты</strong> (будет установлено положение <strong>загружается из интернета</strong>, если имеется возможность загружать курс этой валюты с портала 1С:ИТС). </div></li></ul><h3>Ввод валюты не из классификатора (вручную)</h3>
<ul><li>
<div>Нажмите <strong>Создать - Новую</strong>. Также можно нажать клавишу <strong>Ins</strong>.</div>
</li>
<li>Заполните <a href="Catalog.Валюты.Form.ФормаЭлемента/Help">сведения о валюте</a>.</li></ul><div>
<h3>Загрузка курсов валют</h3>
<ul><li>Нажмите <strong>Загрузить курсы валют</strong> для перехода к <a href="DataProcessor.ЗагрузкаКурсовВалют/Help">загрузке курсов валют</a> с портала 1С:ИТС. </li>
<li>Также в приложении предусмотрено <a href="DataProcessor.РегламентныеИФоновыеЗадания/Help">регламентное задание</a> <strong>Загрузка курсов валют</strong> для автоматической загрузки курсов валют с портала 1С:ИТС.</li>
<li>В приложении в Интернете курсы валют загружаются автоматически.</li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a></div></li></ul></div></body></html>

View File

@ -0,0 +1,198 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("СпособУстановкиКурса");
Результат.Добавить("Наценка");
Результат.Добавить("ОсновнаяВалюта");
Результат.Добавить("ФормулаРасчетаКурса");
Возврат Результат;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция КодыВалют() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.Наименование КАК СимвольныйКод,
| Валюты.НаименованиеПолное КАК Представление
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты)
| И Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)";
Запрос = Новый Запрос(ТекстЗапроса);
Валюты = Запрос.Выполнить().Выгрузить();
КопируемыеСтроки = Новый Массив;
Для Каждого Валюта Из Валюты Цикл
// Валюта участвует в формуле, если символьный код содержит буквы.
Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(Валюта.СимвольныйКод, "0123456789", Ложь), "")) Тогда
КопируемыеСтроки.Добавить(Валюта);
КонецЕсли;
КонецЦикла;
Результат = Валюты.Скопировать(КопируемыеСтроки);
Результат.Индексы.Добавить("Ссылка");
Возврат Результат;
КонецФункции
Функция КурсВалютыПоФормуле(Формула, Период, КодыВалют = Неопределено) Экспорт
Если КодыВалют = Неопределено Тогда
КодыВалют = Справочники.Валюты.КодыВалют();
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.СимвольныйКод КАК СимвольныйКод
|ПОМЕСТИТЬ Валюты
|ИЗ
| &КодыВалют КАК Валюты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Валюты.СимвольныйКод КАК СимвольныйКод,
| ВЫБОР
| КОГДА ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) > 0
| ТОГДА ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1)
| ИНАЧЕ 1
| КОНЕЦ КАК Курс
|ИЗ
| Валюты КАК Валюты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
| ПО (КурсыВалютСрезПоследних.Валюта = Валюты.Ссылка)";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("КодыВалют", КодыВалют);
Запрос.УстановитьПараметр("Период", Период);
Выражение = ФорматироватьЧисла(Формула);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Выражение = СтрЗаменить(Выражение, Выборка.СимвольныйКод, Формат(Выборка.Курс, "ЧРД=.; ЧГ=0"));
КонецЦикла;
Возврат ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение);
КонецФункции
Функция ФорматироватьЧисла(Строка) Экспорт
Результат = "";
Число = "";
ЕстьРазделительВЧисле = Ложь;
ПредыдущийСимвол = "";
ДлинаСтроки = СтрДлина(Строка);
Для Индекс = 1 По ДлинаСтроки Цикл
Если Индекс < ДлинаСтроки Тогда
СледующийСимвол = Сред(Строка, Индекс + 1, 1);
Иначе
СледующийСимвол = "";
КонецЕсли;
Символ = Сред(Строка, Индекс, 1);
ПредыдущийСимволЭтоРазделитель = ПредыдущийСимвол = "" Или СтрНайти("()[]/*-+%=<>, ", ПредыдущийСимвол) > 0;
Если ЭтоЦифра(Символ) И (ПредыдущийСимволЭтоРазделитель Или ЭтоЦифра(ПредыдущийСимвол) И ЗначениеЗаполнено(Число)) Тогда
Число = Число + Символ;
ИначеЕсли Не ЕстьРазделительВЧисле И (Символ = "," Или Символ = ".") И ЭтоЦифра(СледующийСимвол)
И (ЭтоЦифра(ПредыдущийСимвол) Или ПредыдущийСимволЭтоРазделитель) И ЗначениеЗаполнено(Число) Тогда
Число = Число + ".";
ЕстьРазделительВЧисле = Истина;
Иначе
Результат = Результат + Число + Символ;
Число = "";
ЕстьРазделительВЧисле = Ложь;
КонецЕсли;
ПредыдущийСимвол = Символ;
Символ = "";
КонецЦикла;
Результат = Результат + Число + Символ;
Возврат Результат;
КонецФункции
Функция ЭтоЦифра(Символ)
Возврат СтрНайти("1234567890", Символ) > 0;
КонецФункции
// Возвращаемое значение:
// Массив из СправочникСсылка.Валюты
//
Функция ВалютыЗагружаемыеИзИнтернета() Экспорт
УстановитьПривилегированныйРежим(Истина);
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.Код КАК Код
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| НЕ Валюты.ПометкаУдаления
| И Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета)";
Запрос = Новый Запрос(ТекстЗапроса);
Валюты = Запрос.Выполнить().Выгрузить();
КодыВалютЗагружаемыхИзИнтернета = Валюты.ВыгрузитьКолонку("Код");
РаботаСКурсамиВалютЛокализация.ПриОпределенииКодовВалютЗагружаемыхИзИнтернета(КодыВалютЗагружаемыхИзИнтернета);
Результат = Новый Массив;
Для Каждого Валюта Из Валюты Цикл Если КодыВалютЗагружаемыхИзИнтернета.Найти(Валюта.Код) <> Неопределено Тогда
Результат.Добавить(Валюта.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,277 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Наименование КАК СимвольныйКод
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Валюты.Наименование
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса = ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)";
Запрос = Новый Запрос(ТекстЗапроса);
ЗависимыеВалюты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("СимвольныйКод");
Для Каждого Валюта Из ЗависимыеВалюты Цикл
Если СтрНайти(ФормулаРасчетаКурса, Валюта) > 0 Тогда
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ЗначениеЗаполнено(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОсновнаяВалюта, "ОсновнаяВалюта")) Тогда
Отказ = Истина;
КонецЕсли;
Если Отказ Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Курс валюты можно связать только с курсом независимой валюты.'"));
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
ИсключаемыеРеквизиты = Новый Массив;
ИсключаемыеРеквизиты.Добавить("ОсновнаяВалюта");
ИсключаемыеРеквизиты.Добавить("Наценка");
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты);
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
ИсключаемыеРеквизиты = Новый Массив;
ИсключаемыеРеквизиты.Добавить("ФормулаРасчетаКурса");
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты);
КонецЕсли;
Если Не ЭтоНовый() И СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты
И РаботаСКурсамиВалют.СписокЗависимыхВалют(Ссылка).Количество() > 0 Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Валюта не может быть подчиненной, так как она является основной для других валют.'"));
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
КурсЗагружаетсяИзИнтернета = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета;
КурсЗависитОтДругойВалюты = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты;
КурсРассчитываетсяПоФормуле = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле;
Если ЭтоНовый() Тогда
Если КурсЗависитОтДругойВалюты Или КурсРассчитываетсяПоФормуле Тогда
ДополнительныеСвойства.Вставить("ОбновитьКурсы");
КонецЕсли;
ДополнительныеСвойства.Вставить("ЭтоНовый");
ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты");
Иначе
ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
"Код,СпособУстановкиКурса,ОсновнаяВалюта,Наценка,ФормулаРасчетаКурса");
ПоменялсяСпособУстановкиКурса = ПредыдущиеЗначения.СпособУстановкиКурса <> СпособУстановкиКурса;
ПоменялсяКодВалюты = ПредыдущиеЗначения.Код <> Код;
ПоменяласьОсновнаяВалюта = ПредыдущиеЗначения.ОсновнаяВалюта <> ОсновнаяВалюта;
ПоменяласьНаценка = ПредыдущиеЗначения.Наценка <> Наценка;
ПоменяласьФормула = ПредыдущиеЗначения.ФормулаРасчетаКурса <> ФормулаРасчетаКурса;
Если (КурсЗависитОтДругойВалюты И (ПоменяласьОсновнаяВалюта Или ПоменяласьНаценка Или ПоменялсяСпособУстановкиКурса))
Или (КурсРассчитываетсяПоФормуле И (ПоменяласьФормула Или ПоменялсяСпособУстановкиКурса)) Тогда
ДополнительныеСвойства.Вставить("ОбновитьКурсы");
КонецЕсли;
Если КурсЗагружаетсяИзИнтернета И (ПоменялсяСпособУстановкиКурса Или ПоменялсяКодВалюты) Тогда
ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты");
КонецЕсли;
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
ОсновнаяВалюта = Справочники.Валюты.ПустаяСсылка();
Наценка = 0;
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
ФормулаРасчетаКурса = "";
КонецЕсли;
Если ЗначениеЗаполнено(ФормулаРасчетаКурса) Тогда
Попытка
ПроверитьФормулу(ФормулаРасчетаКурса);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке,
НСтр("ru = 'Не удалось вычислить курс валюты по формуле:'"));
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория, , , ИнформацияОбОшибке);
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновитьКурсы = ДополнительныеСвойства.Свойство("ОбновитьКурсы");
ЭтоНовый = ДополнительныеСвойства.Свойство("ЭтоНовый");
ТребуетсяЗаписьКурсов = ОбновитьКурсы Или ЭтоНовый;
ВыполняетсяФоновыйПересчетКурсов = ВыполняетсяФоновыйПересчетКурсов();
Если ТребуетсяЗаписьКурсов И ВыполняетсяФоновыйПересчетКурсов Тогда
ВызватьИсключение НСтр("ru = 'Не удалось записать валюту, так как еще не завершился фоновый пересчет курсов.
|Попробуйте записать валюту позже.'");
КонецЕсли;
Если ОбновитьКурсы Тогда
НачатьФоновоеОбновлениеКурсовВалюты();
ИначеЕсли Не ВыполняетсяФоновыйПересчетКурсов Тогда
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка);
КонецЕсли;
Если ДополнительныеСвойства.Свойство("ЗапланироватьКопированиеКурсовВалюты") Тогда
ЗапланироватьКопированиеКурсовВалюты();
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ДанныеЗаполнения = Неопределено Тогда
СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РучнойВвод;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ВыполняетсяФоновыйПересчетКурсов()
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Наименование", "РаботаСКурсамиВалют.ОбновитьКурсВалюты");
ПараметрыЗадания.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
Возврат ОбщегоНазначения.ИнформационнаяБазаФайловая()
И ФоновыеЗадания.ПолучитьФоновыеЗадания(ПараметрыЗадания).Количество() > 0;
КонецФункции
Процедура НачатьФоновоеОбновлениеКурсовВалюты()
ПараметрыВалюты = Новый Структура;
ПараметрыВалюты.Вставить("ОсновнаяВалюта");
ПараметрыВалюты.Вставить("Ссылка");
ПараметрыВалюты.Вставить("Наценка");
ПараметрыВалюты.Вставить("ДополнительныеСвойства");
ПараметрыВалюты.Вставить("ФормулаРасчетаКурса");
ПараметрыВалюты.Вставить("СпособУстановкиКурса");
ПараметрыВалюты.Вставить("ИспользуемыеВалютыПриРасчетеКурса", ИспользуемыеВалютыПриРасчетеКурса());
ЗаполнитьЗначенияСвойств(ПараметрыВалюты, ЭтотОбъект);
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Валюта", ПараметрыВалюты);
ПараметрыЗадания.Вставить("КодыВалют", Справочники.Валюты.КодыВалют());
Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
РаботаСКурсамиВалют.ОбновитьКурсВалюты(ПараметрыЗадания, Неопределено);
Возврат;
КонецЕсли;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор);
ПараметрыВыполнения.ОжидатьЗавершение = 0;
Результат = ДлительныеОперации.ВыполнитьВФоне("РаботаСКурсамиВалют.ОбновитьКурсВалюты", ПараметрыЗадания,
ПараметрыВыполнения);
Если Результат.Статус = "Ошибка" Тогда
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(Результат.ИнформацияОбОшибке,
НСтр("ru = 'Не удалось запустить обновление курсов валюты по причине:'"));
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, Результат.ИнформацияОбОшибке);
КонецЕсли;
КонецПроцедуры
Процедура ЗапланироватьКопированиеКурсовВалюты()
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда
МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный");
МодульРаботаСКурсамиВалютСлужебный.ЗапланироватьКопированиеКурсовВалюты(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Функция ИспользуемыеВалютыПриРасчетеКурса()
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
Возврат ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОсновнаяВалюта);
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
Возврат Новый Массив;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| &ФормулаРасчетаКурса ПОДОБНО ""%"" + Валюты.Наименование + ""%"" СПЕЦСИМВОЛ ""~""
| И Валюты.Наименование <> """"";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ФормулаРасчетаКурса", ФормулаРасчетаКурса);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ТекстОшибки = НСтр("ru = 'В формуле должна быть использована хотя бы одна основная валюта.'");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, "Объект.ФормулаРасчетаКурса");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Процедура ПроверитьФормулу(Формула) Экспорт
КодыВалют = Справочники.Валюты.КодыВалют();
Выражение = Справочники.Валюты.ФорматироватьЧисла(Формула);
Для Каждого Валюта Из КодыВалют Цикл
Выражение = СтрЗаменить(Выражение, Валюта.СимвольныйКод, "1");
КонецЦикла;
ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение);
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

View File

@ -0,0 +1,422 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1d6b8425-360c-4ab1-9bab-cc9a3b590bb2">
<producedTypes>
<objectType typeId="97a5ab75-0974-4551-8659-72579c7cef1e" valueTypeId="a1e44910-cbd0-4282-a3d4-400e92bdc9cd"/>
<refType typeId="41dbb66b-ff77-4b8f-aaf8-0ca2012d3a6f" valueTypeId="f6673b3b-47bf-4bbc-a837-5f7ded6d3538"/>
<selectionType typeId="937c8c90-be55-42af-9637-4f05cc245eef" valueTypeId="53d8d981-18d1-4c40-aca5-0e4ddb63002c"/>
<listType typeId="051745eb-f932-4a72-8cfd-e9597d8cf798" valueTypeId="8ef23d9a-92d4-47b3-9e15-1af85a165f41"/>
<managerType typeId="8e1d0f06-d30c-4a13-92fb-3c7ee752e1b6" valueTypeId="4d22bf6c-f464-4fd4-9a0a-6da540a7158b"/>
</producedTypes>
<name>Валюты</name>
<synonym>
<key>ru</key>
<value>Валюты</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.Валюты.StandardAttribute.Description</inputByString>
<inputByString>Catalog.Валюты.StandardAttribute.Code</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<synonym>
<key>ru</key>
<value>Символьный код</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Символьный код валюты по общероссийскому классификатору валют</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<synonym>
<key>ru</key>
<value>Цифровой код</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Цифровой код валюты по общероссийскому классификатору валют</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value> </value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<includeHelpInContents>true</includeHelpInContents>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Валюта</value>
</objectPresentation>
<explanation>
<key>ru</key>
<value>Валюты, используемые при расчетах</value>
</explanation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<codeLength>3</codeLength>
<descriptionLength>10</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<quickChoice>true</quickChoice>
<choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.Валюты.Form.ФормаЭлемента</defaultObjectForm>
<defaultListForm>Catalog.Валюты.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.Валюты.Form.ФормаСписка</defaultChoiceForm>
<attributes uuid="9f67d228-79aa-44e6-8dc7-fae4fbdfef2a">
<name>ЗагружаетсяИзИнтернета</name>
<synonym>
<key>ru</key>
<value>Загружается из Интернета</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Курс валюты загружается из сети Интернет</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="231d3950-f363-4e63-83cd-8ddb81507c27">
<name>НаименованиеПолное</name>
<synonym>
<key>ru</key>
<value>Наименование валюты</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Полное наименование валюты</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="87429f11-bf95-4013-bf13-da904570f88d">
<name>Наценка</name>
<synonym>
<key>ru</key>
<value>Наценка</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<scale>2</scale>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Коэффициент, который применяется к курсу основной валюты для вычисления курса текущей валюты.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<quickChoice>Use</quickChoice>
<createOnInput>DontUse</createOnInput>
<fillValue xsi:type="core:NumberValue">
<value>0</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="6173cab2-e0f5-40c1-8e74-4f41fc8bd68f">
<name>ОсновнаяВалюта</name>
<synonym>
<key>ru</key>
<value>Основная валюта</value>
</synonym>
<type>
<types>CatalogRef.Валюты</types>
</type>
<toolTip>
<key>ru</key>
<value>Валюта, на основании курса которой рассчитывается курс текущей валюты</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<quickChoice>DontUse</quickChoice>
<createOnInput>Use</createOnInput>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Валюты.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="feb41347-62db-41cf-ace0-d8b9de361af3">
<name>ПараметрыПрописи</name>
<synonym>
<key>ru</key>
<value>Параметры прописи</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Настройки представления суммы прописью</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5a088468-4065-4e0c-9b84-1162de8d3fdd">
<name>ФормулаРасчетаКурса</name>
<synonym>
<key>ru</key>
<value>Формула расчета курса</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>100</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Курсы других валют в формуле обозначаются их символьными кодами. Пример:
(0,55 * USD + 0,45 * EUR) / 2</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="dbdf3ae7-a0af-44b9-8e3d-c402d98cda03">
<name>СпособУстановкиКурса</name>
<synonym>
<key>ru</key>
<value>Способ установки курса</value>
</synonym>
<type>
<types>EnumRef.СпособыУстановкиКурсаВалюты</types>
</type>
<toolTip>
<key>ru</key>
<value>Определяет используемый способ установки курса валюты.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="f3ae1a2c-e0ca-461b-ba5a-76a6423c6325">
<producedTypes>
<objectType typeId="7c7863ac-88d7-43e6-a7a6-ac2c028d9ce6" valueTypeId="3435126c-08b4-469c-8ff0-e7f9279ad4e8"/>
<rowType typeId="d48be48d-cdf3-4bd4-b876-08c8528e8f58" valueTypeId="b4fb2355-2c99-415d-9e17-d82a8d88f298"/>
</producedTypes>
<name>Представления</name>
<synonym>
<key>ru</key>
<value>Представления</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="b233d29c-3979-4ef6-b7f0-89ca88f65e82">
<name>КодЯзыка</name>
<synonym>
<key>ru</key>
<value>Код языка</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="684ca876-644e-43f5-b96a-1561fb5b1935">
<name>ПараметрыПрописи</name>
<synonym>
<key>ru</key>
<value>Параметры прописи</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Настройки представления суммы прописью</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<forms uuid="5f91b00f-d8fc-4d63-8486-66339357ab22">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="16d44ab1-4bce-4df8-a215-6ed5173c75a8">
<name>ФормаЭлемента</name>
<synonym>
<key>ru</key>
<value>Форма элемента</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="86a9d7ab-7a96-4c58-8073-ca4b2b99cceb">
<name>ПараметрыПрописиВалюты_en</name>
<synonym>
<key>ru</key>
<value>Параметры прописи валюты на английском языке</value>
</synonym>
<comment>АПК:58</comment>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="1ae1a239-0d88-4467-af33-32bcfe6cf61d">
<name>ПараметрыПрописиВалютыНаДругихЯзыках</name>
<synonym>
<key>ru</key>
<value>Параметры прописи</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,330 @@
<?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:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>14</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<extendedTooltip>
<name>ГруппаПользовательскихНастроекРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Code</segments>
</dataPath>
<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>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>11</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокSearchString</name>
<id>16</id>
<extendedTooltip>
<name>СписокSearchStringExtendedTooltip</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокSearchStringContextMenu</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокViewStatus</name>
<id>19</id>
<extendedTooltip>
<name>СписокViewStatusExtendedTooltip</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокViewStatusContextMenu</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокSearchControl</name>
<id>22</id>
<extendedTooltip>
<name>СписокSearchControlExtendedTooltip</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокSearchControlContextMenu</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>8</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>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.ВариантыОтветовАнкет</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,369 @@
<?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:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>17</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<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>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>true</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Code</segments>
</dataPath>
<extendedTooltip>
<name>КодРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КодКонтекстноеМеню</name>
<id>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Владелец</name>
<id>8</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Owner</segments>
</dataPath>
<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>9</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>14</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</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>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокSearchString</name>
<id>19</id>
<extendedTooltip>
<name>СписокSearchStringExtendedTooltip</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокSearchStringContextMenu</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокViewStatus</name>
<id>22</id>
<extendedTooltip>
<name>СписокViewStatusExtendedTooltip</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокViewStatusContextMenu</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокSearchControl</name>
<id>25</id>
<extendedTooltip>
<name>СписокSearchControlExtendedTooltip</name>
<id>27</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокSearchControlContextMenu</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<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>2</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.ВариантыОтветовАнкет</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,21 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Пользователи.ЭтоСеансВнешнегоПользователя() Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Варианты ответов анкет используются только внешними пользователями.'"),,,,Отказ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,248 @@
<?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:FormGroup">
<name>КодОткрытыйОтвет</name>
<id>7</id>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>4</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">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Code</segments>
</dataPath>
<extendedTooltip>
<name>КодРасширеннаяПодсказка</name>
<id>9</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>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Код открытый ответ</value>
</title>
<extendedTooltip>
<name>КодОткрытыйОтветРасширеннаяПодсказка</name>
<id>8</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Подсказка</name>
<id>12</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Подсказка</segments>
</dataPath>
<titleLocation>Left</titleLocation>
<extendedTooltip>
<name>ПодсказкаРасширеннаяПодсказка</name>
<id>14</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПодсказкаКонтекстноеМеню</name>
<id>13</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ТребуетОткрытогоОтвета</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ТребуетОткрытогоОтвета</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<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>6</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Объект</name>
<id>1</id>
<valueType>
<types>CatalogObject.ВариантыОтветовАнкет</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<parameters>
<name>Владелец</name>
<valueType>
<types>ChartOfCharacteristicTypesRef.ВопросыДляАнкетирования</types>
</valueType>
</parameters>
<parameters>
<name>ТипОтвета</name>
<valueType>
<types>EnumRef.ТипыОтветовНаВопрос</types>
</valueType>
</parameters>
<parameters>
<name>Наименование</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,35 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Владелец.Пустая() Тогда
ТекстСообщения = НСтр("ru = 'Данная форма предназначена для открытия только из вопросов для анкетирования.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
Отказ = Истина;
Возврат;
КонецЕсли;
Объект.Владелец = Параметры.Владелец;
Если Не Параметры.ТипОтвета.Пустая() Тогда
Элементы.ТребуетОткрытогоОтвета.Видимость = (Параметры.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз);
Иначе
ТипОтвета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Владелец, "ТипОтвета");
Элементы.ТребуетОткрытогоОтвета.Видимость = (ТипОтвета = Перечисления.ТипыОтветовНаВопрос.НесколькоВариантовИз);
КонецЕсли;
Если Не ПустаяСтрока(Параметры.Наименование) Тогда
Объект.Наименование = Параметры.Наименование;
КонецЕсли;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body>
<p>Ведение списка вариантов ответов на <a href="ChartOfCharacteristicTypes.ВопросыДляАнкетирования/Help">вопросы</a> типов <strong>Выбор одного</strong> или <strong>нескольких вариантов ответа из предложенных.</strong></p>
<p>Существуют вопросы <a href="Document.Анкета.Form.ФормаСписка/Help">анкеты</a> типа <strong>Выбор одного варианта ответа из предложенных</strong> или <strong>Выбор нескольких вариантов ответа из предложенных</strong>. В этих случаях ответ респондента сводится к выбору одного или нескольких вариантов ответа из списка с помощью переключателей.</p>
<p>Задайте возможные варианты ответов на <a href="ChartOfCharacteristicTypes.ВопросыДляАнкетирования.Form.ФормаЭлемента/Help">вопрос</a>.</p>
<h3>Ввод варианта ответа на вопрос</h3>
<ul><li>Введите один из вариантов ответа в поле <strong>Наименование</strong>. Поле является обязательным.
</li><li>Если у варианта ответа на вопрос типа <strong>Выбор нескольких вариантов ответа из предложенных</strong> установить флажок <strong>Требует открытого ответа</strong>, то респонденту будет предложено дать развернутый ответ в текстовом поле рядом с вариантом ответа, прокомментировав таким образом свой выбор.</li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a></div></li></ul></body></html>

View File

@ -0,0 +1,37 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("ТребуетОткрытогоОтвета");
Возврат Результат;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
#КонецОбласти
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="375977c1-5745-4e78-a4df-cef966c0ccf8">
<producedTypes>
<objectType typeId="ccf04ae6-1fcb-4c10-ad3f-3eb731b0d1d3" valueTypeId="aa3ff8d9-27ac-4c09-8e4b-171cdf75988d"/>
<refType typeId="c2db239b-e53a-421a-a84b-28f83fa0cbe8" valueTypeId="7ccb4098-54b6-40bd-a03a-87330b002565"/>
<selectionType typeId="a3f55332-d803-4381-93c1-c824406986bf" valueTypeId="0b03069d-4bc3-4326-8fc4-6a1a21af18db"/>
<listType typeId="50a784db-0acc-4c27-91b9-4525a9a33d8e" valueTypeId="59642a64-e6b6-4341-a3aa-b18bab759350"/>
<managerType typeId="67965441-af17-4d29-9a5b-d98cbc26be55" valueTypeId="029b606e-0699-4f40-af49-90280e71fd2d"/>
</producedTypes>
<name>ВариантыОтветовАнкет</name>
<synonym>
<key>ru</key>
<value>Варианты ответов анкет</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ВариантыОтветовАнкет.StandardAttribute.Description</inputByString>
<inputByString>Catalog.ВариантыОтветовАнкет.StandardAttribute.Code</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<synonym>
<key>ru</key>
<value>Вопрос</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Вопрос-владелец варианта</value>
</toolTip>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>ChartOfCharacteristicTypes.ВопросыДляАнкетирования.EmptyRef</value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<toolTip>
<key>ru</key>
<value>Наименование варианта ответа</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<toolTip>
<key>ru</key>
<value>Код варианта ответа</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Вариант ответа анкеты</value>
</objectPresentation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<owners>ChartOfCharacteristicTypes.ВопросыДляАнкетирования</owners>
<codeLength>9</codeLength>
<descriptionLength>150</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<codeSeries>WithinOwnerSubordination</codeSeries>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.ВариантыОтветовАнкет.Form.ФормаЭлемента</defaultObjectForm>
<defaultListForm>Catalog.ВариантыОтветовАнкет.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.ВариантыОтветовАнкет.Form.ФормаВыбора</defaultChoiceForm>
<attributes uuid="2582a714-a6d6-4d37-b9a7-5e89e18b0f27">
<name>ТребуетОткрытогоОтвета</name>
<synonym>
<key>ru</key>
<value>Требует открытого ответа</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Признак того, что респондент будет иметь возможность прокомментировать данный вариант ответа</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="c3796d85-2a24-43c4-9673-64e56249a1d0">
<name>РеквизитДопУпорядочивания</name>
<synonym>
<key>ru</key>
<value>Порядок</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>5</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Используется для упорядочивания (служебный)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:NumberValue">
<value>0</value>
</fillValue>
<indexing>IndexWithAdditionalOrder</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="c234a467-ad6c-41d0-ac9e-8592acd8d9d2">
<name>Подсказка</name>
<synonym>
<key>ru</key>
<value>Подсказка</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>250</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="fc1066b5-20d4-4c73-85f8-9889e554d6e1">
<name>ФормаЭлемента</name>
<synonym>
<key>ru</key>
<value>Форма элемента</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="a9b6b5fd-1862-4207-87e8-5c25a8f86c57">
<name>ФормаВыбора</name>
<synonym>
<key>ru</key>
<value>Форма выбора</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="731211c2-ef90-4883-9525-83cd91b742ac">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>

View File

@ -0,0 +1,16 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(Вариант, ПараметрыВыполненияКоманды)
ВариантыОтчетовКлиент.ПоказатьНастройкиОтчета(Вариант);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,28 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(СсылкаВарианта, ПараметрыВыполненияКоманды)
Вариант = СсылкаВарианта;
Форма = ПараметрыВыполненияКоманды.Источник;
Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда
Если Форма.ИмяФормы = "Справочник.ВариантыОтчетов.Форма.ФормаСписка" Тогда
Вариант = Форма.Элементы.Список.ТекущиеДанные;
ИначеЕсли Форма.ИмяФормы = "Справочник.ВариантыОтчетов.Форма.ФормаЭлемента" Тогда
Вариант = Форма.Объект;
КонецЕсли;
Иначе
Форма = Неопределено;
КонецЕсли;
ВариантыОтчетовКлиент.ОткрытьФормуОтчета(Форма, Вариант);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,16 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(Варианты, ПараметрыВыполненияКоманды)
ВариантыОтчетовКлиент.ОткрытьДиалогРазмещенияВариантовВРазделах(Варианты, ПараметрыВыполненияКоманды.Источник);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,22 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(Варианты, ПараметрыВыполненияКоманды)
Если ТипЗнч(Варианты) <> Тип("Массив") Или Варианты.Количество() = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите варианты отчетов, для которых необходимо сбросить пользовательские настройки.'"));
Возврат;
КонецЕсли;
ОткрытьФорму("Справочник.ВариантыОтчетов.Форма.СбросПользовательскихНастроек",
Новый Структура("Варианты", Варианты), ПараметрыВыполненияКоманды.Источник);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,22 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(Варианты, ПараметрыВыполненияКоманды)
Если ТипЗнч(Варианты) <> Тип("Массив") Или Варианты.Количество() = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите варианты отчетов, для которых необходимо сбросить настройки размещения.'"));
Возврат;
КонецЕсли;
ОткрытьФорму("Справочник.ВариантыОтчетов.Форма.СбросНастроекРазмещения",
Новый Структура("Варианты", Варианты), ПараметрыВыполненияКоманды.Источник);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,774 @@
<?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>7</id>
<title>
<key>ru</key>
<value>Дерево подсистем</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДеревоПодсистем</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<excludedCommands>Add</excludedCommands>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<excludedCommands>HierarchicalList</excludedCommands>
<excludedCommands>List</excludedCommands>
<excludedCommands>MoveDown</excludedCommands>
<excludedCommands>MoveUp</excludedCommands>
<excludedCommands>SortListAsc</excludedCommands>
<excludedCommands>SortListDesc</excludedCommands>
<excludedCommands>Tree</excludedCommands>
<items xsi:type="form:FormGroup">
<name>ГруппаКолонок</name>
<id>73</id>
<displayImportance>VeryHigh</displayImportance>
<items xsi:type="form:FormField">
<name>ДеревоПодсистемИспользование</name>
<id>69</id>
<displayImportance>VeryHigh</displayImportance>
<title>
<key>ru</key>
<value>Использование</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДеревоПодсистем.Использование</segments>
</dataPath>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ДеревоПодсистемИспользованиеПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДеревоПодсистемИспользованиеРасширеннаяПодсказка</name>
<id>87</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемИспользованиеКонтекстноеМеню</name>
<id>70</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<horizontalAlign>Left</horizontalAlign>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo">
<threeState>true</threeState>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДеревоПодсистемПредставление</name>
<id>61</id>
<displayImportance>VeryHigh</displayImportance>
<title>
<key>ru</key>
<value>Раздел, Группа</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДеревоПодсистем.Представление</segments>
</dataPath>
<extendedTooltip>
<name>ДеревоПодсистемПредставлениеРасширеннаяПодсказка</name>
<id>88</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемПредставлениеКонтекстноеМеню</name>
<id>62</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<horizontalAlign>Left</horizontalAlign>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Колонок</value>
</title>
<extendedTooltip>
<name>ГруппаКолонокРасширеннаяПодсказка</name>
<id>86</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>ColumnGroup</type>
<extInfo xsi:type="form:ColumnGroupExtInfo">
<group>InCell</group>
<showTitle>true</showTitle>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДеревоПодсистемВажность</name>
<id>71</id>
<title>
<key>ru</key>
<value>Важность</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДеревоПодсистем.Важность</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ДеревоПодсистемВажностьПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДеревоПодсистемВажностьРасширеннаяПодсказка</name>
<id>89</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемВажностьКонтекстноеМеню</name>
<id>72</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">
<width>8</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<choiceListButton>false</choiceListButton>
<choiceButton>true</choiceButton>
<clearButton>true</clearButton>
<spinButton>false</spinButton>
<openButton>false</openButton>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ДеревоПодсистемКоманднаяПанель</name>
<id>9</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>ДеревоПодсистемСтрокаПоиска</name>
<id>90</id>
<extendedTooltip>
<name>ДеревоПодсистемСтрокаПоискаРасширеннаяПодсказка</name>
<id>92</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемСтрокаПоискаКонтекстноеМеню</name>
<id>91</id>
<autoFill>true</autoFill>
</contextMenu>
<source>ДеревоПодсистем</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>ДеревоПодсистемСостояниеПросмотра</name>
<id>93</id>
<extendedTooltip>
<name>ДеревоПодсистемСостояниеПросмотраРасширеннаяПодсказка</name>
<id>95</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемСостояниеПросмотраКонтекстноеМеню</name>
<id>94</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>ДеревоПодсистем</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>ДеревоПодсистемУправлениеПоиском</name>
<id>96</id>
<extendedTooltip>
<name>ДеревоПодсистемУправлениеПоискомРасширеннаяПодсказка</name>
<id>98</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемУправлениеПоискомКонтекстноеМеню</name>
<id>97</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>ДеревоПодсистем</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ДеревоПодсистемРасширеннаяПодсказка</name>
<id>85</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДеревоПодсистемКонтекстноеМеню</name>
<id>8</id>
<items xsi:type="form:Button">
<name>ДеревоПодсистемКонтекстноеМенюСнятьФлажки</name>
<id>78</id>
<title>
<key>ru</key>
<value>Снять флажки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДеревоПодсистемКонтекстноеМенюСнятьФлажкиРасширеннаяПодсказка</name>
<id>83</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СнятьФлажки</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<autoFill>true</autoFill>
</contextMenu>
<representation>Tree</representation>
<changeRowSet>true</changeRowSet>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<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>
<initialTreeView>ExpandAllLevels</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:FormGroup">
<name>ФормаГруппаФлажки</name>
<id>102</id>
<items xsi:type="form:Button">
<name>Разместить</name>
<id>58</id>
<title>
<key>ru</key>
<value>Разместить</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>РазместитьРасширеннаяПодсказка</name>
<id>79</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Разместить</commandName>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>ДеревоПодсистемСнятьФлажки</name>
<id>76</id>
<title>
<key>ru</key>
<value>Снять флажки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДеревоПодсистемСнятьФлажкиРасширеннаяПодсказка</name>
<id>80</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СнятьФлажки</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Форма группа флажки</value>
</title>
<extendedTooltip>
<name>ФормаГруппаФлажкиРасширеннаяПодсказка</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:Addition">
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>СтрокаПоиска</name>
<id>99</id>
<extendedTooltip>
<name>СтрокаПоискаРасширеннаяПодсказка</name>
<id>101</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СтрокаПоискаКонтекстноеМеню</name>
<id>100</id>
<autoFill>true</autoFill>
</contextMenu>
<source>ДеревоПодсистем</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ФормаСправка</name>
<id>104</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСправкаРасширеннаяПодсказка</name>
<id>105</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Help</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ИзменяемыеВарианты</name>
<id>1</id>
<valueType>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType>
<types>CatalogRef.ВариантыОтчетов</types>
</itemValueType>
</extInfo>
</attributes>
<attributes>
<name>КоличествоВариантов</name>
<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>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>СообщенияОбОшибках</name>
<id>4</id>
<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>ValueTree</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<columns>
<name>Ссылка</name>
<id>1</id>
<valueType>
<types>CatalogRef.ИдентификаторыОбъектовРасширений</types>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Представление</name>
<title>
<key>ru</key>
<value>Раздел, Группа</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Имя</name>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>100</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ПолноеИмя</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Приоритет</name>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>100</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Использование</name>
<title>
<key>ru</key>
<value>Использование</value>
</title>
<id>6</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>1</precision>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Важность</name>
<title>
<key>ru</key>
<value>Важность</value>
</title>
<id>9</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>15</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Модифицированность</name>
<id>10</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</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>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.WriteAndClose</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Разместить</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
</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>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.UncheckAll</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>СнятьФлажки</name>
</handler>
</action>
<representation>TextPicture</representation>
<currentRowUse>DontUse</currentRowUse>
</formCommands>
<parameters>
<name>Варианты</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,19 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body>
<p>Позволяет настраивать размещение одного или нескольких <a href="Catalog.ВариантыОтчетов/Help">вариантов отчетов</a> в разделах приложения.</p>
<p>Открывается по команде <strong>Разместить в разделах</strong> из списка <strong>Отчеты</strong>.</p>
<ul><li>В поле <strong>Варианты отчетов</strong> перечисляются выбранные для размещения варианты.
<ul><li>С помощью кнопки <img src="StdPicture.InputFieldSelect"></img><strong>Выбрать</strong> можно добавить варианты отчетов для размещения.
</li>
<li>В открывшемся <strong>Списке значений</strong> можно <img src="StdPicture.CreateListItem"></img><strong>Добавить </strong>по одному варианту отчета, с помощью кнопки <strong>Подбор</strong> можно открыть список вариантов отчетов и подобрать несколько вариантов отчетов из списка, затем нажмите <strong>Выбрать</strong>.
</li>
<li>Для подтверждения своего выбора и возврата к размещению вариантов отчетов нажмите <strong>ОК</strong>. Нажмите <strong>Отмена</strong>, если список не устраивает, для того чтобы вернуться к настройке размещения вариантов отчетов.</li></ul></li>
<li>В колонке <strong>Раздел, группа</strong> показано дерево разделов и групп командного интерфейса приложения.
<ul><li>Включая и выключая флажки, можно добавлять варианты отчетов в раздела/группы командного интерфейса, удалять варианты из разделов/групп,
</li>
<li>С помощью команды <strong>Еще - Снять флажки</strong> можно отменить свой выбор и начать размещение заново. </li></ul></li>
<li>Также можно определить <strong>Важность</strong> варианта отчета с помощью кнопки <img src="StdPicture.InputFieldSelect" width="12" height="12"></img><strong>Выбрать</strong>:
<ul><li>определить как <strong>Важный</strong> и тем самым выделить <a href="Catalog.ВариантыОтчетов.Form.ФормаЭлемента/Help">вариант отчета</a> жирным шрифтом в <a href="CommonForm.ПанельОтчетов/Help">панели отчетов</a>;
</li>
<li>разместить вариант отчета в панели отчетов в группу <strong>См. также</strong>. </li></ul></li>
<li>Для подтверждения выбора нажмите <strong>Разместить</strong>.</li></ul><h3>См. также:</h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,416 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
СмешаннаяВажность = НСтр("ru = 'Различная'");
// Контроль количества вариантов осуществляется до открытия формы.
ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты);
КоличествоВариантов = ИзменяемыеВарианты.Количество();
ЗаполнитьРазделы();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если СообщенияОбОшибках <> Неопределено Тогда
Отказ = Истина;
ОчиститьСообщения();
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1
|Подробности:
|%2'"),
СообщенияОбОшибках.Текст, СообщенияОбОшибках.Подробно), РежимДиалогаВопрос.ОК);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПодсистем
&НаКлиенте
Процедура ДеревоПодсистемИспользованиеПриИзменении(Элемент)
ВариантыОтчетовКлиент.ДеревоПодсистемИспользованиеПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемВажностьПриИзменении(Элемент)
ВариантыОтчетовКлиент.ДеревоПодсистемВажностьПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Разместить(Команда)
ЗаписатьНаСервере();
ТекстОповещения = НСтр("ru = 'Изменены настройки вариантов отчетов (%1 шт.).'");
ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОповещения, Формат(
ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0"));
ПоказатьОповещениеПользователя(,, ТекстОповещения);
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы();
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура СнятьФлажки(Команда)
СнятьФлажкиРазделов();
Элементы.ДеревоПодсистем.Развернуть(ДеревоПодсистем.ПолучитьЭлементы()[0].ПолучитьИдентификатор(), Истина);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДеревоПодсистемВажность.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДеревоПодсистем.Важность");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("СмешаннаяВажность");
ЦветЗаблокированногоРеквизита = Метаданные.ЭлементыСтиля.ЗаблокированныйРеквизитЦвет;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветЗаблокированногоРеквизита.Значение);
ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура СнятьФлажкиРазделов()
ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений"));
Найденные = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Использование", 1), Истина);
Для Каждого СтрокаДерева Из Найденные Цикл
СтрокаДерева.Использование = 0;
СтрокаДерева.Модифицированность = Истина;
КонецЦикла;
Найденные = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Использование", 2), Истина);
Для Каждого СтрокаДерева Из Найденные Цикл
СтрокаДерева.Использование = 0;
СтрокаДерева.Модифицированность = Истина;
КонецЦикла;
ЗначениеВРеквизитФормы(ДеревоПриемник, "ДеревоПодсистем");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазделы()
ДанныеЗаполнения = ДанныеЗаполненияРазделов();
ОтфильтрованныеВарианты = ДанныеЗаполнения.ОтфильтрованныеВарианты;
КоличествоОшибок = ОтфильтрованныеВарианты.Количество();
Если КоличествоОшибок > 0 Тогда
СообщенияОбОшибках = Новый Структура("Текст, Подробно");
ТекущаяПричина = 0;
СообщенияОбОшибках.Подробно = "";
Для Каждого СтрокаТаблицы Из ОтфильтрованныеВарианты Цикл
Если ТекущаяПричина <> СтрокаТаблицы.Причина Тогда
ТекущаяПричина = СтрокаТаблицы.Причина;
СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + Символы.ПС + Символы.ПС;
Если ТекущаяПричина = 1 Тогда
СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + НСтр("ru = 'Помеченные на удаление:'");
ИначеЕсли ТекущаяПричина = 2 Тогда
СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + НСтр("ru = 'Недостаточно прав для изменения:'");
ИначеЕсли ТекущаяПричина = 3 Тогда
СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + НСтр("ru = 'Отчет отключен или недоступен по правам:'");
ИначеЕсли ТекущаяПричина = 4 Тогда
СообщенияОбОшибках.Подробно = СообщенияОбОшибках.Подробно + НСтр("ru = 'Вариант отчета отключен по функциональной опции:'");
КонецЕсли;
КонецЕсли;
СообщенияОбОшибках.Подробно = СокрЛ(СообщенияОбОшибках.Подробно) + Символы.ПС + " - " + Строка(
СтрокаТаблицы.Ссылка);
ИзменяемыеВарианты.Удалить(ИзменяемыеВарианты.НайтиПоЗначению(СтрокаТаблицы.Ссылка));
КонецЦикла;
КоличествоВариантов = ИзменяемыеВарианты.Количество();
Если КоличествоВариантов = 0 Тогда
СообщенияОбОшибках.Текст = НСтр("ru = 'Недостаточно прав для размещения в разделах выбранных вариантов отчетов.'");
Иначе
СообщенияОбОшибках.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недостаточно прав для размещения в разделах некоторых вариантов отчетов (%1).'"),
Формат(КоличествоОшибок, "ЧГ="));
КонецЕсли;
СообщенияОбОшибках = Новый ФиксированнаяСтруктура(СообщенияОбОшибках);
КонецЕсли;
ВхожденияПодсистем = ДанныеЗаполнения.ВхожденияПодсистем;
ДеревоИсточник = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя().Дерево;
ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений"));
ДеревоПриемник.Строки.Очистить();
ДобавитьПодсистемыВДерево(ДеревоПриемник, ДеревоИсточник, ВхожденияПодсистем);
ЗначениеВРеквизитФормы(ДеревоПриемник, "ДеревоПодсистем");
КонецПроцедуры
// Возвращает данные для заполнения дерева разделов.
//
// Возвращаемое значение:
// Структура:
// * ОтфильтрованныеВарианты - ТаблицаЗначений:
// ** Ссылка - СправочникСсылка.ВариантыОтчетов
// ** Причина - Число
// * ВхожденияПодсистем - ТаблицаЗначений:
// ** Ссылка - СправочникСсылка.ВариантыОтчетов
// ** Количество - Число
// ** Важность - Строка
//
&НаСервере
Функция ДанныеЗаполненияРазделов()
Запрос = Новый Запрос(ТекстЗапросаЗаполненияРазделов());
Запрос.УстановитьПараметр("ПолныеПраваНаВарианты", ВариантыОтчетов.ПолныеПраваНаВарианты());
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
Запрос.УстановитьПараметр("Ссылки", ИзменяемыеВарианты.ВыгрузитьЗначения());
Запрос.УстановитьПараметр("ОтчетыПользователя", ВариантыОтчетов.ОтчетыТекущегоПользователя());
Запрос.УстановитьПараметр("ОтключенныеВариантыПрограммы", ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы());
Запрос.УстановитьПараметр("ПредставлениеВажный", ВариантыОтчетов.ПредставлениеВажный());
Запрос.УстановитьПараметр("ПредставлениеСмТакже", ВариантыОтчетов.ПредставлениеСмТакже());
Пакет = Запрос.ВыполнитьПакет();
Граница = Пакет.ВГраница();
ДанныеЗаполнения = Новый Структура;
ДанныеЗаполнения.Вставить("ОтфильтрованныеВарианты", Пакет[Граница - 1].Выгрузить());
ДанныеЗаполнения.Вставить("ВхожденияПодсистем", Пакет[Граница].Выгрузить());
Возврат ДанныеЗаполнения;
КонецФункции
&НаСервере
Функция ТекстЗапросаЗаполненияРазделов()
// АПК:70-выкл Полное соединение с НастройкиРазделенных существенно не замедляет запрос,
// так как в соединяемых таблицах малое количество записей.
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВариантыОтчетов.Ссылка,
| ВариантыОтчетов.ПредопределенныйВариант,
| ВЫБОР
| КОГДА ВариантыОтчетов.ПометкаУдаления
| ТОГДА 1
| КОГДА &ПолныеПраваНаВарианты = ЛОЖЬ
| И ВариантыОтчетов.Автор <> &ТекущийПользователь
| ТОГДА 2
| КОГДА НЕ ВариантыОтчетов.Отчет В (&ОтчетыПользователя)
| ТОГДА 3
| КОГДА ВариантыОтчетов.Ссылка В (&ОтключенныеВариантыПрограммы)
| ТОГДА 4
| ИНАЧЕ 0
| КОНЕЦ КАК Причина
|ПОМЕСТИТЬ ВариантыОтчетов
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов
|ГДЕ
| ВариантыОтчетов.Ссылка В(&Ссылки)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВариантыОтчетов.Ссылка КАК Ссылка,
| РазмещениеКонфигурации.Подсистема КАК Подсистема,
| РазмещениеКонфигурации.Важный КАК Важный,
| РазмещениеКонфигурации.СмТакже КАК СмТакже
|ПОМЕСТИТЬ НастройкиОбщих
|ИЗ
| ВариантыОтчетов КАК ВариантыОтчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК РазмещениеКонфигурации
| ПО ВариантыОтчетов.Причина = 0
| И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеКонфигурации.Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВариантыОтчетов.Ссылка,
| РазмещениеРасширений.Подсистема,
| РазмещениеРасширений.Важный,
| РазмещениеРасширений.СмТакже
|ИЗ
| ВариантыОтчетов КАК ВариантыОтчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК РазмещениеРасширений
| ПО ВариантыОтчетов.Причина = 0
| И ВариантыОтчетов.ПредопределенныйВариант = РазмещениеРасширений.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВариантыОтчетовРазмещение.Ссылка КАК Ссылка,
| ВариантыОтчетовРазмещение.Использование КАК Использование,
| ВариантыОтчетовРазмещение.Подсистема КАК Подсистема,
| ВариантыОтчетовРазмещение.Важный КАК Важный,
| ВариантыОтчетовРазмещение.СмТакже КАК СмТакже
|ПОМЕСТИТЬ НастройкиРазделенных
|ИЗ
| ВариантыОтчетов КАК ВариантыОтчетов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК ВариантыОтчетовРазмещение
| ПО ВариантыОтчетов.Причина = 0
| И ВариантыОтчетов.Ссылка = ВариантыОтчетовРазмещение.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВариантыОтчетов.Ссылка,
| ВариантыОтчетов.Причина КАК Причина
|ИЗ
| ВариантыОтчетов КАК ВариантыОтчетов
|ГДЕ
| ВариантыОтчетов.Причина <> 0
|
|УПОРЯДОЧИТЬ ПО
| Причина
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема) КАК Ссылка,
| КОЛИЧЕСТВО(1) КАК Количество,
| ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА
| ТОГДА &ПредставлениеВажный
| КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА
| ТОГДА &ПредставлениеСмТакже
| ИНАЧЕ """"
| КОНЕЦ КАК Важность
|ИЗ
| НастройкиОбщих КАК НастройкиОбщих
| ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных
| ПО НастройкиОбщих.Ссылка = НастройкиРазделенных.Ссылка
| И НастройкиОбщих.Подсистема = НастройкиРазделенных.Подсистема
|ГДЕ
| НастройкиРазделенных.Использование = ИСТИНА
| ИЛИ НастройкиРазделенных.Использование ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема),
| ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА
| ТОГДА &ПредставлениеВажный
| КОГДА ЕСТЬNULL(НастройкиРазделенных.СмТакже, НастройкиОбщих.СмТакже) = ИСТИНА
| ТОГДА &ПредставлениеСмТакже
| ИНАЧЕ """"
| КОНЕЦ";
// АПК:70-вкл
КонецФункции
&НаСервере
Процедура ЗаписатьНаСервере()
ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений"));
ИзмененныеРазделы = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Модифицированность", Истина), Истина);
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Для Каждого ВариантОтчета Из ИзменяемыеВарианты Цикл
ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВариантОтчета.Значение);
КонецЦикла;
Блокировка.Заблокировать();
Для Каждого ВариантОтчета Из ИзменяемыеВарианты Цикл
ВариантОбъект = ВариантОтчета.Значение.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов
ВариантыОтчетов.ДеревоПодсистемЗаписать(ВариантОбъект, ИзмененныеРазделы);
ВариантОбъект.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
// Добавляет рекурсивно строку в дерево подсистем.
//
// Параметры:
// ПриемникРодитель - ДеревоЗначений:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * Имя - Строка
// * ПолноеИмя - Строка
// * Представление - Строка
// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * РазделПолноеИмя - Строка
// * Приоритет - Строка
// * ПолноеПредставление - Строка
// * Важность - Строка
// * Модифицированность - Булево
// ИсточникРодитель - СтрокаДереваЗначений
// - ДеревоЗначений:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * Имя - Строка
// * ПолноеИмя - Строка
// * Представление - Строка
// * РазделСсылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * РазделПолноеИмя - Строка
// * Приоритет - Строка
// * ПолноеПредставление - Строка
// * Важность - Строка
// * Модифицированность - Булево
// ВхожденияПодсистем - ТаблицаЗначений:
// * Ссылка - СправочникСсылка.ВариантыОтчетов
// * Количество - Число
// * Важность - Строка
//
&НаСервере
Процедура ДобавитьПодсистемыВДерево(ПриемникРодитель, ИсточникРодитель, ВхожденияПодсистем)
Для Каждого Источник Из ИсточникРодитель.Строки Цикл
Приемник = ПриемникРодитель.Строки.Добавить();
ЗаполнитьЗначенияСвойств(Приемник, Источник);
ВхожденияЭтойПодсистемы = ВхожденияПодсистем.Скопировать(Новый Структура("Ссылка", Приемник.Ссылка));
Если ВхожденияЭтойПодсистемы.Количество() = 1 Тогда
Приемник.Важность = ВхожденияЭтойПодсистемы[0].Важность;
ИначеЕсли ВхожденияЭтойПодсистемы.Количество() = 0 Тогда
Приемник.Важность = "";
Иначе
Приемник.Важность = СмешаннаяВажность; // Так же используется для условного оформления.
КонецЕсли;
ВхожденияВариантов = ВхожденияЭтойПодсистемы.Итог("Количество");
Если ВхожденияВариантов = КоличествоВариантов Тогда
Приемник.Использование = 1;
ИначеЕсли ВхожденияВариантов = 0 Тогда
Приемник.Использование = 0;
Иначе
Приемник.Использование = 2;
КонецЕсли;
ДобавитьПодсистемыВДерево(Приемник, Источник, ВхожденияПодсистем);
КонецЦикла;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,212 @@
<?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:Decoration">
<name>Надпись2</name>
<id>11</id>
<title>
<key>ru</key>
<value>Сбросить настройки размещения, видимости и доступности
выбранных предопределенных вариантов отчетов?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Надпись2РасширеннаяПодсказка</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>Надпись2КонтекстноеМеню</name>
<id>12</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Надпись1</name>
<id>1</id>
<title>
<key>ru</key>
<value>Внимание, операция &quot;&lt;b>Сбросить настройки размещения&lt;/>&quot; необратима.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Надпись1РасширеннаяПодсказка</name>
<id>3</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Надпись1КонтекстноеМеню</name>
<id>2</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаКомандаПродолжить</name>
<id>6</id>
<title>
<key>ru</key>
<value>Сбросить настройки размещения</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<commandName>Form.Command.КомандаСбросить</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаОтмена</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ФормаОтменаРасширеннаяПодсказка</name>
<id>5</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Cancel</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>CustomizeForm</excludedCommands>
<excludedCommands>Help</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ИзменяемыеВарианты</name>
<id>1</id>
<valueType>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType>
<types>CatalogRef.ВариантыОтчетов</types>
</itemValueType>
</extInfo>
</attributes>
<attributes>
<name>ТекстОшибки</name>
<id>2</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>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>КомандаСбросить</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
</formCommands>
<parameters>
<name>Варианты</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,145 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТипЗнч(Параметры.Варианты) <> Тип("Массив") Тогда
ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'");
Возврат;
КонецЕсли;
ОпределитьПоведениеВМобильномКлиенте();
ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты);
Отфильтровать();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ПустаяСтрока(ТекстОшибки) Тогда
Отказ = Истина;
ПоказатьПредупреждение(, ТекстОшибки);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура КомандаСбросить(Команда)
КоличествоВыбранныхВариантов = ИзменяемыеВарианты.Количество();
Если КоличествоВыбранныхВариантов = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Не указаны варианты отчетов.'"));
Возврат;
КонецЕсли;
КоличествоВариантов = СброситьНастройкиРазмещенияСервер(ИзменяемыеВарианты);
Если КоличествоВариантов = 1 И КоличествоВыбранныхВариантов = 1 Тогда
СсылкаВарианта = ИзменяемыеВарианты[0].Значение;
ОповещениеЗаголовок = НСтр("ru = 'Сброшены настройки размещения варианта отчета'");
ОповещениеСсылка = ПолучитьНавигационнуюСсылку(СсылкаВарианта);
ОповещениеТекст = Строка(СсылкаВарианта);
ПоказатьОповещениеПользователя(ОповещениеЗаголовок, ОповещениеСсылка, ОповещениеТекст);
Иначе
ОповещениеТекст = НСтр("ru = 'Сброшены настройки размещения
|вариантов отчетов (%1 шт.).'");
ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст, Формат(
КоличествоВариантов, "ЧН=0; ЧГ=0"));
ПоказатьОповещениеПользователя(,, ОповещениеТекст);
КонецЕсли;
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы();
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ВызовСервера
&НаСервереБезКонтекста
Функция СброситьНастройкиРазмещенияСервер(Знач ИзменяемыеВарианты)
КоличествоВариантов = 0;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Для Каждого ЭлементСписка Из ИзменяемыеВарианты Цикл
ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ЭлементСписка.Значение);
КонецЦикла;
Блокировка.Заблокировать();
Для Каждого ЭлементСписка Из ИзменяемыеВарианты Цикл
ВариантОбъект = ЭлементСписка.Значение.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов
Если ВариантыОтчетов.СброситьНастройкиВариантаОтчета(ВариантОбъект) Тогда
ВариантОбъект.Записать();
КоличествоВариантов = КоличествоВариантов + 1;
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Возврат КоличествоВариантов;
КонецФункции
#КонецОбласти
#Область Сервер
&НаСервере
Процедура ОпределитьПоведениеВМобильномКлиенте()
Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Возврат;
КонецЕсли;
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецПроцедуры
&НаСервере
Процедура Отфильтровать()
КоличествоДоФильтрации = ИзменяемыеВарианты.Количество();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивВариантов", ИзменяемыеВарианты.ВыгрузитьЗначения());
Запрос.УстановитьПараметр("ТипВнутренний", Перечисления.ТипыОтчетов.Внутренний);
Запрос.УстановитьПараметр("ТипРасширение", Перечисления.ТипыОтчетов.Расширение);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВариантыОтчетовРазмещение.Ссылка
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетовРазмещение
|ГДЕ
| ВариантыОтчетовРазмещение.Ссылка В(&МассивВариантов)
| И ВариантыОтчетовРазмещение.Пользовательский = ЛОЖЬ
| И ВариантыОтчетовРазмещение.ТипОтчета В (&ТипВнутренний, &ТипРасширение)
| И ВариантыОтчетовРазмещение.ПометкаУдаления = ЛОЖЬ";
МассивВариантов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ИзменяемыеВарианты.ЗагрузитьЗначения(МассивВариантов);
КоличествоПослеФильтрации = ИзменяемыеВарианты.Количество();
Если КоличествоДоФильтрации <> КоличествоПослеФильтрации Тогда
Если КоличествоПослеФильтрации = 0 Тогда
ТекстОшибки = НСтр("ru = 'Сброс настроек размещения выбранных вариантов отчетов не требуется по одной или нескольким причинам:
|- Выбраны пользовательские варианты отчетов.
|- Выбраны помеченные на удаление варианты отчетов.
|- Выбраны варианты дополнительных или внешних отчетов.'");
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -0,0 +1,212 @@
<?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:Decoration">
<name>Надпись2</name>
<id>11</id>
<title>
<key>ru</key>
<value>Сбросить пользовательские настройки быстрого доступа и видимости
выбранных вариантов отчетов?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Надпись2РасширеннаяПодсказка</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>Надпись2КонтекстноеМеню</name>
<id>12</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Надпись1</name>
<id>1</id>
<title>
<key>ru</key>
<value>Внимание, операция &quot;&lt;b>Сбросить настройки пользователей&lt;/>&quot; необратима.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Надпись1РасширеннаяПодсказка</name>
<id>3</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Надпись1КонтекстноеМеню</name>
<id>2</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаКомандаСбросить</name>
<id>6</id>
<title>
<key>ru</key>
<value>Сбросить пользовательские настройки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<commandName>Form.Command.КомандаСбросить</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаОтмена</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ФормаОтменаРасширеннаяПодсказка</name>
<id>5</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Cancel</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>CustomizeForm</excludedCommands>
<excludedCommands>Help</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ИзменяемыеВарианты</name>
<id>1</id>
<valueType>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType>
<types>CatalogRef.ВариантыОтчетов</types>
</itemValueType>
</extInfo>
</attributes>
<attributes>
<name>ТекстОшибки</name>
<id>2</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>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>КомандаСбросить</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
</formCommands>
<parameters>
<name>Варианты</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,123 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТипЗнч(Параметры.Варианты) <> Тип("Массив") Тогда
ТекстОшибки = НСтр("ru = 'Не указаны варианты отчетов.'");
Возврат;
КонецЕсли;
Если Не ЕстьПользовательскиеНастройки(Параметры.Варианты) Тогда
ТекстОшибки = НСтр("ru = 'Пользовательские настройки выбранных вариантов отчетов (%1 шт) не заданы или уже сброшены.'");
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
Формат(Параметры.Варианты.Количество(), "ЧН=0; ЧГ=0"));
Возврат;
КонецЕсли;
ОпределитьПоведениеВМобильномКлиенте();
ИзменяемыеВарианты.ЗагрузитьЗначения(Параметры.Варианты);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ПустаяСтрока(ТекстОшибки) Тогда
Отказ = Истина;
ПоказатьПредупреждение(, ТекстОшибки);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура КомандаСбросить(Команда)
КоличествоВариантов = ИзменяемыеВарианты.Количество();
Если КоличествоВариантов = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Не указаны варианты отчетов.'"));
Возврат;
КонецЕсли;
СброситьНастройкиПользователейСервер(ИзменяемыеВарианты);
Если КоличествоВариантов = 1 Тогда
СсылкаВарианта = ИзменяемыеВарианты[0].Значение;
ОповещениеЗаголовок = НСтр("ru = 'Сброшены пользовательские настройки варианта отчета'");
ОповещениеСсылка = ПолучитьНавигационнуюСсылку(СсылкаВарианта);
ОповещениеТекст = Строка(СсылкаВарианта);
ПоказатьОповещениеПользователя(ОповещениеЗаголовок, ОповещениеСсылка, ОповещениеТекст);
Иначе
ОповещениеТекст = НСтр("ru = 'Сброшены пользовательские настройки
|вариантов отчетов (%1 шт.).'");
ОповещениеТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОповещениеТекст,
Формат(КоличествоВариантов, "ЧН=0; ЧГ=0"));
ПоказатьОповещениеПользователя(,, ОповещениеТекст);
КонецЕсли;
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ВызовСервера
&НаСервереБезКонтекста
Процедура СброситьНастройкиПользователейСервер(Знач ИзменяемыеВарианты)
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
Для Каждого ЭлементСписка Из ИзменяемыеВарианты Цикл
ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ЭлементСписка.Значение);
КонецЦикла;
Блокировка.Заблокировать();
РегистрыСведений.НастройкиВариантовОтчетов.СброситьНастройки(ИзменяемыеВарианты.ВыгрузитьЗначения());
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#Область Сервер
&НаСервере
Процедура ОпределитьПоведениеВМобильномКлиенте()
Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Возврат;
КонецЕсли;
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецПроцедуры
&НаСервере
Функция ЕстьПользовательскиеНастройки(МассивВариантов)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивВариантов", МассивВариантов);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА КАК ЕстьПользовательскиеНастройки
|ИЗ
| РегистрСведений.НастройкиВариантовОтчетов КАК Настройки
|ГДЕ
| Настройки.Вариант В(&МассивВариантов)";
ЕстьПользовательскиеНастройки = Не Запрос.Выполнить().Пустой();
Возврат ЕстьПользовательскиеНастройки;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,996 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
ОпределитьПоведениеВМобильномКлиенте();
ПараметрыКлиента = ВариантыОтчетов.ПараметрыКлиента();
ВключаяПодчиненные = Истина;
ДеревоЗначений = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя().Дерево.Скопировать();
ДеревоПодсистемЗаполнитьПолноеПредставление(ДеревоЗначений.Строки);
СтрокаДерева = ДеревоЗначений.Строки.Добавить();
СтрокаДерева.Имя = "НеВключенныеВРазделы";
СтрокаДерева.ПолноеИмя = "НеВключенныеВРазделы";
СтрокаДерева.Представление = НСтр("ru = 'Не включенные в разделы'");
СтрокаДерева.Ссылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка();
ЗначениеВРеквизитФормы(ДеревоЗначений, "ДеревоПодсистем");
ДеревоПодсистемТекущаяСтрока = -1;
Элементы.ДеревоПодсистем.ТекущаяСтрока = 0;
Если Параметры.РежимВыбора = Истина Тогда
РежимРаботыФормы = "Выбор";
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
ИначеЕсли Параметры.РазделСсылка <> Неопределено Тогда
РежимРаботыФормы = "ВсеОтчетыРаздела";
РодительскиеЭлементы = Новый Массив; // Массив из ДанныеФормыЭлементДерева
РодительскиеЭлементы.Добавить(ДеревоПодсистем.ПолучитьЭлементы()[0]);
Пока РодительскиеЭлементы.Количество() > 0 Цикл
РодительскийЭлемент = ЭлементДереваПодсистем(РодительскиеЭлементы);
ДочерниеЭлементы = РодительскийЭлемент.ПолучитьЭлементы();
РодительскиеЭлементы.Удалить(0);
Для Каждого ДочернийЭлемент Из ДочерниеЭлементы Цикл
Если ДочернийЭлемент.Ссылка = Параметры.РазделСсылка Тогда
Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочернийЭлемент.ПолучитьИдентификатор();
РодительскиеЭлементы.Очистить();
Прервать;
КонецЕсли;
РодительскиеЭлементы.Добавить(ДочернийЭлемент);
КонецЦикла;
КонецЦикла;
Иначе
РежимРаботыФормы = "Список";
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Изменить", "Отображение",
ОтображениеКнопки.КартинкаИТекст);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "РазместитьВРазделах",
"ТолькоВоВсехДействиях", Ложь);
КонецЕсли;
ГлобальныеНастройки = ВариантыОтчетов.ГлобальныеНастройки();
Элементы.СтрокаПоиска.ПодсказкаВвода = ГлобальныеНастройки.Поиск.ПодсказкаВвода;
КлючСохраненияПоложенияОкна = РежимРаботыФормы;
КлючНазначенияИспользования = РежимРаботыФормы;
УстановитьСвойствоСпискаПоПараметруФормы("РежимВыбора");
УстановитьСвойствоСпискаПоПараметруФормы("ВыборГруппИЭлементов");
УстановитьСвойствоСпискаПоПараметруФормы("МножественныйВыбор");
УстановитьСвойствоСпискаПоПараметруФормы("ТекущаяСтрока");
Элементы.Выбрать.КнопкаПоУмолчанию = Параметры.РежимВыбора;
Элементы.Выбрать.Видимость = Параметры.РежимВыбора;
Элементы.ОтборТипОтчета.Видимость = ВариантыОтчетов.ПолныеПраваНаВарианты();
СписокВыбора = Элементы.ОтборТипОтчета.СписокВыбора;
СписокВыбора.Добавить(1, НСтр("ru = 'Все, кроме внешних'"));
СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внутренний, НСтр("ru = 'Внутренние'"));
СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Расширение, НСтр("ru = 'Расширения'"));
СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Дополнительный, НСтр("ru = 'Дополнительные'"));
СписокВыбора.Добавить(Перечисления.ТипыОтчетов.Внешний, НСтр("ru = 'Внешние'"));
СтрокаПоиска = Параметры.СтрокаПоиска;
Если Параметры.Отбор.Свойство("ТипОтчета", ОтборТипОтчета) Тогда
Параметры.Отбор.Удалить("ТипОтчета");
КонецЕсли;
Если Параметры.ТолькоВарианты Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "КлючВарианта", "",
ВидСравненияКомпоновкиДанных.НеРавно,,, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный);
КонецЕсли;
ПерсональныеНастройкиСписка = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), "Справочник.ВариантыОтчетов.ФормаСписка");
Если ПерсональныеНастройкиСписка <> Неопределено Тогда
Элементы.СтрокаПоиска.СписокВыбора.ЗагрузитьЗначения(ПерсональныеНастройкиСписка.СтрокаПоискаСписокВыбора);
КонецЕсли;
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СуффиксТекущегоЯзыка = ОбщегоНазначения.СуффиксЯзыкаТекущегоПользователя();
Если СуффиксТекущегоЯзыка <> Неопределено Тогда
Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда
СвойстваСписка.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "ВариантыОтчетовПереопределяемый.Наименование",
"ВариантыОтчетовПереопределяемый.Наименование" + СуффиксТекущегоЯзыка);
СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыОтчетовПереопределяемый.Описание",
"ВариантыОтчетовПереопределяемый.Описание" + СуффиксТекущегоЯзыка);
СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурацииПереопределяемый.Наименование",
"ВариантыКонфигурацииПереопределяемый.Наименование" + СуффиксТекущегоЯзыка);
СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "ВариантыКонфигурацииПереопределяемый.Описание",
"ВариантыКонфигурацииПереопределяемый.Описание" + СуффиксТекущегоЯзыка);
КонецЕсли;
Иначе
СвойстваСписка.ТекстЗапроса = ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти();
КонецЕсли;
ОписаниеПоляИмяОтчета =
"ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
| ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК СТРОКА(150)), 14, 137)
|КОНЕЦ";
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
ИмяТаблицыДополнительныеОтчеты = МодульДополнительныеОтчетыИОбработки.ИмяТаблицыДополнительныеОтчеты();
ОписаниеПоляИмяОтчета = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетовПереопределяемый.Отчет) = ТИП(%1)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК %1).ИмяОбъекта
| ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Отчет КАК СТРОКА(150)), 14, 137)
|КОНЕЦ", ИмяТаблицыДополнительныеОтчеты);
КонецЕсли;
Если Не ЗначениеЗаполнено(СвойстваСписка.ТекстЗапроса) Тогда
СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса;
КонецЕсли;
СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "&ИмяОтчета", ОписаниеПоляИмяОтчета);
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
Если СуффиксТекущегоЯзыка = Неопределено Тогда
Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка);
КонецЕсли;
Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя());
Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы",
Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()));
Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
ТекущийЭлемент = Элементы.Список;
ВариантыОтчетов.ДополнитьОтборыИзСтруктуры(Список.КомпоновщикНастроек.Настройки.Отбор, Параметры.Отбор);
Параметры.Отбор.Очистить();
ОбновитьСодержимоеСписка("ПриСозданииНаСервере");
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если РежимРаботыФормы = "ВсеОтчетыРаздела" Или РежимРаботыФормы = "Выбор" Тогда
Элементы.ДеревоПодсистем.Развернуть(ДеревоПодсистемТекущаяСтрока, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта() Или ИмяСобытия = "Запись_НаборКонстант"
Или ИмяСобытия = "Запись_ВариантыОтчетов" Тогда
ДеревоПодсистемТекущаяСтрока = -1;
ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина);
ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияОбновленияВариантовОтчетовИзФайлов() Тогда
УстановитьОтборПоОбновленнымИзФайловОтчетов(Параметр);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОтборТипОтчетаПриИзменении(Элемент)
ОбновитьСодержимоеСписка();
КонецПроцедуры
&НаКлиенте
Процедура ОтборТипОтчетаОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОтборТипОтчета = Неопределено;
ОбновитьСодержимоеСписка();
КонецПроцедуры
&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
ОбновитьСодержимоеСпискаКлиент("СтрокаПоискаПриИзменении");
КонецПроцедуры
&НаКлиенте
Процедура ВключаяПодчиненныеПриИзменении(Элемент)
ДеревоПодсистемТекущаяСтрока = -1;
ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПодсистем
&НаКлиенте
Процедура ДеревоПодсистемПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемПередУдалением(Элемент, Отказ)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина);
#Если МобильныйКлиент Тогда
ПодключитьОбработчикОжидания("УстановитьЗаголовокДереваПодсистем", 0.1, Истина);
ТекущийЭлемент = Элементы.Список;
#КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
Если Строка = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыРазмещения = ПараметрыРазмещения(ПараметрыПеретаскивания, Строка);
Если ПараметрыРазмещения = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда
Если ПараметрыРазмещения.Действие = "Копирование" Тогда
ШаблонВопроса = НСтр("ru = 'Разместить ""%1"" в ""%4""?'");
Иначе
ШаблонВопроса = НСтр("ru = 'Переместить ""%1"" из ""%3"" в ""%4""?'");
КонецЕсли;
Иначе
Если ПараметрыРазмещения.Действие = "Копирование" Тогда
ШаблонВопроса = НСтр("ru = 'Разместить варианты отчетов ""%1"" (%2 шт.) в ""%4""?'");
Иначе
ШаблонВопроса = НСтр("ru = 'Переместить варианты отчетов ""%1"" (%2 шт.) из ""%3"" в ""%4""?'");
КонецЕсли;
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВопроса,
ПараметрыРазмещения.Варианты.Представление, Формат(ПараметрыРазмещения.Варианты.Всего, "ЧГ=0"),
ПараметрыРазмещения.Источник.ПолноеПредставление, ПараметрыРазмещения.Приемник.ПолноеПредставление);
Обработчик = Новый ОписаниеОповещения("ДеревоПодсистемПеретаскиваниеЗавершение", ЭтотОбъект, ПараметрыРазмещения);
ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
ВариантыОтчетовКлиент.ПоказатьНастройкиОтчета(Элементы.Список.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если РежимРаботыФормы = "ВсеОтчетыРаздела" Тогда
СтандартнаяОбработка = Ложь;
ВариантыОтчетовКлиент.ОткрытьФормуОтчета(ЭтотОбъект, Элементы.Список.ТекущиеДанные);
ИначеЕсли РежимРаботыФормы = "Список" Тогда
СтандартнаяОбработка = Ложь;
ВариантыОтчетовКлиент.ПоказатьНастройкиОтчета(ВыбраннаяСтрока);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВыполнитьПоиск(Команда)
ОбновитьСодержимоеСпискаКлиент("ВыполнитьПоиск");
КонецПроцедуры
&НаКлиенте
Процедура Изменить(Команда)
ВариантыОтчетовКлиент.ПоказатьНастройкиОтчета(Элементы.Список.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьВариантОтчетаВФайл(Команда)
ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки;
Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл",
Новый Структура("ВыбранныеВариантыОтчетов", ВыбранныеВариантыОтчетов), ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьВариантОтчетаИзФайла(Команда)
ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки;
Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда
Возврат;
КонецЕсли;
СвойстваВариантаОтчета = ВариантыОтчетовКлиент.СвойстваВариантаОтчетаОснования();
СвойстваВариантаОтчета.Ссылка = ВыбранныеВариантыОтчетов[0];
СвойстваВариантаОтчета.ПредставлениеВарианта = Строка(ВыбранныеВариантыОтчетов[0]);
ВариантыОтчетовКлиент.ОбновитьВариантОтчетаИзФайлов(СвойстваВариантаОтчета, УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОпределитьПоведениеВМобильномКлиенте()
Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Возврат;
КонецЕсли;
Элементы.СтрокаПоиска.Ширина = 0;
Элементы.СтрокаПоиска.РастягиватьПоГоризонтали = Неопределено;
Элементы.СтрокаПоиска.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
Элементы.СтрокаПоиска.КнопкаВыпадающегоСписка = Ложь;
Элементы.ВыполнитьПоиск.Отображение = ОтображениеКнопки.Картинка;
КонецПроцедуры
&НаСервере
Процедура ДеревоПодсистемЗаполнитьПолноеПредставление(НаборСтрок, ПредставлениеРодителя = "")
Для Каждого СтрокаДерева Из НаборСтрок Цикл
Если ПустаяСтрока(СтрокаДерева.Имя) Тогда
СтрокаДерева.ПолноеПредставление = "";
ИначеЕсли ПустаяСтрока(ПредставлениеРодителя) Тогда
СтрокаДерева.ПолноеПредставление = СтрокаДерева.Представление;
Иначе
СтрокаДерева.ПолноеПредставление = ПредставлениеРодителя + "." + СтрокаДерева.Представление;
КонецЕсли;
ДеревоПодсистемЗаполнитьПолноеПредставление(СтрокаДерева.Строки, СтрокаДерева.ПолноеПредставление);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Описание.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Описание");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
ЦветПоясняющегоТекста = Метаданные.ЭлементыСтиля.ПоясняющийТекст;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветПоясняющегоТекста.Значение);
КонецПроцедуры
// Возвращает параметры перетаскивания.
//
// Параметры:
// ПараметрыПеретаскивания - ПараметрыПеретаскивания
// Строка - Число
//
// Возвращаемое значение:
// - Неопределено
// - Структура:
// * Варианты - Структура:
// ** Массив - Массив из ДанныеФормыЭлементДерева
// ** Всего - Число
// ** Представление - Строка
// * Действие - Строка
// * Приемник - см. СвойстваДанныхСтроки
// * Источник - см. СвойстваДанныхСтроки
//
&НаКлиенте
Функция ПараметрыРазмещения(ПараметрыПеретаскивания, Строка)
КоличествоСтрок = ПараметрыПеретаскивания.Значение.Количество();
Если КоличествоСтрок = 0 Тогда
Возврат Неопределено;
КонецЕсли;
СтрокаПриемник = ДеревоПодсистем.НайтиПоИдентификатору(Строка);
Если СтрокаПриемник = Неопределено Или СтрокаПриемник.Приоритет = "" Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыРазмещения = Новый Структура("Варианты, Действие, Приемник, Источник");
ПараметрыРазмещения.Варианты = Новый Структура("Массив, Всего, Представление");
ПараметрыРазмещения.Варианты.Массив = ПараметрыПеретаскивания.Значение;
ПараметрыРазмещения.Варианты.Всего = КоличествоСтрок;
Приемник = СвойстваДанныхСтроки();
ЗаполнитьЗначенияСвойств(Приемник, СтрокаПриемник);
Приемник.Идентификатор = СтрокаПриемник.ПолучитьИдентификатор();
ПараметрыРазмещения.Приемник = Приемник;
СтрокаИсточник = Элементы.ДеревоПодсистем.ТекущиеДанные;
Источник = СвойстваДанныхСтроки();
Если СтрокаИсточник = Неопределено Или СтрокаИсточник.Приоритет = "" Тогда
ПараметрыРазмещения.Действие = "Копирование";
Иначе
ЗаполнитьЗначенияСвойств(Источник, СтрокаИсточник);
Источник.Идентификатор = СтрокаИсточник.ПолучитьИдентификатор();
Если ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Копирование Тогда
ПараметрыРазмещения.Действие = "Копирование";
Иначе
ПараметрыРазмещения.Действие = "Перемещение";
КонецЕсли;
КонецЕсли;
ПараметрыРазмещения.Источник = Источник;
Если Источник.Ссылка = Приемник.Ссылка Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выбранные варианты отчетов уже в данном разделе.'"));
Возврат Неопределено;
КонецЕсли;
Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда
ПараметрыРазмещения.Варианты.Представление = Строка(ПараметрыРазмещения.Варианты.Массив[0]);
Иначе
ПараметрыРазмещения.Варианты.Представление = "";
Для Каждого ВариантСсылка Из ПараметрыРазмещения.Варианты.Массив Цикл
ПараметрыРазмещения.Варианты.Представление = ПараметрыРазмещения.Варианты.Представление
+ ?(ПараметрыРазмещения.Варианты.Представление = "", "", ", ") + Строка(ВариантСсылка);
Если СтрДлина(ПараметрыРазмещения.Варианты.Представление) > 23 Тогда
ПараметрыРазмещения.Варианты.Представление = Лев(ПараметрыРазмещения.Варианты.Представление, 20) + "...";
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат ПараметрыРазмещения;
КонецФункции
// Конструктор свойств данных строки.
//
// Возвращаемое значение:
// Структура:
// * Ссылка - Неопределено
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * ПолноеПредставление - Строка
// * Идентификатор - Число
//
&НаКлиенте
Функция СвойстваДанныхСтроки()
Свойства = Новый Структура;
Свойства.Вставить("Ссылка", Неопределено);
Свойства.Вставить("ПолноеПредставление", "");
Свойства.Вставить("Идентификатор", 0);
Возврат Свойства;
КонецФункции
// Обработчик завершения перетаскивания.
//
// Параметры:
// Ответ - КодВозвратаДиалога
// ПараметрыРазмещения - см. ПараметрыРазмещения
//
&НаКлиенте
Процедура ДеревоПодсистемПеретаскиваниеЗавершение(Ответ, ПараметрыРазмещения) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
РезультатВыполнения = РазместитьВариантыВПодсистеме(ПараметрыРазмещения);
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы();
Если ПараметрыРазмещения.Варианты.Всего = РезультатВыполнения.Размещено Тогда
Если ПараметрыРазмещения.Варианты.Всего = 1 Тогда
Если ПараметрыРазмещения.Действие = "Перемещение" Тогда
Шаблон = НСтр("ru = 'Успешно перемещен в ""%1"".'");
Иначе
Шаблон = НСтр("ru = 'Успешно размещен в ""%1"".'");
КонецЕсли;
Текст = ПараметрыРазмещения.Варианты.Представление;
Ссылка = ПолучитьНавигационнуюСсылку(ПараметрыРазмещения.Варианты.Массив[0]);
Иначе
Если ПараметрыРазмещения.Действие = "Перемещение" Тогда
Шаблон = НСтр("ru = 'Успешно перемещены в ""%1"".'");
Иначе
Шаблон = НСтр("ru = 'Успешно размещены в ""%1"".'");
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Варианты отчетов (%1).'"),
Формат(ПараметрыРазмещения.Варианты.Всего, "ЧН=0; ЧГ=0"));
Ссылка = Неопределено;
КонецЕсли;
Шаблон = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон,
ПараметрыРазмещения.Приемник.ПолноеПредставление);
ПоказатьОповещениеПользователя(Шаблон, Ссылка, Текст);
Иначе
ТекстОшибок = "";
Если Не ПустаяСтрока(РезультатВыполнения.НеМогутРазмещаться) Тогда
ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС)
+ НСтр("ru = 'Не могут размещаться в командном интерфейсе:'") + Символы.ПС
+ РезультатВыполнения.НеМогутРазмещаться;
КонецЕсли;
Если Не ПустаяСтрока(РезультатВыполнения.УжеРазмещены) Тогда
ТекстОшибок = ?(ТекстОшибок = "", "", ТекстОшибок + Символы.ПС + Символы.ПС)
+ НСтр("ru = 'Уже размещены в этом разделе:'") + Символы.ПС + РезультатВыполнения.УжеРазмещены;
КонецЕсли;
Если ПараметрыРазмещения.Действие = "Перемещение" Тогда
Шаблон = НСтр("ru = 'Перемещено вариантов отчетов: %1 из %2.
|Подробности:
|%3'");
Иначе
Шаблон = НСтр("ru = 'Размещено вариантов отчетов: %1 из %2.
|Подробности:
|%3'");
КонецЕсли;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, РезультатВыполнения.Размещено,
ПараметрыРазмещения.Варианты.Всего, ТекстОшибок), РежимДиалогаВопрос.ОК);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойствоСпискаПоПараметруФормы(Ключ)
Если Параметры.Свойство(Ключ) И ЗначениеЗаполнено(Параметры[Ключ]) Тогда
Элементы.Список[Ключ] = Параметры[Ключ];
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьСодержимоеСписка(Знач Событие = "")
ИзменилисьПерсональныеНастройки = Ложь;
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
СписокВыбора = Элементы.СтрокаПоиска.СписокВыбора;
ЭлементСписка = СписокВыбора.НайтиПоЗначению(СтрокаПоиска);
Если ЭлементСписка = Неопределено Тогда
СписокВыбора.Вставить(0, СтрокаПоиска);
ИзменилисьПерсональныеНастройки = Истина;
Если СписокВыбора.Количество() > 10 Тогда
СписокВыбора.Удалить(10);
КонецЕсли;
Иначе
Индекс = СписокВыбора.Индекс(ЭлементСписка);
Если Индекс <> 0 Тогда
СписокВыбора.Сдвинуть(Индекс, -Индекс);
ИзменилисьПерсональныеНастройки = Истина;
КонецЕсли;
КонецЕсли;
ТекущийЭлемент = Элементы.СтрокаПоиска;
КонецЕсли;
Если Событие = "СтрокаПоискаПриИзменении" И ИзменилисьПерсональныеНастройки Тогда
ПерсональныеНастройкиСписка = Новый Структура("СтрокаПоискаСписокВыбора");
ПерсональныеНастройкиСписка.СтрокаПоискаСписокВыбора = Элементы.СтрокаПоиска.СписокВыбора.ВыгрузитьЗначения();
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), "Справочник.ВариантыОтчетов.ФормаСписка",
ПерсональныеНастройкиСписка);
КонецЕсли;
ДеревоПодсистемТекущаяСтрока = Элементы.ДеревоПодсистем.ТекущаяСтрока;
СтрокаДерева = ДеревоПодсистем.НайтиПоИдентификатору(ДеревоПодсистемТекущаяСтрока);
Если СтрокаДерева = Неопределено Тогда
Возврат;
КонецЕсли;
ВсеПодсистемы = Не ЗначениеЗаполнено(СтрокаДерева.ПолноеИмя);
ПараметрыПоиска = Новый Структура;
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
ПараметрыПоиска.Вставить("СтрокаПоиска", СтрокаПоиска);
Элементы.Список.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни;
Иначе
Элементы.Список.НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать;
КонецЕсли;
Если Не ВсеПодсистемы Или ЗначениеЗаполнено(СтрокаПоиска) Тогда
ПодсистемыОтчетов = Новый Массив;
Если Не ВсеПодсистемы Тогда
ПодсистемыОтчетов.Добавить(СтрокаДерева.Ссылка);
КонецЕсли;
Если ВсеПодсистемы Или ВключаяПодчиненные Тогда
ДобавитьРекурсивно(ПодсистемыОтчетов, СтрокаДерева.ПолучитьЭлементы());
КонецЕсли;
ПараметрыПоиска.Вставить("Подсистемы", ПодсистемыОтчетов);
КонецЕсли;
Если ЗначениеЗаполнено(ОтборТипОтчета) Тогда
ТипыОтчетов = Новый Массив;
Если ОтборТипОтчета = 1 Тогда
ТипыОтчетов.Добавить(Перечисления.ТипыОтчетов.Внутренний);
ТипыОтчетов.Добавить(Перечисления.ТипыОтчетов.Расширение);
ТипыОтчетов.Добавить(Перечисления.ТипыОтчетов.Дополнительный);
Иначе
ТипыОтчетов.Добавить(ОтборТипОтчета);
КонецЕсли;
ПараметрыПоиска.Вставить("ТипыОтчетов", ТипыОтчетов);
КонецЕсли;
ЕстьОтборПоВариантам = ПараметрыПоиска.Количество() > 0;
ПараметрыПоиска.Вставить("ПометкаУдаления", Ложь);
ПараметрыПоиска.Вставить("ЖесткийОтборПоПодсистемам", Не ВсеПодсистемы);
РезультатПоиска = ВариантыОтчетов.НайтиВариантыОтчетов(ПараметрыПоиска);
Список.Параметры.УстановитьЗначениеПараметра("ЕстьОтборПоВариантам", ЕстьОтборПоВариантам);
Список.Параметры.УстановитьЗначениеПараметра("ВариантыПользователя", РезультатПоиска.Ссылки);
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемОбработчикАктивизацииСтроки()
Если ДеревоПодсистемТекущаяСтрока <> Элементы.ДеревоПодсистем.ТекущаяСтрока Тогда
ОбновитьСодержимоеСписка();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьЗаголовокДереваПодсистем()
Элементы.ГруппаРазделы.Заголовок = ?(Элементы.ДеревоПодсистем.ТекущиеДанные = Неопределено,
НСтр("ru = 'Все разделы'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
Элементы.ДеревоПодсистем.ТекущиеДанные.Представление);
КонецПроцедуры
&НаСервере
Процедура ДобавитьРекурсивно(МассивПодсистем, КоллекцияСтрокДерева)
Для Каждого СтрокаДерева Из КоллекцияСтрокДерева Цикл
МассивПодсистем.Добавить(СтрокаДерева.Ссылка);
ДобавитьРекурсивно(МассивПодсистем, СтрокаДерева.ПолучитьЭлементы());
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ДеревоПодсистемЗаписатьСвойствоВМассив(МассивСтрокДерева, ИмяСвойства, МассивСсылок)
Для Каждого СтрокаДерева Из МассивСтрокДерева Цикл
МассивСсылок.Добавить(СтрокаДерева[ИмяСвойства]);
ДеревоПодсистемЗаписатьСвойствоВМассив(СтрокаДерева.ПолучитьЭлементы(), ИмяСвойства, МассивСсылок);
КонецЦикла;
КонецПроцедуры
// Записывает данные о размещении варианта отчета.
//
// Параметры:
// ПараметрыРазмещения - см. ПараметрыРазмещения
//
// Возвращаемое значение:
// Структура:
// * Размещено - Число
// * УжеРазмещены - Строка
// * НеМогутРазмещаться - Строка
//
&НаСервере
Функция РазместитьВариантыВПодсистеме(ПараметрыРазмещения)
ИсключаемыеПодсистемы = Новый Массив;
Если ПараметрыРазмещения.Действие = "Перемещение" Тогда
Источник = ПараметрыРазмещения.Источник; // см. СвойстваДанныхСтроки
СтрокаИсточник = ДеревоПодсистем.НайтиПоИдентификатору(Источник.Идентификатор);
ИсключаемыеПодсистемы.Добавить(СтрокаИсточник.Ссылка);
ДеревоПодсистемЗаписатьСвойствоВМассив(СтрокаИсточник.ПолучитьЭлементы(), "Ссылка", ИсключаемыеПодсистемы);
КонецЕсли;
Размещено = 0;
УжеРазмещены = "";
НеМогутРазмещаться = "";
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ПараметрыРазмещения.Варианты.Массив);
Блокировка.Заблокировать();
Для Каждого ВариантСсылка Из ПараметрыРазмещения.Варианты.Массив Цикл
Если ВариантСсылка.ТипОтчета = Перечисления.ТипыОтчетов.Внешний Тогда
НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) + " "
+ Строка(ВариантСсылка) + " (" + НСтр("ru = 'внешний'") + ")";
Продолжить;
ИначеЕсли ВариантСсылка.ПометкаУдаления Тогда
НеМогутРазмещаться = ?(НеМогутРазмещаться = "", "", НеМогутРазмещаться + Символы.ПС) + " "
+ Строка(ВариантСсылка) + " (" + НСтр("ru = 'помечен на удаление'") + ")";
Продолжить;
КонецЕсли;
ЕстьИзменения = Ложь;
ВариантОбъект = ВариантСсылка.ПолучитьОбъект(); // СправочникОбъект.ВариантыОтчетов -
Приемник = ПараметрыРазмещения.Приемник; // см. СвойстваДанныхСтроки
СтрокаПриемник = ВариантОбъект.Размещение.Найти(Приемник.Ссылка, "Подсистема");
Если СтрокаПриемник = Неопределено Тогда
СтрокаПриемник = ВариантОбъект.Размещение.Добавить();
СтрокаПриемник.Подсистема = Приемник.Ссылка;
КонецЕсли;
// Удаление строки из исходной подсистемы.
// Важно помнить что исключение предопределенного варианта из подсистемы выполняется путем выключения флажка
// подсистемы.
Если ПараметрыРазмещения.Действие = "Перемещение" Тогда
Для Каждого ИсключаемаяПодсистема Из ИсключаемыеПодсистемы Цикл
СтрокаИсточник = ВариантОбъект.Размещение.Найти(ИсключаемаяПодсистема, "Подсистема");
Если СтрокаИсточник <> Неопределено Тогда
Если СтрокаИсточник.Использование Тогда
СтрокаИсточник.Использование = Ложь;
Если Не ЕстьИзменения Тогда
ЗаполнитьЗначенияСвойств(СтрокаПриемник, СтрокаИсточник, "Важный, СмТакже");
ЕстьИзменения = Истина;
КонецЕсли;
КонецЕсли;
СтрокаИсточник.Важный = Ложь;
СтрокаИсточник.СмТакже = Ложь;
ИначеЕсли Не ВариантОбъект.Пользовательский Тогда
СтрокаИсточник = ВариантОбъект.Размещение.Добавить();
СтрокаИсточник.Подсистема = ИсключаемаяПодсистема;
ЕстьИзменения = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Регистрация строки в подсистеме-приемнике.
Если Не СтрокаПриемник.Использование Тогда
ЕстьИзменения = Истина;
СтрокаПриемник.Использование = Истина;
КонецЕсли;
Если ЕстьИзменения Тогда
Размещено = Размещено + 1;
ВариантОбъект.Записать();
Иначе
УжеРазмещены = ?(УжеРазмещены = "", "", УжеРазмещены + Символы.ПС) + " " + Строка(ВариантСсылка);
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Если ПараметрыРазмещения.Действие = "Перемещение" И Размещено > 0 Тогда
Элементы.ДеревоПодсистем.ТекущаяСтрока = Приемник.Идентификатор;
ОбновитьСодержимоеСписка();
КонецЕсли;
Возврат Новый Структура("Размещено, УжеРазмещены, НеМогутРазмещаться", Размещено, УжеРазмещены, НеМогутРазмещаться);
КонецФункции
&НаСервере
Процедура ЗаблокироватьВариантыОтчетовПередРазмещением(Блокировка, ВариантыОтчетов)
ИсточникДанных = Новый ТаблицаЗначений;
ИсточникДанных.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ВариантыОтчетов"));
Для Каждого ВариантОтчета Из ВариантыОтчетов Цикл
Строка = ИсточникДанных.Добавить();
Строка.Ссылка = ВариантОтчета;
КонецЦикла;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов");
ЭлементБлокировки.ИсточникДанных = ИсточникДанных;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка");
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСодержимоеСпискаКлиент(Событие)
Замер = НачатьЗамер(Событие);
ОбновитьСодержимоеСписка(Событие);
ЗакончитьЗамер(Замер);
КонецПроцедуры
&НаКлиенте
Функция НачатьЗамер(Событие)
Если Не ПараметрыКлиента.ВыполнятьЗамеры Тогда
Возврат Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаПоиска) И (Событие = "СтрокаПоискаПриИзменении" Или Событие = "ВыполнитьПоиск") Тогда
Имя = "СписокОтчетов.Поиск";
Иначе
Возврат Неопределено;
КонецЕсли;
Комментарий = Новый Соответствие;
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
Комментарий.Вставить("Поиск", Истина);
Комментарий.Вставить("СтрокаПоиска", Строка(СтрокаПоиска));
Комментарий.Вставить("ВключаяПодчиненные", ВключаяПодчиненные);
Иначе
Комментарий.Вставить("Поиск", Ложь);
КонецЕсли;
Замер = Новый Структура("МодульОценкаПроизводительностиКлиент, Идентификатор");
Замер.МодульОценкаПроизводительностиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент");
Замер.Идентификатор = Замер.МодульОценкаПроизводительностиКлиент.ЗамерВремени(Имя, Ложь, Ложь);
Замер.МодульОценкаПроизводительностиКлиент.УстановитьКомментарийЗамера(Замер.Идентификатор, Комментарий);
Возврат Замер;
КонецФункции
&НаКлиенте
Процедура ЗакончитьЗамер(Замер)
Если Замер <> Неопределено Тогда
Замер.МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(Замер.Идентификатор);
КонецЕсли;
КонецПроцедуры
// Параметры:
// ЭлементыДерева - Массив из ДанныеФормыЭлементДерева:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
// * Представление - Строка
// * Имя - Строка
// * ПолноеИмя - Строка
// * Приоритет - Строка
// * ПолноеПредставление - Строка
//
// Возвращаемое значение:
// ДанныеФормыЭлементДерева:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
// * Представление - Строка
// * Имя - Строка
// * ПолноеИмя - Строка
// * Приоритет - Строка
// * ПолноеПредставление - Строка
//
&НаСервере
Функция ЭлементДереваПодсистем(ЭлементыДерева)
Возврат ЭлементыДерева[0];
КонецФункции
// Параметры:
// ОписаниеВариантовОтчетов - см. ВариантыОтчетов.ОбновитьВариантыОтчетовИзФайлов
//
&НаКлиенте
Процедура УстановитьОтборПоОбновленнымИзФайловОтчетов(ОписаниеВариантовОтчетов)
ОбновленныеВариантыОтчетов = Новый СписокЗначений;
Для Каждого ОписаниеВариантаОтчета Из ОписаниеВариантовОтчетов Цикл
ОбновленныеВариантыОтчетов.Добавить(ОписаниеВариантаОтчета.Ссылка);
КонецЦикла;
ДочерниеПодсистемы = ДеревоПодсистем.ПолучитьЭлементы();
Если ДочерниеПодсистемы.Количество() > 0 Тогда
Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочерниеПодсистемы[0].ПолучитьИдентификатор();
КонецЕсли;
ОбновитьСодержимоеСписка();
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Ссылка",
ОбновленныеВариантыОтчетов, ВидСравненияКомпоновкиДанных.ВСписке,,,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный);
КонецПроцедуры
&НаСервере
Функция ТекстЗапросаПредставленияНаДругихЯзыкахВТабличнойЧасти()
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВариантыОтчетовПереопределяемый.Ссылка,
| ВариантыОтчетовПереопределяемый.ПометкаУдаления,
| ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.КлючЗамеров, ВариантыРасширенийПереопределяемый.КлючЗамеров) КАК
| КлючЗамеров,
| ВариантыОтчетовПереопределяемый.Пользовательский,
| НЕ ВариантыОтчетовПереопределяемый.Пользовательский КАК Предопределенный,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| И (ВариантыОтчетовПереопределяемый.Пользовательский
| ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВариантыОтчетовПереопределяемый.Наименование
| КОГДА НЕ &ЭтоОсновнойЯзык
| И (ВариантыОтчетовПереопределяемый.Пользовательский
| ИЛИ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетовПереопределяемый.Наименование) КАК
| СТРОКА(150))
| КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Наименование,
| ВариантыРасширенийПереопределяемый.Наименование), ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Наименование, ПредставленияИзРасширений.Наименование),
| ВариантыОтчетовПереопределяемый.Наименование) КАК СТРОКА(150))
| КОНЕЦ КАК Наименование,
| НЕ ВариантыОтчетовПереопределяемый.ТолькоДляАвтора КАК ДоступенВсемПользователям,
| ВариантыОтчетовПереопределяемый.Отчет,
| ВариантыОтчетовПереопределяемый.КлючВарианта,
| ВариантыОтчетовПереопределяемый.ТипОтчета,
| ВариантыОтчетовПереопределяемый.Автор,
| ВЫБОР
| КОГДА &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) <> """"
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетовПереопределяемый.Описание КАК СТРОКА(1000))
| КОГДА &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетовПереопределяемый.Описание, 1, 1) = """"
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ВариантыКонфигурацииПереопределяемый.Описание, ВариантыРасширенийПереопределяемый.Описание)
| КАК СТРОКА(1000))
| КОГДА НЕ &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ПредставленияВариантов.Описание, 1, 1) <> """"
| ТОГДА ВЫРАЗИТЬ(ПредставленияВариантов.Описание КАК СТРОКА(1000))
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ПредставленияИзКонфигурации.Описание, ПредставленияИзРасширений.Описание),
| ВариантыОтчетовПереопределяемый.Описание) КАК СТРОКА(1000))
| КОНЕЦ КАК Описание,
| &ИмяОтчета КАК ИмяОтчета,
| СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета,
| ВЫБОР
| КОГДА ВариантыОтчетовПереопределяемый.ПометкаУдаления = ИСТИНА
| ТОГДА 4
| КОГДА ВариантыОтчетовПереопределяемый.Пользовательский = ЛОЖЬ
| ТОГДА 5
| ИНАЧЕ 3
| КОНЕЦ КАК ИндексКартинки
|ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетовПереопределяемый
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ВариантыКонфигурацииПереопределяемый
| ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыКонфигурацииПереопределяемый.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ВариантыРасширенийПереопределяемый
| ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ВариантыРасширенийПереопределяемый.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Представления КАК ПредставленияВариантов
| ПО ВариантыОтчетовПереопределяемый.Ссылка = ПредставленияВариантов.Ссылка
| И (ПредставленияВариантов.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Представления КАК ПредставленияИзКонфигурации
| ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзКонфигурации.Ссылка
| И (ПредставленияИзКонфигурации.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений
| ПО ВариантыОтчетовПереопределяемый.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка
| И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК СведенияОРасширениях
| ПО СведенияОРасширениях.ВерсияРасширений = &ВерсияРасширений
| И СведенияОРасширениях.Идентификатор = ВариантыОтчетовПереопределяемый.Отчет
|ГДЕ
| ВариантыОтчетовПереопределяемый.Отчет В (&ДоступныеОтчеты)
| И ВЫБОР
| КОГДА &ЕстьОтборПоВариантам
| ТОГДА ВариантыОтчетовПереопределяемый.Ссылка В (&ВариантыПользователя)
| КОГДА НЕ ВариантыОтчетовПереопределяемый.ПредопределенныйВариант В (&ОтключенныеВариантыПрограммы)
| ТОГДА ИСТИНА
| ИНАЧЕ ВариантыОтчетовПереопределяемый.Ссылка В
| (ВЫБРАТЬ
| РодителиПереопределяемый.Родитель
| ИЗ
| Справочник.ВариантыОтчетов КАК РодителиПереопределяемый
| ГДЕ
| РодителиПереопределяемый.Отчет В (&ДоступныеОтчеты)
| И НЕ РодителиПереопределяемый.Ссылка В (&ВариантыПользователя))
| КОНЕЦ";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,35 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначен для хранения <a href="Catalog.ВариантыОтчетов/Help">вариантов отчетов</a> и настройки их размещения в командном интерфейсе.</p>
<h3><a name="Реквизиты">Сведения</a> о варианте отчета</h3>
<ul><li>Заполните <strong>Наименование</strong> варианта отчета, которое выводится в списках приложения и в панели отчетов.
</li>
<li>Заполните <b>Назначение:</b></li>
<ul><li><b>Для компьютеров и планшетов</b> - используется для устройств с широким экраном, т.к. в них возможно отображение таблиц с большим количеством колонок. </li>
<li><b>Для смартфонов (для мобильного клиента) </b>- оптимизировано для устройств с узким экраном.</li>
<li><b>Для любых устройств</b> - одинаково удобно подходит для любых устройств. </li></ul><li>Напишите <strong>Описание - </strong>подробную информацию о варианте отчета, которая выводится как подсказка в панелях отчетов и в списках вариантов отчетов.
</li>
<li>Укажите <b>Автора</b> отчета, выбрав из списка пользователей. Например, так можно закрепить варианты отчетов за конкретными сотрудниками, назначив из ответственными за актуальность варианта отчета. </li></ul><h3>Доступность</h3>
<div>На вкладке <b>Пользователи</b> с помощью кнопки <b>Подобрать</b> можно выбрать из списка <a href="Catalog.Пользователи/Help">пользователей</a>, которым будет доступен отчет. </div>
<div>Для указанных пользователей отчет будет отображаться в <a href="CommonForm.ПанельОтчетов/Help">панели отчетов</a>, подменю и окне выбора варианта отчета. Остальным пользователям, имеющим права на отчет, он будет доступен из списка Все отчеты, а также в режиме настройки панели отчетов.</div>
<div>
<p></p>
<h3><a name="Размещение">Размещение в панелях отчетов</a></h3>
<p>Размещение вариантов отчетов на вкладке <b>Разделы</b> могут менять администраторы вариантов отчетов и авторы.</p>
<ul><li>Включите один или несколько флажков в колонке <strong>Раздел, группа</strong> для размещения варианта отчетов в разделах или группах приложения. При размещении в разделе вариант отчета будет выводиться в верхней части панели отчетов раздела, без размещения в группах.
</li>
<li>
<div>В колонке <strong>Важность</strong> выберите способ выделения варианта отчета в группе: </div>
<ul><li>
<div><strong>Важный</strong> вариант отчета будет выделен жирным шрифтом.</div>
</li>
<li>
<div><strong>См. также</strong> вариант отчета будет выведен в отдельной группе внизу панели отчетов.</div></li></ul></li></ul><p></p>
<h3><a name="Команды">Формирование отчета</a></h3>
<ul><li>Нажмите <strong>Открыть</strong>, укажите необходимые для <a href="CommonForm.ФормаОтчета/Help">отчета</a> <a href="CommonForm.ФормаНастроекОтчета/Help">параметры</a>, затем нажмите <strong>Сформировать</strong>.</li></ul><h3>Сброс настроек</h3>
<div>Сброс настроек может быть необходим, если они ошибочны и затрудняют работу с отчетом. Выполните команды:</div>
<p></p>
<ul><li><strong>Еще - Сбросить настройки размещения</strong> - сбросить настройки размещения по данному варианту отчета;</li>
<li><strong>Еще - Сбросить настройки пользователей</strong> - сбросить пользовательские настройки в панелях отчетов по данному варианту отчета.</li></ul><p></p>
<h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></div></body></html>

View File

@ -0,0 +1,395 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОписаниеПеременных
&НаКлиенте
Перем ВызваноОповещениеФормы;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
ПараметрыОткрытияФормыОтчета = Параметры.ПараметрыОткрытияФормыОтчета;
Если ПараметрыОткрытияФормыОтчета <> Неопределено Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Доступен = ?(Объект.ТолькоДляАвтора, "Автору", "Всем");
ПолныеПраваНаВарианты = ВариантыОтчетов.ПолныеПраваНаВарианты();
ПравоНаЭтотВариант = ПолныеПраваНаВарианты Или Объект.Автор = Пользователи.АвторизованныйПользователь();
Если Не ПравоНаЭтотВариант Тогда
ТолькоПросмотр = Истина;
Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина;
КонецЕсли;
Если Объект.ПометкаУдаления Тогда
Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина;
КонецЕсли;
Если Не Объект.Пользовательский Тогда
Элементы.Наименование.ТолькоПросмотр = Истина;
Элементы.Автор.АвтоОтметкаНезаполненного = Ложь;
Элементы.Доступен.Видимость = Ложь;
КонецЕсли;
ЭтоВнешний = (Объект.ТипОтчета = Перечисления.ТипыОтчетов.Внешний);
Если ЭтоВнешний Тогда
Элементы.ДеревоПодсистем.ТолькоПросмотр = Истина;
КонецЕсли;
Элементы.Доступен.ТолькоПросмотр = Не ПолныеПраваНаВарианты;
Элементы.УведомитьПользователей.Видимость = ПолныеПраваНаВарианты;
Элементы.Пользователи.Видимость = ПолныеПраваНаВарианты Или Доступен = "Всем";
Элементы.Автор.ТолькоПросмотр = Не ПолныеПраваНаВарианты;
Элементы.ТехническаяИнформация.Видимость = ПолныеПраваНаВарианты;
// Заполнение имени отчета для команды "Просмотр".
Если Объект.ТипОтчета = Перечисления.ТипыОтчетов.Внутренний
Или Объект.ТипОтчета = Перечисления.ТипыОтчетов.Расширение Тогда
ИмяОтчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Отчет, "Имя");
ИначеЕсли Объект.ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный Тогда
ИмяОтчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Отчет, "ИмяОбъекта");
Иначе
ИмяОтчета = Объект.Отчет;
КонецЕсли;
ПерезаполнитьДерево(Ложь);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
ВариантыОтчетов.ВывестиПризнакУведомленияПользователейВариантаОтчета(Элементы.УведомитьПользователей);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ПараметрыОткрытияФормыОтчета <> Неопределено Тогда
Отказ = Истина;
ВариантыОтчетовКлиент.ОткрытьФормуОтчета(Неопределено, ПараметрыОткрытияФормыОтчета);
КонецЕсли;
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ВызваноОповещениеФормы <> Истина И (ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта()
Или ИмяСобытия = "Запись_НаборКонстант") Тогда
ПерезаполнитьДерево(Истина);
Элементы.ДеревоПодсистем.Развернуть(ДеревоПодсистем.ПолучитьЭлементы()[0].ПолучитьИдентификатор(), Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СпроситьОУведомленииПользователей(Отказ);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// Запись свойств, связанных с предопределенным вариантом отчета.
ОписаниеИзменено = Ложь;
Если ЭтоПредопределенный Тогда
ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
КонецЕсли;
ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание)
И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание));
Если Не ОписаниеИзменено Тогда
ТекущийОбъект.Описание = "";
Для Каждого ПредставлениеВарианта Из ТекущийОбъект.Представления Цикл
ПредставлениеВарианта.Описание = "";
КонецЦикла;
КонецЕсли;
КонецЕсли;
// Запись дерева подсистем.
ДеревоПриемник = РеквизитФормыВЗначение("ДеревоПодсистем", Тип("ДеревоЗначений"));
Если ТекущийОбъект.ЭтоНовый() Тогда
ИзмененныеРазделы = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Использование", 1), Истина);
Иначе
ИзмененныеРазделы = ДеревоПриемник.Строки.НайтиСтроки(Новый Структура("Модифицированность", Истина), Истина);
КонецЕсли;
ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда
ТекущийОбъект.Представления.Очистить();
КонецЕсли;
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПользователиВарианта", ПользователиВарианта);
ТекущийОбъект.ДополнительныеСвойства.Вставить("УведомитьПользователей", УведомитьПользователей);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
ПерезаполнитьДерево(Ложь);
ЗаполнитьИзПредопределенного(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ВызваноОповещениеФормы = Истина;
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы(, Объект.Ссылка);
ВызваноОповещениеФормы = Ложь;
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "ДеревоПодсистем", "*", Истина);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЗаполнитьИзПредопределенного(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета(
ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОписаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(Элемент.ТекстРедактирования, ЭтотОбъект, "Описание",
НСтр("ru = 'Описание'"));
КонецПроцедуры
&НаКлиенте
Процедура ДоступенПриИзменении(Элемент)
Объект.ТолькоДляАвтора = (Доступен = "Автору");
ВариантыОтчетовКлиент.ПроверитьПользователейВариантаОтчета(ЭтотОбъект);
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПользователиВарианта
&НаКлиенте
Процедура ПользователиВариантаПриИзменении(Элемент)
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаПередУдалением(Элемент, Отказ)
Если Не ИспользоватьГруппыПользователей И Не ИспользоватьВнешнихПользователей Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ВариантыОтчетовКлиент.ПользователиВариантаОтчетаОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПользователиВариантаПометкаПриИзменении(Элемент)
ВариантыОтчетовКлиент.ОформитьПользователейВариантаОтчета(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДеревоПодсистем
&НаКлиенте
Процедура ДеревоПодсистемИспользованиеПриИзменении(Элемент)
ВариантыОтчетовКлиент.ДеревоПодсистемИспользованиеПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДеревоПодсистемВажностьПриИзменении(Элемент)
ВариантыОтчетовКлиент.ДеревоПодсистемВажностьПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодобратьПользователей(Команда)
ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(ЭтотОбъект, ИспользоватьГруппыПользователей);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьГруппыВнешнихПользователей(Команда)
ВариантыОтчетовКлиент.ПодобратьПользователейВариантаОтчета(
ЭтотОбъект, Элементы.ПользователиВариантаГруппаПодобрать.Видимость, Истина);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
ВариантыОтчетов.УстановитьУсловноеОформлениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
ВариантыОтчетов.УстановитьУсловноеОформлениеДереваПодсистем(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Функция ПерезаполнитьДерево(Прочитать)
ВыделенныеСтроки = ОтчетыСервер.ЗапомнитьВыделенныеСтроки(ЭтотОбъект, "ДеревоПодсистем", "Ссылка");
Если Прочитать Тогда
Прочитать();
КонецЕсли;
ДеревоПриемник = ВариантыОтчетов.ДеревоПодсистемСформировать(ЭтотОбъект, Объект);
ЗначениеВРеквизитФормы(ДеревоПриемник, "ДеревоПодсистем");
ОтчетыСервер.ВосстановитьВыделенныеСтроки(ЭтотОбъект, "ДеревоПодсистем", ВыделенныеСтроки);
Возврат Истина;
КонецФункции
&НаСервере
Процедура ЗаполнитьИзПредопределенного(ВариантОбъект)
ЭтоПредопределенный = ВариантыОтчетов.ЭтоПредопределенныйВариантОтчета(ВариантОбъект);
Если Не ЭтоПредопределенный Тогда
Возврат;
КонецЕсли;
ПредопределенныйВариант = ВариантОбъект.ПредопределенныйВариант.ПолучитьОбъект();
ВариантОбъект.Наименование = ПредопределенныйВариант.Наименование;
ВариантОбъект.Описание = ПредопределенныйВариант.Описание;
КонецПроцедуры
&НаКлиенте
Процедура СпроситьОУведомленииПользователей(Отказ)
Если Не УведомитьПользователей Или ВопросОУведомленииПользователейЗадан Тогда
Возврат;
КонецЕсли;
КоличествоПользователей = КоличествоПользователейВариантОтчета(ПользователиВарианта);
Если КоличествоПользователей < 10 Тогда
Возврат;
КонецЕсли;
Отказ = Истина;
ВопросОУведомленииПользователейЗадан = Истина;
Обработчик = Новый ОписаниеОповещения("ПослеВопросаОУведомленииПользователей", ЭтотОбъект);
ВариантыОтчетовСлужебныйКлиент.СпроситьОУведомленииПользователей(Обработчик, КоличествоПользователей);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВопросаОУведомленииПользователей(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Нет Тогда
УведомитьПользователей = Ложь;
КонецЕсли;
Записать();
КонецПроцедуры
&НаСервереБезКонтекста
Функция КоличествоПользователейВариантОтчета(ПользователиВарианта)
Возврат РегистрыСведений.НастройкиВариантовОтчетов.КоличествоПользователейВариантОтчета(ПользователиВарианта);
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,106 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body class="">
<p>Предназначен для управления вариантами отчетов, для настройки размещения в панелях отчетов разделов приложения.</p>
<p>Приложение позволяет сохранять и использовать несколько вариантов одного и того же отчета. Предусмотрены предопределенные варианты отчетов. Также можно создавать свои собственные варианты отчетов, изменяя настройки существующих: <a href="v8help://mngui/reportFormMain">настройки</a> формирования и внешнего вида (состав полей, сортировки, группировки, условное оформление).</p>
<p>В приложении предусмотрена возможность создавать общие варианты отчетов. Общие варианты отчетов доступны всем пользователям этого отчета.</p>
<p>В разделах приложения размещены команды перехода к <a href="CommonForm.ПанельОтчетов/Help">панелям отчетов</a>, предусмотренным в этих разделах. Если отчетов много, то они распределяются по группам раздела. Для удобства работы с панелями отчетов их можно настраивать, например: скрывать редко используемые варианты отчетов, размещать часто используемые в быстром доступе. </p>
<p>Для администраторов вариантов отчетов предусмотрены также дополнительные возможности по настройке внешнего вида панели отчетов в приложении: можно выделить тот или иной вариант отчета как важный или поместить в группу <strong>См. также</strong>.</p>
<p>Список открывается по команде <strong>Все отчеты</strong> в панели отчетов раздела приложения. Состав разделов и групп в данном списке зависит от предоставленных прав и ролей. Все варианты отчетов без исключения доступны только администратору приложения.</p>
<p>Администратор приложения может открыть список по команде <strong>Варианты отчетов</strong> раздела <strong>Администрирование - Печатные формы, отчеты и обработки</strong>. Некоторые команды или действия, доступные для администратора, могут быть недоступны в списке <strong>Все отчеты</strong>. Об этих особенностях упоминается при описании возможностей списка.</p>
<p>Список состоит из двух частей: </p>
<ul><li>в левой части расположено дерево разделов и групп командного интерфейса приложения, в которых имеются панели отчетов.
<ul><li>При перемещении по узлам дерева список автоматически фильтруется по выбранному разделу или группе.
</li>
<li>При помощи флажка <strong>Включая подчиненные</strong> можно показать все отчеты раздела или группы, включая варианты отчетов вложенных групп. </li></ul></li>
<li>В правой части размещается список отчетов. </li></ul><p>В списке выводится: </p>
<ul><li>
<div><strong>Наименование</strong> - полное наименование варианта отчета, которое выводится в списках.</div>
</li>
<li><strong>Автор</strong> - полное имя пользователя, который является автором варианта отчета.
</li>
<li><b>Назначение:</b></li>
<ul><li><b>Для компьютеров и планшетов</b> - используется для устройств с широким экраном, т.к. в них возможно отображение таблиц с большим количеством колонок. </li>
<li><b>Для смартфонов (для мобильного клиента) </b>- оптимизировано для устройств с узким экраном.</li>
<li><b>Для любых устройств</b> - одинаково удобно подходит для любых устройств. </li></ul><li><strong>Описание</strong> - подробная информация о варианте отчета.</li></ul><p>Для того чтобы добавить колонки в список, нажмите <strong>Еще - Изменить форму</strong> (настройки сохраняются):</p>
<ul><li>
<div>Картинка <strong>Доступен всем пользователям:</strong></div>
<ul><li>
<div>видна - вариант отчета доступен всем пользователям, </div>
</li>
<li>
<div>не видна - вариант отчета доступен только автору.</div></li></ul></li>
<li><strong>Техническая информация</strong>:
<ul><li>
<div><strong>Имя отчета</strong> - имя, под которым отчет зарегистрирован в приложении. </div>
</li>
<li>
<div><strong>Отчет</strong> - полное наименование отчета (представление). </div>
</li>
<li>
<div><strong>Тип отчета</strong> - существуют три типа отчетов: </div>
<ul><li>
<div><strong>Внутренний</strong> </div>
</li>
<li>
<div><strong>Дополнительный</strong> </div>
</li>
<li>
<div><strong>Внешний</strong> - варианты внешних отчетов не могут размещаться в панели отчетов.</div></li></ul></li>
<li>
<div><strong>Ключ варианта</strong> - имя предопределенного или уникальный идентификатор пользовательского варианта отчета. </div>
</li>
<li>
<div><strong>Наименования параметров и отборов</strong> - перечисляются параметры и отборы отчетов.</div>
</li>
<li>
<div><strong>Наименования полей</strong> - перечисляются наименования полей отчетов.</div></li></ul></li></ul><h3>Поиск</h3>
<p>Если список вариантов отчетов большой, то с помощью поиска можно быстро найти нужный вариант отчета. </p>
<ul><li>В поле <strong>Поиск</strong> наберите искомое значение, нажмите <strong>Найти</strong>. Поиск проводится в выделенном разделе (группе).
<ul><li>
<p>Отчеты можно искать по слову (части слова), также возможен поиск по нескольким словам. Поиск осуществляется: </p>
<ul><li>в наименованиях отчета;
</li>
<li>в описаниях варианта отчета;
</li>
<li>в представлениях полей варианта отчета;
</li>
<li>в представлениях параметров и отборов варианта отчета;
</li>
<li>в наименованиях пользовательских настроек варианта отчета;
</li>
<li>в наименованиях разделов и групп приложения и панели отчетов.</li></ul></li></ul></li></ul><h3>Формирование отчета</h3>
<ul><li>
<div>Выделите один из вариантов отчетов, нажмите <strong>Открыть</strong>, произведите необходимые настройки, нажмите <strong>Сформировать</strong>.</div>
</li>
<li>
<div>В списке <strong>Все отчеты</strong> также можно воспользоваться двойным щелчком мыши на нужном варианте отчета.</div></li></ul><h3>Настройка варианта отчета</h3>
<ul><li>
<div>Выберите вариант отчета, нажмите <strong>Изменить</strong>, отредактируйте необходимые <a href="Catalog.ВариантыОтчетов.Form.ФормаЭлемента/Help">поля</a>.</div>
</li>
<li>
<div>В списке <strong>Варианты отчетов</strong>, предназначенном только для администратора, также можно воспользоваться двойным щелчком мыши на нужном варианте отчета.</div></li></ul><h3>Обновление варианта отчета из файла</h3>
<p></p>
<ul><li>С помощью кнопки <img src="CommonPicture.ОбновитьФайлИзФайлаНаДиске"></img><b>Обновить из файла</b> можно загрузить вариант отчета, сохраненный вместе с пользовательскими настройками в архивный файл на компьютере. Укажите путь к архиву с вариантом отчета.</li>
<li>Данная возможность предназначена для обмена настройками вариантов отчета между информационными базами идентичной структуры.</li></ul><p></p>
<h3>Сохранение варианта отчета в файл</h3>
<p></p>
<ul><li>С помощью кнопки <img src="CommonPicture.СохранитьФайлКак"></img><b>Сохранить в файл</b> можно записать вариант отчета (с включением пользовательских настроек). Укажите путь к архивному файлу на компьютере. Вместе с вариантом отчета по умолчанию сохраняются и пользовательские настройки. Можно отменить сохранение всех или некоторых настроек с помощью флажков.</li>
<li>Данная возможность предназначена для обмена настройками вариантов отчета между информационными базами идентичной структуры.</li></ul><h3>Удаление варианта отчета</h3>
<ul><li>Пользовательский вариант отчета с помощью команды меню <strong>Еще</strong> можно <strong>Пометить на удаление</strong>. Также можно воспользоваться клавишей <strong>Del</strong>.
</li>
<li>Повторно выполните эту команду, для того чтобы <strong>Снять пометку удаления</strong>.
</li>
<li>Эта возможность недоступна для предопределенных вариантов отчетов.</li></ul><h3>Размещение вариантов отчетов в разделах приложения </h3>
<p><a href="Catalog.ВариантыОтчетов.Form.РазмещениеВРазделах/Help">Размещение</a> варианта отчета может быть изменено автором отчета или администратором.</p>
<ul><li>Варианты отчетов можно перемещать из текущего раздела/группы в другие при помощи перетаскивания мышью. Если при перетаскивании зажать клавишу <strong>Ctrl</strong>, то вариант отчета будет добавлен в новую группу, а также останется в текущей группе. Приложение запрашивает подтверждение размещения варианта отчета. Для подтверждения нажмите <strong>Да</strong>.
</li>
<li>
<p>С помощью команды <strong>Еще - Разместить в разделах</strong> можно настроить размещение сразу для нескольких вариантов отчетов, указав, в каких разделах и группах командного интерфейса приложения они должны располагаться.</p>
</li>
<li>
<p>Предусмотрены дополнительные возможности по настройке внешнего вида панели отчетов в приложении: можно выделить тот или иной вариант отчета как <strong>Важный</strong> или поместить в группу <strong>См. также</strong>.</p></li></ul><ul><li>
<p> В списке <strong>Варианты отчетов</strong>, предназначенном только для администратора, команда <strong>Разместить в разделах</strong> для удобства управления вариантами отчетов выведена в командную панель списка.</p></li></ul><h3>Сброс настроек</h3>
<ul><li>
<div>Нажмите <strong>Еще - Сбросить настройки размещения</strong>, для того чтобы восстановить исходные настройки выбранных вариантов отчетов: размещение в разделах приложения, доступность и видимость по умолчанию. Может выполняться только для предопределенных вариантов отчетов; </div>
</li>
<li>Нажмите <strong>Еще - Сбросить настройки пользователей</strong>, для того чтобы сбросить пользовательские настройки выбранных вариантов отчетов: видимость и быстрый доступ.</li></ul><h3>См. также: </h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,300 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Не МобильныйАвтономныйСервер Тогда
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
Результат = Новый Массив;
Результат.Добавить("Описание");
Результат.Добавить("Автор");
Результат.Добавить("ТолькоДляАвтора");
Возврат Результат;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| Пользовательский = ЛОЖЬ
| ИЛИ ТолькоДляАвтора = ЛОЖЬ
| ИЛИ ЭтоАвторизованныйПользователь(Автор)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЭтоАвторизованныйПользователь(Автор)";
Ограничение.ТекстДляВнешнихПользователей = Ограничение.Текст;
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
// Переопределение для целей избранного - вместо карточки с настройками размещения отчета будет открываться его
// основная форма.
Если ВидФормы = "ФормаОбъекта" Тогда
СсылкаВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Ключ");
Если Не ЗначениеЗаполнено(СсылкаВарианта) Тогда
ВызватьИсключение НСтр("ru = 'Новый вариант отчета можно создать только из формы отчета'");
КонецЕсли;
ПараметрыОткрытия = ВариантыОтчетов.ПараметрыОткрытия(СсылкаВарианта);
ВариантыОтчетовКлиентСервер.ДополнитьСтруктуруКлючом(ПараметрыОткрытия, "ВыполнятьЗамеры", Ложь);
Если ПараметрыОткрытия.ТипОтчета = "Внутренний" Или ПараметрыОткрытия.ТипОтчета = "Расширение" Тогда
Вид = "Отчет";
ИначеЕсли ПараметрыОткрытия.ТипОтчета = "Дополнительный" Тогда
Вид = "ВнешнийОтчет";
Если Не ПараметрыОткрытия.Свойство("Подключен") Тогда
ВариантыОтчетов.ПриПодключенииОтчета(ПараметрыОткрытия);
КонецЕсли;
Если Не ПараметрыОткрытия.Подключен Тогда
ВызватьИсключение НСтр("ru = 'Вариант внешнего отчета можно открыть только из формы отчета.'");
КонецЕсли;
Иначе
ВызватьИсключение НСтр("ru = 'Вариант внешнего отчета можно открыть только из формы отчета.'");
КонецЕсли;
ПолноеИмяОтчета = Вид + "." + ПараметрыОткрытия.ИмяОтчета;
КлючУникальности = ОтчетыКлиентСервер.КлючУникальности(ПолноеИмяОтчета, ПараметрыОткрытия.КлючВарианта);
ПараметрыОткрытия.Вставить("КлючПараметровПечати", КлючУникальности);
ПараметрыОткрытия.Вставить("КлючСохраненияПоложенияОкна", КлючУникальности);
СтандартнаяОбработка = Ложь;
Если ПараметрыОткрытия.ТипОтчета = "Дополнительный" Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыОткрытия, Параметры);
ВыбраннаяФорма = "Справочник.ВариантыОтчетов.ФормаОбъекта";
Параметры.Вставить("ПараметрыОткрытияФормыОтчета", ПараметрыОткрытия);
Возврат;
КонецЕсли;
ВыбраннаяФорма = ПолноеИмяОтчета + ".Форма";
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Параметры, ПараметрыОткрытия);
КонецЕсли;
КонецПроцедуры
#КонецЕсли
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
Поля.Добавить("Наименование");
Поля.Добавить("Ссылка");
Поля.Добавить("Пользовательский");
Поля.Добавить("ПредопределенныйВариант");
Поля.Добавить("ТипОтчета");
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
Если ВариантыОтчетовВызовСервера.ЭтоПредопределенныйВариантОтчета(Данные) Тогда
Данные.Ссылка = Данные.ПредопределенныйВариант;
КонецЕсли;
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление,
СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
////////////////////////////////////////////////////////////////////////////////
// Обработчики обновления.
// Регистрирует данные к обновлению в плане обмена ОбновлениеИнформационнойБазы
// см. Стандарты и методики разработки прикладных решений: Параллельный режим отложенного обновления.
//
// Параметры:
// Параметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Варианты.Ссылка
|ИЗ
| Справочник.ВариантыОтчетов КАК Варианты
|ГДЕ
| Варианты.Отчет = &УниверсальныйОтчет
| И Варианты.Пользовательский
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Варианты.Ссылка
|ИЗ
| Справочник.ВариантыОтчетов КАК Варианты
|ГДЕ
| Варианты.Назначение = ЗНАЧЕНИЕ(Перечисление.НазначенияВариантовОтчетов.ПустаяСсылка)
|");
УниверсальныйОтчет = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Метаданные.Отчеты.УниверсальныйОтчет);
Запрос.УстановитьПараметр("УниверсальныйОтчет", УниверсальныйОтчет);
Ссылки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Ссылки);
КонецПроцедуры
// Обрабатывает данные, зарегистрированные в плане обмена ОбновлениеИнформационнойБазы
// см. Стандарты и методики разработки прикладных решений: Параллельный режим отложенного обновления.
//
// Параметры:
// Параметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке
//
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ОбъектМетаданных = Метаданные.Справочники.ВариантыОтчетов;
ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя();
Обработано = 0;
Отказано = 0;
Назначение = ВариантыОтчетовСлужебный.НазначениеВариантаОтчетаПоУмолчанию();
УниверсальныйОтчет = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Метаданные.Отчеты.УниверсальныйОтчет);
Вариант = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, ПолноеИмяОбъекта);
Пока Вариант.Следующий() Цикл
ПредставлениеСсылки = Строка(Вариант.Ссылка);
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъекта);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Вариант.Ссылка);
Блокировка.Заблокировать();
ВариантОбъект = Вариант.Ссылка.ПолучитьОбъект();
Если ВариантОбъект = Неопределено Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Вариант.Ссылка);
ЗафиксироватьТранзакцию();
Продолжить;
КонецЕсли;
УстановкаИсточникаДанныхВарианта = Ложь;
Если ВариантОбъект.Отчет = УниверсальныйОтчет И ВариантОбъект.Пользовательский Тогда
УстановкаИсточникаДанныхВарианта = Истина;
НастройкиВарианта = Отчеты.УниверсальныйОтчет.НастройкиВарианта(ВариантОбъект);
Если НастройкиВарианта = Неопределено И ЗначениеЗаполнено(ВариантОбъект.Назначение) Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Вариант.Ссылка);
ЗафиксироватьТранзакцию();
Продолжить;
КонецЕсли;
ВариантОбъект.Настройки = Новый ХранилищеЗначения(НастройкиВарианта, Новый СжатиеДанных(9));
КонецЕсли;
Если Не ЗначениеЗаполнено(ВариантОбъект.Назначение) Тогда
ВариантОбъект.Назначение = Назначение;
КонецЕсли;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВариантОбъект);
Обработано = Обработано + 1;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
// Если не удалось обработать вариант отчета, повторяем попытку снова.
Отказано = Отказано + 1;
Если УстановкаИсточникаДанныхВарианта Тогда
ШаблонКомментария = НСтр("ru = 'Не удалось установить источник данных варианта отчета %1.
|Возможно он поврежден и не подлежит восстановлению.
|
|Техническая информация о проблеме: %2'");
Иначе
ШаблонКомментария = НСтр("ru = 'Не удалось установить назначение варианта отчета %1.
|Возможно он поврежден и не подлежит восстановлению.
|
|Техническая информация о проблеме: %2'");
КонецЕсли;
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонКомментария, ПредставлениеСсылки, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбновлениеИнформационнойБазы.ЗаписатьОшибкуВЖурналРегистрации(
Вариант.Ссылка,
ПредставлениеСсылки,
Комментарий);
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь,
ПолноеИмяОбъекта);
Если Обработано = 0 И Отказано <> 0 Тогда
ШаблонСообщения = НСтр("ru = 'Не удалось обработать некоторые варианты отчетов: %1'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Отказано);
ВызватьИсключение ТекстСообщения;
Иначе
ШаблонКомментария = НСтр("ru = 'Обработан очередной пакет вариантов отчетов: %1'");
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, Обработано);
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
ОбъектМетаданных,, Комментарий);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
#КонецЕсли

View File

@ -0,0 +1,371 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Если Не МобильныйАвтономныйСервер Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ИнициализироватьОбъект(ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ИсключаемыеРеквизиты = Новый Массив;
Если Не Пользовательский Тогда
ИсключаемыеРеквизиты.Добавить("Автор");
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты);
Если Наименование <> "" И ВариантыОтчетов.НаименованиеЗанято(Отчет, Ссылка, Наименование) Тогда
Отказ = Истина;
ОбщегоНазначения.СообщитьПользователю(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '""%1"" занято, укажите другое наименование.'"),
Наименование),,
"Наименование");
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
Если ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных") Тогда
ПроверитьЗаполнениеПредопределенного(Отказ);
КонецЕсли;
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());
ПользователемИзмененаПометкаУдаления = (Не ЭтоНовый() И ПометкаУдаления <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления")
И Не ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных"));
Если Не Пользовательский И ПользователемИзмененаПометкаУдаления Тогда
Если ПометкаУдаления Тогда
ТекстОшибки = НСтр("ru = 'Пометка на удаление предопределенного варианта отчета запрещена.'");
Иначе
ТекстОшибки = НСтр("ru = 'Снятие пометки удаления предопределенного варианта отчета запрещено.'");
КонецЕсли;
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Если Не ПометкаУдаления И ПользователемИзмененаПометкаУдаления Тогда
НаименованиеЗанято = ВариантыОтчетов.НаименованиеЗанято(Отчет, Ссылка, Наименование);
КлючВариантаЗанят = ВариантыОтчетов.КлючВариантаЗанят(Отчет, Ссылка, КлючВарианта);
Если НаименованиеЗанято Или КлючВариантаЗанят Тогда
ТекстОшибки = НСтр("ru = 'Не удалось снять пометку удаления варианта отчета:'");
Если НаименованиеЗанято Тогда
ТекстОшибки = ТекстОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Наименование ""%1"" уже занято другим вариантом этого отчета.'"),
Наименование);
Иначе
ТекстОшибки = ТекстОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ключ варианта ""%1"" уже занят другим вариантом этого отчета.'"),
КлючВарианта);
КонецЕсли;
ТекстОшибки = ТекстОшибки + НСтр("ru = 'Перед снятием пометки удаления варианта отчета
|установите пометку удаления конфликтующего варианта отчета.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
КонецЕсли;
Если ПользователемИзмененаПометкаУдаления Тогда
ИнтерактивнаяПометкаУдаления = ?(Пользовательский, ПометкаУдаления, Ложь);
КонецЕсли;
ПроверитьРазмещение();
ЗаполнитьПоляДляПоиска();
Если Не Пользовательский И ТолькоДляАвтора Тогда
ТолькоДляАвтора = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПользователиВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства,
"ПользователиВарианта");
ЭтоНовый = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь);
УведомитьПользователей = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства,
"УведомитьПользователей", Ложь);
РегистрыСведений.НастройкиВариантовОтчетов.ЗаписатьНастройкиДоступностиВариантаОтчета(
Ссылка, ЭтоНовый, ПользователиВарианта, УведомитьПользователей);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ИнициализироватьОбъект(ДанныеЗаполнения)
Если ТипЗнч(ДанныеЗаполнения) <> Тип("Структура") Тогда
Возврат;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
НастройкиВариантаОтчета = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаполнения, "Настройки");
Если ТипЗнч(НастройкиВариантаОтчета) = Тип("НастройкиКомпоновкиДанных") Тогда
Настройки = Новый ХранилищеЗначения(НастройкиВариантаОтчета, Новый СжатиеДанных(9));
КонецЕсли;
#Область УстановкаТипаОтчета
Если ТипЗнч(Отчет) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Внутренний;
ИначеЕсли ТипЗнч(Отчет) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Расширение;
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки")
И ТипЗнч(Отчет) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный;
ИначеЕсли ТипЗнч(Отчет) = Тип("Строка") Тогда
ТипОтчета = Перечисления.ТипыОтчетов.Внешний;
КонецЕсли;
#КонецОбласти
#Область УстановкаДанныхВЗависимостиОтЗначенияАвтора
Если ЗначениеЗаполнено(Автор) Тогда
Пользовательский = ЗначениеЗаполнено(Автор);
ПользователиВарианта = Новый СписокЗначений;
ПользователиВарианта.Добавить(Автор,, Истина);
ДополнительныеСвойства.Вставить("ПользователиВарианта", ПользователиВарианта);
КонецЕсли;
#КонецОбласти
#Область УстановкаРодителя
Основание = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДанныеЗаполнения, "Основание");
Если ТипЗнч(Основание) = ТипЗнч(Ссылка) Тогда
СвойстваОснования = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Основание, "Родитель, Отчет, Пользовательский, Размещение");
Если СвойстваОснования.Отчет = Отчет Тогда
Родитель = ?(СвойстваОснования.Пользовательский, СвойстваОснования.Родитель, Основание);
КонецЕсли;
Размещение.Загрузить(СвойстваОснования.Размещение.Выгрузить());
КонецЕсли;
Если Не ЗначениеЗаполнено(Родитель) Тогда
ЗаполнитьРодителя();
КонецЕсли;
ЗаполнитьРазмещениеПоРодителю();
#КонецОбласти
КонецПроцедуры
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРазмещение()
Если ЗначениеЗаполнено(Контекст) Тогда
Размещение.Очистить();
Возврат;
КонецЕсли;
// Удаление из табличной части подсистем, помеченных на удаление.
УдаляемыеСтроки = Новый Массив;
Подсистемы = Размещение.ВыгрузитьКолонку("Подсистема");
Подсистемы = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Подсистемы, "ПометкаУдаления");
Для Каждого Подсистема Из Подсистемы Цикл
Если Подсистема.Значение Тогда
СтрокаРазмещения = Размещение.Найти(Подсистема.Ключ, "Подсистема");
Если СтрокаРазмещения <> Неопределено Тогда
УдаляемыеСтроки.Добавить(СтрокаРазмещения);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаРазмещения Из УдаляемыеСтроки Цикл
Размещение.Удалить(СтрокаРазмещения);
КонецЦикла;
КонецПроцедуры
// Заполнение реквизитов НаименованияПолей и НаименованияПараметровИОтборов.
Процедура ЗаполнитьПоляДляПоиска()
Дополнительный = (ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный);
Если Не Пользовательский И Не Дополнительный Тогда
Возврат;
КонецЕсли;
Попытка
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ВариантыОтчетов.ЗаполнитьПоляДляПоиска(ЭтотОбъект);
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось проиндексировать схему варианта ""%1"" отчета ""%2"":'"),
КлючВарианта, Строка(Отчет));
ТекстОшибки = ТекстОшибки + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВариантыОтчетов.ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, Ссылка);
КонецПопытки;
КонецПроцедуры
// Заполняет родителя варианта отчета, основываясь на ссылке отчета и предопределенных настройках.
Процедура ЗаполнитьРодителя() Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ПредопределенныеВарианты.Ссылка,
| ПредопределенныеВарианты.Включен
|ПОМЕСТИТЬ ПредопределенныеВарианты
|ИЗ
| Справочник.ПредопределенныеВариантыОтчетов КАК ПредопределенныеВарианты
|ГДЕ
| ТИПЗНАЧЕНИЯ(&Отчет) <> ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| И ПредопределенныеВарианты.Отчет = &Отчет
| И НЕ ПредопределенныеВарианты.ПометкаУдаления
| И ПредопределенныеВарианты.ГруппироватьПоОтчету
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| ПредопределенныеВарианты.Ссылка,
| ПредопределенныеВарианты.Включен
|ИЗ
| Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ПредопределенныеВарианты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПредопределенныеВариантыОтчетовВерсийРасширений КАК ДоступныеВарианты
| ПО ДоступныеВарианты.Вариант = ПредопределенныеВарианты.Ссылка
|ГДЕ
| ТИПЗНАЧЕНИЯ(&Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| И ПредопределенныеВарианты.Отчет = &Отчет
| И ПредопределенныеВарианты.ГруппироватьПоОтчету
| И НЕ ДоступныеВарианты.Вариант ЕСТЬ NULL
|
|УПОРЯДОЧИТЬ ПО
| ПредопределенныеВарианты.Включен УБЫВ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ВариантыОтчетов.Ссылка
|ИЗ
| ПредопределенныеВарианты КАК ПредопределенныеВарианты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов КАК ВариантыОтчетов
| ПО ПредопределенныеВарианты.Ссылка = ВариантыОтчетов.ПредопределенныйВариант
|ГДЕ
| НЕ ВариантыОтчетов.ПометкаУдаления");
Запрос.УстановитьПараметр("Отчет", Отчет);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Родитель = Выборка.Ссылка;
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьРазмещениеПоРодителю()
Если Размещение.Количество() > 0 Или Не ЗначениеЗаполнено(Родитель) Тогда
Возврат;
КонецЕсли;
СвойстваРодителя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Родитель, "ПредопределенныйВариант, Размещение");
Размещение.Загрузить(СвойстваРодителя.Размещение.Выгрузить());
Если Размещение.Количество() > 0 Или Не ЗначениеЗаполнено(СвойстваРодителя.ПредопределенныйВариант) Тогда
Возврат;
КонецЕсли;
РазмещениеПредопределенногоВарианта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
СвойстваРодителя.ПредопределенныйВариант, "Размещение");
Размещение.Загрузить(РазмещениеПредопределенногоВарианта.Выгрузить());
Для Каждого СтрокаТаблицы Из Размещение Цикл
СтрокаТаблицы.Использование = Истина;
КонецЦикла;
КонецПроцедуры
// Базовые проверки корректности данных предопределенных вариантов отчетов.
Процедура ПроверитьЗаполнениеПредопределенного(Отказ)
Если ПометкаУдаления Или Не Предопределенный Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Отчет) Тогда
ВызватьИсключение НеЗаполненоПоле("Отчет");
ИначеЕсли Не ЗначениеЗаполнено(ТипОтчета) Тогда
ВызватьИсключение НеЗаполненоПоле("ТипОтчета");
ИначеЕсли ТипОтчета <> ВариантыОтчетов.ТипОтчета(Отчет) Тогда
ТекстОшибки = НСтр("ru = 'Противоречивые значения полей ""%1"" и ""%2""'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, "ТипОтчета", "Отчет");
ИначеЕсли Не ЗначениеЗаполнено(ПредопределенныйВариант) И (ТипОтчета = Перечисления.ТипыОтчетов.Внутренний
Или ТипОтчета = Перечисления.ТипыОтчетов.Расширение) Тогда
ВызватьИсключение НеЗаполненоПоле("ПредопределенныйВариант");
КонецЕсли;
КонецПроцедуры
Функция НеЗаполненоПоле(ИмяПоля)
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнено поле ""%1""'"), ИмяПоля);
КонецФункции
#КонецОбласти
#КонецЕсли
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

View File

@ -0,0 +1,894 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0adf02da-940a-4bfc-afa5-59605494a169">
<producedTypes>
<objectType typeId="dc52ee8f-58ca-4f47-b0b8-920fc09b7d9c" valueTypeId="67690f89-a81f-41be-805f-32b5cd3cecce"/>
<refType typeId="b7ea0510-1c17-417a-b55c-5e6720efe4fd" valueTypeId="d31bbdba-68d9-45b2-b5a4-06729ba1cd38"/>
<selectionType typeId="24999b67-76ae-4289-92b7-ce85b0940910" valueTypeId="88e778e1-fd71-444f-99d9-9d4799abd5d7"/>
<listType typeId="f8c2c1dd-7f8e-4a59-b670-b32cc6729e93" valueTypeId="8b148880-c882-48a7-ac4a-c5a2a362d48d"/>
<managerType typeId="3be0f593-4458-48a4-aedb-831ee059324a" valueTypeId="a7049122-5b18-4b31-9ca8-aec027da8cc4"/>
</producedTypes>
<name>ВариантыОтчетов</name>
<synonym>
<key>ru</key>
<value>Отчеты</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.ВариантыОтчетов.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<synonym>
<key>ru</key>
<value>Родитель, Основной вариант</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Исходный вариант отчета, на основании которого сохранен этот вариант отчета</value>
</toolTip>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.ВариантыОтчетов.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<toolTip>
<key>ru</key>
<value>Краткое представление отчета.
Выводится в панелях отчетов.</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<fillValue xsi:type="core:StringValue">
<value> </value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<includeHelpInContents>true</includeHelpInContents>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Вариант отчета</value>
</objectPresentation>
<hierarchical>true</hierarchical>
<hierarchyType>HierarchyOfItems</hierarchyType>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<descriptionLength>150</descriptionLength>
<codeType>String</codeType>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.ВариантыОтчетов.Form.ФормаЭлемента</defaultObjectForm>
<defaultListForm>Catalog.ВариантыОтчетов.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.ВариантыОтчетов.Form.ФормаСписка</defaultChoiceForm>
<attributes uuid="8361991a-0f30-4a03-9a4c-90556b744f53">
<name>Автор</name>
<synonym>
<key>ru</key>
<value>Автор</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Автор или ответственный за вариант отчета</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Пользователи.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5a3cc2a8-f519-45ac-af9b-c57a4f1acdc0">
<name>ВидимостьПоУмолчанию</name>
<synonym>
<key>ru</key>
<value>По умолчанию виден в панелях отчетов</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>&quot;Да&quot; - вариант отчета будет виден в панелях отчетов всех пользователей.
&quot;Нет&quot; - вариант отчета будет скрыт в панелях отчетов всех пользователей.
Каждый пользователь может скрывать/показывать этот вариант отчета в режиме настройки панели отчетов.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:BooleanValue">
<value>true</value>
</fillValue>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="08427a9a-fb3a-4bc1-b2e2-72e4f89680cd">
<name>ВидимостьПоУмолчаниюПереопределена</name>
<synonym>
<key>ru</key>
<value>Видимость по умолчанию переопределена</value>
</synonym>
<comment>Когда Истина то вместо флажка ВидимостьПоУмолчанию используется значение аналогичного флажка предопределенного варианта отчета.</comment>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Служебный реквизит, который используется для предопределенных вариантов отчетов.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="259cb8f5-9e78-4b2f-941b-ccb4b1112c8b">
<name>ИнтерактивнаяПометкаУдаления</name>
<synonym>
<key>ru</key>
<value>Интерактивная пометка удаления</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Пометка удаления, установленная пользователем</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="24f9d1a6-73d0-4cc7-b3ca-d36c5c7a9892">
<name>КлючВарианта</name>
<synonym>
<key>ru</key>
<value>Ключ варианта</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>256</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Уникальный ключ варианта отчета</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="73c1a829-0191-486b-97a0-7f333c6f8011">
<name>КлючевыеСлова</name>
<synonym>
<key>ru</key>
<value>Ключевые слова</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дополнительная терминология (в т.ч. специализированная или устаревшая).
Используется при поиске.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="db28f23f-a771-46c0-96e8-5e4389b28b8b">
<name>Контекст</name>
<synonym>
<key>ru</key>
<value>Контекст</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>430</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Служебный реквизит. Полное имя объекта метаданных, в контексте которого формируется вариант отчета. Используется, как разделитель вариантов отчетов.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5504f5d1-35d8-4a47-a0e1-003fe00395c1">
<name>НаименованияПараметровИОтборов</name>
<synonym>
<key>ru</key>
<value>Наименования параметров и отборов</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Параметры и фильтры, выведенные в отчете.
Используется при поиске.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="56242b05-d722-4d4a-82d9-517e0e169d0b">
<name>НаименованияПолей</name>
<synonym>
<key>ru</key>
<value>Наименования полей</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Поля, выведенные в отчете.
Используется при поиске.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="f9196766-4ae2-4a73-bed6-4a8838323e02">
<name>Настройки</name>
<synonym>
<key>ru</key>
<value>Настройки</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользовательские настройки варианта отчета</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4eeda6df-fb48-4c88-853f-9c35e2b3a3cf">
<name>Описание</name>
<synonym>
<key>ru</key>
<value>Описание</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Выводится в панели отчетов как подсказка.</value>
</toolTip>
<multiLine>true</multiLine>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="52fd1e04-44b6-4405-a2de-ec5c0cf66b64">
<name>ОписаниеЯзык1</name>
<synonym>
<key>ru</key>
<value>Описание (дополнительный язык)</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Выводится в панели отчетов как подсказка.</value>
</toolTip>
<multiLine>true</multiLine>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9a647b38-73da-4491-997b-773059cfd1c9">
<name>ОписаниеЯзык2</name>
<synonym>
<key>ru</key>
<value>Описание (дополнительный язык 2)</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Выводится в панели отчетов как подсказка.</value>
</toolTip>
<multiLine>true</multiLine>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="50a1e3bf-8624-4474-854e-21b89aaf97ed">
<name>Отчет</name>
<synonym>
<key>ru</key>
<value>Отчет</value>
</synonym>
<comment>АПК:1329 - в таблице предполагается мало записей (в ERP ~ 1200) - оптимизация не требуется</comment>
<type>
<types>CatalogRef.ИдентификаторыОбъектовРасширений</types>
<types>String</types>
<types>CatalogRef.ДополнительныеОтчетыИОбработки</types>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Ссылка отчета или полное имя внешнего отчета.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="503b3eab-b7f1-4ede-8845-3290a834cec7">
<name>Пользовательский</name>
<synonym>
<key>ru</key>
<value>Пользовательский</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Тип варианта отчета:
Да - Пользовательский,
Нет - Предопределенный.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="847b97a3-d0bc-45e2-b06c-932bb22d8eca">
<name>ПредопределенныйВариант</name>
<synonym>
<key>ru</key>
<value>Предопределенный вариант</value>
</synonym>
<comment>Вариант конфигурации</comment>
<type>
<types>CatalogRef.ПредопределенныеВариантыОтчетовРасширений</types>
<types>CatalogRef.ПредопределенныеВариантыОтчетов</types>
</type>
<toolTip>
<key>ru</key>
<value>Предопределенный вариант отчета, содержит настройки по умолчанию.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="6c7b82ca-37b0-4f67-b7fa-ab1b77c0fb61">
<name>ТипОтчета</name>
<synonym>
<key>ru</key>
<value>Тип отчета</value>
</synonym>
<type>
<types>EnumRef.ТипыОтчетов</types>
</type>
<toolTip>
<key>ru</key>
<value>Тип варианта отчета</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3116fa60-bc42-4dea-aa03-387896168690">
<name>ТолькоДляАвтора</name>
<synonym>
<key>ru</key>
<value>Только для автора</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Влияет на доступность варианта из панели отчетов:
Флажок снят - вариант доступен всем пользователям.
Флажок установлен - вариант доступен только автору.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="ca797560-8802-4bdc-b21f-7a7fd795beae">
<name>ХешНастроек</name>
<synonym>
<key>ru</key>
<value>Хеш настроек</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>32</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Служебное поле.
Используется при обновлении программы.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="7b074b91-3c8e-48b3-8858-b6ea1c531f66">
<name>Назначение</name>
<synonym>
<key>ru</key>
<value>Назначение</value>
</synonym>
<type>
<types>EnumRef.НазначенияВариантовОтчетов</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>Enum.НазначенияВариантовОтчетов.EnumValue.ДляКомпьютеровИПланшетов</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="3df19dbf-efe7-4e31-99ad-fafb59ec1329">
<producedTypes>
<objectType typeId="abf3e560-3e61-416a-8893-8b9da792c5a0" valueTypeId="07793fd1-5e8e-435e-98ed-fa2646c0239b"/>
<rowType typeId="a74530a6-ea50-45db-bcaa-7a701b9be6c6" valueTypeId="b3f4e105-718b-4925-ad59-2e39a6f21feb"/>
</producedTypes>
<name>Размещение</name>
<synonym>
<key>ru</key>
<value>Размещение</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="baf12d47-fbfe-4563-aa23-26d9f7e83169">
<name>Использование</name>
<synonym>
<key>ru</key>
<value>Использование</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Если флажок снят то отчет не выводится в указанной группе.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="e2046f49-6fea-4bf4-92b0-92f3c8357bcf">
<name>Подсистема</name>
<synonym>
<key>ru</key>
<value>Раздел, Группа</value>
</synonym>
<type>
<types>CatalogRef.ИдентификаторыОбъектовРасширений</types>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
</type>
<toolTip>
<key>ru</key>
<value>Подсистема</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
</attributes>
<attributes uuid="0ba11486-1972-4434-ab1a-5bb75cc05e9f">
<name>Важный</name>
<synonym>
<key>ru</key>
<value>Важный</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Если флажок установлен то отчет выделяется жирным шрифтом и выводится в начале группы.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
</attributes>
<attributes uuid="4ed9c555-7dd0-4577-bf62-152b4c5ec9f2">
<name>СмТакже</name>
<synonym>
<key>ru</key>
<value>См также</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Если флажок установлен то отчет выводится в отдельной группе &quot;См. также&quot;, расположенной внизу панели отчетов.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
</attributes>
</tabularSections>
<tabularSections uuid="c1c62215-41b8-40bc-a806-1347db5b03e9">
<producedTypes>
<objectType typeId="f8245c3b-b14b-4212-b772-e48206f1323d" valueTypeId="b1416cce-05f5-40f3-89ad-1c94740b746b"/>
<rowType typeId="d5a0c9c6-9020-4a6a-99d2-e341bee917c1" valueTypeId="716e5a29-f25b-4a31-a262-52d7a178b244"/>
</producedTypes>
<name>Представления</name>
<synonym>
<key>ru</key>
<value>Представления</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="a24322f3-c7a5-4b25-bad6-9c75712a3e58">
<name>КодЯзыка</name>
<synonym>
<key>ru</key>
<value>Код языка</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="679d2b3b-a354-4dec-b49d-ab1163756e3a">
<name>Наименование</name>
<synonym>
<key>ru</key>
<value>Наименование</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Наименование варианта отчета</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="665e96bc-8ec1-4008-b9bd-db95a234b9b8">
<name>Описание</name>
<synonym>
<key>ru</key>
<value>Описание</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<forms uuid="a8021ff9-f0ae-49ab-b8ac-5e3d8fe90d82">
<name>РазмещениеВРазделах</name>
<synonym>
<key>ru</key>
<value>Размещение в разделах</value>
</synonym>
<comment>Размещение нескольких вариантов отчетов в разделах</comment>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="f09b09ce-9e3c-406a-8508-b6e7e6ec966e">
<name>СбросНастроекРазмещения</name>
<synonym>
<key>ru</key>
<value>Сброс настроек размещения</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="9bf55587-1ffe-42bc-b8e8-3f956956f689">
<name>СбросПользовательскихНастроек</name>
<synonym>
<key>ru</key>
<value>Сброс пользовательских настроек</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="2f67931e-543f-457e-80fd-78ca754e2e9c">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="595e5752-36a7-4bba-8a40-26920acae01d">
<name>ФормаЭлемента</name>
<synonym>
<key>ru</key>
<value>Форма элемента</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<commands uuid="28801fba-c429-4afa-bdcd-b3ec3ec22fda">
<name>Открыть</name>
<synonym>
<key>ru</key>
<value>Открыть...</value>
</synonym>
<group>FormCommandBarImportant</group>
<commandParameterType>
<types>CatalogRef.ВариантыОтчетов</types>
</commandParameterType>
<representation>PictureAndText</representation>
<toolTip>
<key>ru</key>
<value>Открыть отчет...</value>
</toolTip>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Report</picture>
</picture>
<shortcut>F3</shortcut>
</commands>
<commands uuid="d1a873ae-d45b-4600-9419-e701dce3da02">
<name>РазместитьВРазделах</name>
<synonym>
<key>ru</key>
<value>Разместить в разделах...</value>
</synonym>
<group>FormCommandBarImportant</group>
<commandParameterType>
<types>CatalogRef.ВариантыОтчетов</types>
</commandParameterType>
<parameterUseMode>Multiple</parameterUseMode>
<modifiesData>true</modifiesData>
<representation>Auto</representation>
<toolTip>
<key>ru</key>
<value>Изменить размещение нескольких отчетов...</value>
</toolTip>
</commands>
<commands uuid="e3a31f0d-a98f-43c6-bc39-087095ae8c39">
<name>СброситьНастройкиПользователей</name>
<synonym>
<key>ru</key>
<value>Сбросить настройки пользователей</value>
</synonym>
<group>FormCommandBarImportant</group>
<commandParameterType>
<types>CatalogRef.ВариантыОтчетов</types>
</commandParameterType>
<parameterUseMode>Multiple</parameterUseMode>
<representation>Auto</representation>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.User</picture>
</picture>
</commands>
<commands uuid="e39d8ff3-52db-4ba4-b4ea-42d5ee787076">
<name>СброситьНастройкиРазмещения</name>
<synonym>
<key>ru</key>
<value>Сбросить настройки размещения</value>
</synonym>
<group>FormCommandBarImportant</group>
<commandParameterType>
<types>CatalogRef.ВариантыОтчетов</types>
</commandParameterType>
<parameterUseMode>Multiple</parameterUseMode>
<representation>Auto</representation>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.RestoreValues</picture>
</picture>
</commands>
<commands uuid="b1c1c2eb-f9cd-468a-8398-b0b7f611f832">
<name>Изменить</name>
<synonym>
<key>ru</key>
<value>Изменить...</value>
</synonym>
<group>FormCommandBarImportant</group>
<commandParameterType>
<types>CatalogRef.ВариантыОтчетов</types>
</commandParameterType>
<representation>PictureAndText</representation>
<toolTip>
<key>ru</key>
<value>Изменить настройки отчета...</value>
</toolTip>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Change</picture>
</picture>
<shortcut>F2</shortcut>
</commands>
</mdclass:Catalog>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,435 @@
<?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:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<extendedTooltip>
<name>ГруппаПользовательскихНастроекРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Код</name>
<id>16</id>
<title>
<key>ru</key>
<value>Порядковый
номер</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Code</segments>
</dataPath>
<defaultItem>true</defaultItem>
<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>
<contextMenu>
<name>КодКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>5</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ОписаниеМетаданных</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ОписаниеМетаданных</segments>
</dataPath>
<extendedTooltip>
<name>ОписаниеМетаданныхРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОписаниеМетаданныхКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<autoCellHeight>true</autoCellHeight>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>27</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДатаПоследнегоИспользования</name>
<id>27</id>
<title>
<key>ru</key>
<value>Дата последнего
использования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ДатаПоследнегоИспользования</segments>
</dataPath>
<extendedTooltip>
<name>ДатаПоследнегоИспользованияРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДатаПоследнегоИспользованияКонтекстноеМеню</name>
<id>28</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>8</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>24</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>25</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>7</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>8</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>10</id>
<extendedTooltip>
<name>СписокСостояниеПросмотраРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>11</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>13</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>2</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаВключитьВозможностьРедактирования</name>
<id>22</id>
<title>
<key>ru</key>
<value>Включить возможность редактирования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаВключитьВозможностьРедактированияРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ВключитьВозможностьРедактирования</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.ВерсииРасширений</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</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>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,30 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТолькоПросмотр = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВключитьВозможностьРедактирования(Команда)
ТолькоПросмотр = Ложь;
Элементы.ФормаВключитьВозможностьРедактирования.Доступность = Ложь;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,215 @@
<?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:FormField">
<name>ОписаниеМетаданных</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ОписаниеМетаданных</segments>
</dataPath>
<extendedTooltip>
<name>ОписаниеМетаданныхРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОписаниеМетаданныхКонтекстноеМеню</name>
<id>5</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">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<extendedEdit>true</extendedEdit>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Код</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Code</segments>
</dataPath>
<extendedTooltip>
<name>КодРасширеннаяПодсказка</name>
<id>3</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>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДатаПоследнегоИспользования</name>
<id>9</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ДатаПоследнегоИспользования</segments>
</dataPath>
<extendedTooltip>
<name>ДатаПоследнегоИспользованияРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДатаПоследнегоИспользованияКонтекстноеМеню</name>
<id>10</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаВключитьВозможностьРедактирования</name>
<id>7</id>
<title>
<key>ru</key>
<value>Включить возможность редактирования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаВключитьВозможностьРедактированияРасширеннаяПодсказка</name>
<id>8</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ВключитьВозможностьРедактирования</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Объект</name>
<id>1</id>
<valueType>
<types>CatalogObject.ВерсииРасширений</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</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>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,30 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТолькоПросмотр = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВключитьВозможностьРедактирования(Команда)
ТолькоПросмотр = Ложь;
Элементы.ФормаВключитьВозможностьРедактирования.Доступность = Ложь;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,45 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОписаниеПеременных
Перем НовыйОбъект;
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
НовыйОбъект = ЭтоНовый();
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если НовыйОбъект Тогда
Справочники.ВерсииРасширений.ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

View File

@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4bb0f7c3-62f3-4352-9bc8-e243dd18fe4a">
<producedTypes>
<objectType typeId="c5128b40-b270-4d7b-ba2a-c9ebf5b23477" valueTypeId="39958192-992d-4cae-8185-ca006eaf09b6"/>
<refType typeId="a7a5262c-5d85-4e39-b132-c8f52dac93cb" valueTypeId="7c7a56a5-abc1-477a-ba23-4217f6214197"/>
<selectionType typeId="7c249998-cd09-490e-81b4-1278955b2b8a" valueTypeId="a67c0c66-ef7e-42a9-98a3-4bd5b51440cd"/>
<listType typeId="bb6cf5df-b0cc-4f6f-9d9c-a7713e8f6dac" valueTypeId="82ab8f3a-490f-43a6-8516-4430eb613181"/>
<managerType typeId="3d9acab3-6839-4b04-ab3b-57e91dacff0f" valueTypeId="30624b5f-b97e-4119-bcbd-f60cdfe49289"/>
</producedTypes>
<name>ВерсииРасширений</name>
<synonym>
<key>ru</key>
<value>Версии расширений</value>
</synonym>
<inputByString>Catalog.ВерсииРасширений.StandardAttribute.Code</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<toolTip>
<key>ru</key>
<value>Обобщенная версия набора метаданных</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<synonym>
<key>ru</key>
<value>Порядковый номер</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Номер добавленной версии по порядку</value>
</toolTip>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<objectPresentation>
<key>ru</key>
<value>Версия расширений</value>
</objectPresentation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<codeLength>9</codeLength>
<codeAllowedLength>Variable</codeAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<predefinedDataUpdate>AutoUpdate</predefinedDataUpdate>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<defaultObjectForm>Catalog.ВерсииРасширений.Form.ФормаЭлемента</defaultObjectForm>
<defaultListForm>Catalog.ВерсииРасширений.Form.ФормаСписка</defaultListForm>
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
<attributes uuid="bc106ef9-3eeb-40d4-aa59-ae1855ba1744">
<name>ОписаниеМетаданных</name>
<synonym>
<key>ru</key>
<value>Описание метаданных</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Строки вида:
&lt;Имя расширения> (&lt;Версия расширения>) &lt;Хеш расширения>
...</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="73d8b319-9bea-4638-a602-23c12f37c227">
<name>ДатаПоследнегоИспользования</name>
<synonym>
<key>ru</key>
<value>Дата последнего использования</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Обновляется при входе, если меньше даты начала сеанса округленной до часа.
Используется в задании удаления устаревших версий расширений, у которых дата последнего использования меньше минимальной даты начала активных сеансов, округленной до часа.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="a43e9de0-2921-4c58-a5f8-7446258be967">
<name>ФормаЭлемента</name>
<synonym>
<key>ru</key>
<value>Форма элемента</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="307656e3-df7f-46e7-946c-bbd439265c95">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>ЭтоТекущая</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>НомерВерсии</field>
<orderType>Desc</orderType>
</item>
<viewMode>Normal</viewMode>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначен для хранения сведений о версиях файлов.</p>
<p>Открывается командой <strong>Версии файла</strong> на панели навигации <a href="Catalog.Файлы.Form.ФормаЭлемента/Help">карточки файла</a>.</p>
<p>В списке с помощью кнопок панели навигации можно:</p>
<ul><li><strong>Просмотреть</strong> - открыть версию файла соответствующим приложением для просмотра (также это можно сделать двойным щелчком мыши);
</li><li><strong>Открыть карточку</strong> - просмотреть данные о версии файла;
</li><li><strong>Сделать активной</strong> - установить выбранную версию файла текущей. Команда доступна только для незанятых файлов;
</li><li><strong>Показать отличия</strong> - сравнить две любые версии файла, предварительно выделив их. Сравнение версий поддерживается для файлов формата HTML, TXT, RTF, DOC, DOCX, ODT.
</li><li>Записать версию файла на компьютер с помощью команды <strong>Сохранить как</strong> меню <strong>Еще</strong>. Укажите путь на компьютере для сохранения версии файла.</li></ul><h3>См. также:</h3>
<ul><li><a href="Catalog.Файлы/Help">Общие сведения о файлах</a>;
</li><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,344 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗаголовокОшибки = НСтр("ru = 'Невозможно открыть список присоединенных файлов.'");
ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Файл, "ВладелецФайла");
ИмяСправочникаХранилищаВерсийФайлов = РаботаСФайламиСлужебный.ИмяСправочникаХраненияВерсийФайлов(
ВладелецФайла, "", ЗаголовокОшибки);
Если Не ПустаяСтрока(ИмяСправочникаХранилищаВерсийФайлов) Тогда
НастроитьДинамическийСписок(ИмяСправочникаХранилищаВерсийФайлов);
КонецЕсли;
ВидимостьКомандыСравнить =
Не ОбщегоНазначения.ЭтоLinuxКлиент() И Не ОбщегоНазначения.ЭтоВебКлиент();
Элементы.ФормаСравнить.Видимость = ВидимостьКомандыСравнить;
Элементы.КонтекстноеМенюСписокСравнить.Видимость = ВидимостьКомандыСравнить;
УникальныйИдентификаторКарточкиФайла = Параметры.УникальныйИдентификаторКарточкиФайла;
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Параметры.Файл);
ВладелецВерсии = Параметры.Файл;
РаботаСФайламиСлужебный.УстановитьОтборПоПометкеУдаления(Список.Отбор);
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ФормаОткрытьВерсию.Картинка = БиблиотекаКартинок.ПолеВводаОткрыть;
Элементы.ФормаОткрытьВерсию.Отображение = ОтображениеКнопки.Картинка;
Элементы.СписокКомментарий.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СделатьАктивнойВыполнить()
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
НоваяАктивнаяВерсия = ТекущиеДанные.Ссылка;
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка, ПараметрыДанныхФайла);
Если ЗначениеЗаполнено(ДанныеФайла.Редактирует) Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Смена активной версии разрешена только для незанятых файлов.'"));
ИначеЕсли ДанныеФайла.ПодписанЭП Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Смена активной версии разрешена только для неподписанных файлов.'"));
Иначе
СменитьАктивнуюВерсиюФайла(НоваяАктивнаяВерсия);
ПараметрыОповещенияЗаписиФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОповещенияЗаписиФайла("АктивнаяВерсияИзменена");
Оповестить("Запись_Файл", ПараметрыОповещенияЗаписиФайла, Параметры.Файл);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
И (Параметр.Событие = "ЗаконченоРедактирование"
Или Параметр.Событие = "ВерсияСохранена") Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СписокПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
Версия = ТекущиеДанные.Ссылка;
ПараметрыОткрытияФормы = Новый Структура("Ключ", Версия);
ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВерсияПрисоединенногоФайла", ПараметрыОткрытияФормы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если Элементы.Список.ТекущаяСтрока <> Неопределено Тогда
ИзменитьДоступностьКоманд();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОткрытьКарточку(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
Версия = ТекущиеДанные.Ссылка;
ПараметрыОткрытияФормы = Новый Структура("Ключ", Версия);
ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВерсияПрисоединенногоФайла", ПараметрыОткрытияФормы);
КонецЕсли;
КонецПроцедуры
// Сравнить 2 выбранные версии.
&НаКлиенте
Процедура Сравнить(Команда)
ЧислоВыделенныхСтрок = Элементы.Список.ВыделенныеСтроки.Количество();
Если ЧислоВыделенныхСтрок <> 2 И ЧислоВыделенныхСтрок <> 1 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для просмотра отличий выберите две версии файла.'"));
Возврат;
КонецЕсли;
Если ЧислоВыделенныхСтрок = 2 Тогда
ПервыйФайл = Элементы.Список.ВыделенныеСтроки[0];
ВторойФайл = Элементы.Список.ВыделенныеСтроки[1];
ИначеЕсли ЧислоВыделенныхСтрок = 1 Тогда
ПервыйФайл = Элементы.Список.ТекущиеДанные.Ссылка;
ВторойФайл = Элементы.Список.ТекущиеДанные.РодительскаяВерсия;
КонецЕсли;
Расширение = НРег(Элементы.Список.ТекущиеДанные.Расширение);
РаботаСФайламиСлужебныйКлиент.СравнитьФайлы(УникальныйИдентификатор, ПервыйФайл, ВторойФайл, Расширение, ВладелецВерсии);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьВерсию(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка ,УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьКак(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ТекущиеДанные.Владелец, ТекущиеДанные.Ссылка , УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура Удалить(Команда)
Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
Элементы.Список.ТекущиеДанные.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьПомеченныеФайлы(Команда)
РаботаСФайламиСлужебныйКлиент.ИзменитьОтборПоПометкеУдаления(Список.Отбор, Элементы.ПоказыватьПомеченныеФайлы);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ИзменитьДоступностьКоманд()
АвторТекущийПользователь =
Элементы.Список.ТекущиеДанные.Автор = ПользователиКлиент.АвторизованныйПользователь();
Элементы.ФормаУдалить.Доступность = АвторТекущийПользователь;
Элементы.СписокКонтекстноеМенюУдалить.Доступность = АвторТекущийПользователь;
КонецПроцедуры
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервере
Процедура СменитьАктивнуюВерсиюФайла(Версия)
НачатьТранзакцию();
Попытка
БлокировкаВерсии = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаВерсии.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Версия)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Версия);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
БлокировкаВерсии.Заблокировать();
РеквизитыНовойВерсии = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Версия, "Владелец, ТекстХранилище");
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = Блокировка.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(РеквизитыНовойВерсии.Владелец)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", РеквизитыНовойВерсии.Владелец);
Блокировка.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(РеквизитыНовойВерсии.Владелец, , УникальныйИдентификаторКарточкиФайла);
ЗаблокироватьДанныеДляРедактирования(Версия, , УникальныйИдентификаторКарточкиФайла);
ФайлОбъект = РеквизитыНовойВерсии.Владелец.ПолучитьОбъект();
Если ФайлОбъект.ПодписанЭП Тогда
ВызватьИсключение НСтр("ru = 'У подписанного файла нельзя изменять активную версию.'");
КонецЕсли;
ФайлОбъект.ТекущаяВерсия = Версия;
ФайлОбъект.ТекстХранилище = РеквизитыНовойВерсии.ТекстХранилище;
ФайлОбъект.Записать();
ВерсияОбъект = Версия.ПолучитьОбъект();
ВерсияОбъект.Записать();
РазблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, УникальныйИдентификаторКарточкиФайла);
РазблокироватьДанныеДляРедактирования(Версия, УникальныйИдентификаторКарточкиФайла);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервере
Процедура НастроитьДинамическийСписок(ИмяСправочникаХранилищаВерсийФайлов)
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВерсииФайлов.Код КАК Код,
| ВерсииФайлов.Размер КАК Размер,
| ВерсииФайлов.Комментарий КАК Комментарий,
| ВерсииФайлов.Автор КАК Автор,
| ВерсииФайлов.ДатаСоздания КАК ДатаСоздания,
| ВерсииФайлов.Наименование КАК ПолноеНаименование,
| ВерсииФайлов.РодительскаяВерсия КАК РодительскаяВерсия,
| ВЫБОР
| КОГДА ВерсииФайлов.ПометкаУдаления
| ТОГДА ВерсииФайлов.ИндексКартинки + 1
| ИНАЧЕ ВерсииФайлов.ИндексКартинки
| КОНЕЦ КАК ИндексКартинки,
| ВерсииФайлов.ПометкаУдаления КАК ПометкаУдаления,
| ВерсииФайлов.Владелец КАК Владелец,
| ВерсииФайлов.Ссылка КАК Ссылка,
| ВЫБОР
| КОГДА ВерсииФайлов.Владелец.ТекущаяВерсия = ВерсииФайлов.Ссылка
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоТекущая,
| ВерсииФайлов.Расширение КАК Расширение,
| ВерсииФайлов.НомерВерсии КАК НомерВерсии
|ИЗ
| &ИмяСправочника КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Владелец = &Владелец";
ПолноеИмяСправочника = "Справочник." + ИмяСправочникаХранилищаВерсийФайлов;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяСправочника", ПолноеИмяСправочника);
СвойстваСписка.ОсновнаяТаблица = ПолноеИмяСправочника;
СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,18 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18212"></meta></head><body>
<p>Предназначен для выбора версии файла.</p>
<p>Вызывается из <a href="DataProcessor.РаботаСФайлами.Form.ВерсияПрисоединенногоФайла/Help">карточки версии файла</a> при выборе <strong>Родительской версии</strong>.</p>
<p>В списке выводится:</p>
<ul><li><strong>Номер версии</strong> - нумерация <a href="Catalog.ВерсииФайлов/Help">версий</a> ведется приложением автоматически при изменениях файла, при этом максимальный номер имеет последняя сохраненная версия.
</li>
<li>
<div>
<div><strong>Автор</strong> - пользователь, который добавил версию файла. Также в этой колонке в виде картинки отображается тип файла.</div></div>
</li>
<li>
<div><strong>Дата создания</strong> - дата и время добавления версии файла в базу.</div>
</li>
<li>
<div><strong>Размер (байт)</strong> - размер данных версии файла в байтах.</div></li></ul><h3>Выбор версии файла</h3>
<ul><li>Выделите нужную версию, нажмите <strong>Выбрать</strong>. Также можно воспользоваться двойным щелчком мыши. При этом можно выбрать только одну версию файла.</li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>

View File

@ -0,0 +1,90 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Отбор.Свойство("Владелец") Тогда
Элементы.СписокВладелец.Видимость = Ложь;
КонецЕсли;
// Оформление помеченных на удаление.
ЭлементУсловногоОформления = Список.УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
РаботаСФайламиСлужебный.УстановитьОтборПоПометкеУдаления(Список.Отбор);
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.Комментарий.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если Элементы.Список.ТекущаяСтрока <> Неопределено
И ТипЗнч(Элементы.Список.ТекущиеДанные) = Тип("ДанныеФормыСтруктура")
И Элементы.Список.ТекущиеДанные.Свойство("Автор") Тогда
Элементы.ФормаУдалить.Доступность =
Элементы.Список.ТекущиеДанные.Автор = ПользователиКлиент.АвторизованныйПользователь();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Удалить(Команда)
Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
Элементы.Список.ТекущиеДанные.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьПомеченныеФайлы(Команда)
РаботаСФайламиСлужебныйКлиент.ИзменитьОтборПоПометкеУдаления(Список.Отбор, Элементы.ПоказыватьПомеченныеФайлы);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Элементы.Список.Обновить();
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,162 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Оформление помеченных на удаление.
ЭлементУсловногоОформления = Список.УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
РаботаСФайламиСлужебный.УстановитьОтборПоПометкеУдаления(Список.Отбор);
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.СписокКомментарий.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_Файл"
И (Параметр.Событие = "ЗаконченоРедактирование"
ИЛИ Параметр.Событие = "ВерсияСохранена") Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВладелецФайла(ВыбраннаяСтрока), ВыбраннаяСтрока, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Ложь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(Элементы.Список.ТекущаяСтрока,,ПараметрыДанныхФайла);
Если ДанныеФайла.ТекущаяВерсия = Элементы.Список.ТекущаяСтрока Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Активную версию нельзя удалить.'"));
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
ОткрытьКарточкуФайла();
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если Элементы.Список.ТекущаяСтрока <> Неопределено Тогда
ИзменитьДоступностьКоманд();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Удалить(Команда)
Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
Элементы.Список.ТекущиеДанные.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьПомеченныеФайлы(Команда)
РаботаСФайламиСлужебныйКлиент.ИзменитьОтборПоПометкеУдаления(Список.Отбор, Элементы.ПоказыватьПомеченныеФайлы);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ИзменитьДоступностьКоманд()
АвторТекущийПользователь =
Элементы.Список.ТекущиеДанные.Автор = ПользователиКлиент.АвторизованныйПользователь();
Элементы.ФормаУдалить.Доступность = АвторТекущийПользователь;
Элементы.СписокКонтекстноеМенюУдалить.Доступность = АвторТекущийПользователь;
КонецПроцедуры
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Элементы.Список.Обновить();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьКарточкуФайла()
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
Версия = ТекущиеДанные.Ссылка;
ПараметрыОткрытияФормы = Новый Структура("Ключ", Версия);
ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВерсияПрисоединенногоФайла", ПараметрыОткрытияФормы);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВладелецФайла(ВыбраннаяСтрока)
Возврат ВыбраннаяСтрока.Владелец;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,34 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Предназначен для просмотра и управления версиями файла.</p>
<p>Для просмотра списка всех версий <a href="Catalog.Файлы.Form.ФормаЭлемента/Help">файла</a> откройте его карточку (в <a href="Catalog.Файлы/Help">списке файлов</a> нажмите <strong>F2</strong> или <strong>Еще -</strong> <strong>Открыть карточку</strong>) и нажмите <strong>Версии файла</strong> на панели навигации.</p>
<p>Список версий является иерархическим, для удобства просмотра отображается в виде дерева. В этом случае легко проследить историю редактирования файла. Более поздние версии отображаются подчиненными более ранним. При этом первую версию файла удалить из списка невозможно.</p>
<p>По окончании редактирования файла приложение рекомендует сохранить версию файла и ввести информацию о данной версии. По умолчанию эта возможность включена (рекомендуется использовать сохранение версий, так как в случае серьезных ошибок, которые привели к порче файла, можно вернуться к более ранней, неиспорченной версии). Хранение версий можно включить с помощью соответствующего флажка в <a href="Catalog.Файлы.Form.ФормаЭлемента/Help">карточке файла</a> или при <a href="DataProcessor.РаботаСФайлами.Form.ЗагрузкаФайлов/Help">загрузке файлов</a> (<a href="DataProcessor.РаботаСФайлами.Form.ЗагрузкаПапки/Help">папок</a>). Впоследствии можно изменить некоторые <a href="DataProcessor.РаботаСФайлами.Form.ВерсияПрисоединенногоФайла/Help">сведения о версии</a>, например, комментарий.</p>
<p>В списке выводится:</p>
<ul><li>
<div><strong>Автор</strong> - пользователь, который добавил версию файла. Также в этой колонке в виде картинки отображается тип файла.</div>
</li>
<li>
<div><strong>Номер версии</strong> - нумерация версий ведется приложением автоматически при изменениях файла, при этом максимальный номер имеет последняя сохраненная версия. </div>
</li>
<li>
<div><strong>Комментарий</strong> - дополнительная информация о версии файла.</div>
</li>
<li>
<div><strong>Дата создания</strong> - дата и время добавления версии файла в базу.</div>
</li>
<li>
<div><strong>Размер (байт)</strong> - размер данных версии файла в байтах.</div></li></ul><p>С помощью команды <strong>Еще - Изменить форму</strong> можно добавить дополнительные поля, например:</p>
<ul><li>
<div><strong>Полное наименование файла</strong> - полное имя файла;</div>
</li>
<li>
<div><strong>Тип хранения файла</strong> - принимает значения <strong>В информационной базе</strong> или <strong>В томах.</strong></div>
</li>
<li>
<div><strong>Расширение</strong> - формат файла, и некоторые другие поля.</div></li></ul><h3>Просмотр версии файла</h3>
<ul><li>Нажмите <strong>Просмотреть</strong>, для того чтобы открыть выбранную версию файла соответствующим приложением для просмотра или редактирования (также можно открыть версию файла двойным щелчком мыши по нужной строке или с помощью команды <strong>Еще - Просмотреть</strong>). </li></ul><h3>Просмотр сведений о версии файла</h3>
<ul><li>Нажмите <strong>Открыть карточку</strong>, для того чтобы открыть <a href="DataProcessor.РаботаСФайлами.Form.ВерсияПрисоединенногоФайла/Help">сведения</a> о выбранной версии. В карточке версии можно изменить <strong>Комментарий</strong>.</li></ul><h3>Замена текущей версии файла</h3>
<ul><li>Выберите нужную версию файла в списке, нажмите <strong>Сделать активной</strong>, для того чтобы изменить активную (текущую) версию. При этом нумерация версий остается прежней, меняется только порядок версий в списке. </li></ul><h3>Сравнение двух версий файла</h3>
<ul><li>Выделите две версии в списке и нажмите <strong>Показать отличия </strong>для их сравнения. Сравнение версий поддерживается для следующих типов файлов:HTML, TXT, RTF, DOC, DOCX, ODT. </li></ul><h3>Сохранение версии файла на компьютер</h3>
<ul><li>Для того чтобы сохранить файл версии на компьютер или другое устройство, нажмите <strong>Еще - Сохранить как</strong>. Выберите каталог для сохранения файла.</li></ul><h3>См. также: </h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>

View File

@ -0,0 +1,228 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
РедактируемыеРеквизиты = Новый Массив;
РедактируемыеРеквизиты.Добавить("Комментарий");
Возврат РедактируемыеРеквизиты;
КонецФункции
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// СтандартныеПодсистемы.УправлениеДоступом
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЧтениеОбъектаРазрешено(Владелец.ВладелецФайла)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ИзменениеОбъектаРазрешено(Владелец.ВладелецФайла)";
Ограничение.ТекстДляВнешнихПользователей = Ограничение.Текст;
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаОбъекта" Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "Обработка.РаботаСФайлами.Форма.ВерсияПрисоединенногоФайла";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты,
// которые необходимо обновить на новую версию.
//
// Параметры:
// Параметры - Структура - служебный параметр для передачи в процедуру ОбновлениеИнформационнойБазы.ОтметитьКОбработке.
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПараметрыВыборки = Параметры.ПараметрыВыборки;
ПараметрыВыборки.ПолныеИменаОбъектов = "Справочник.ВерсииФайлов";
ПараметрыВыборки.СпособВыборки = ОбновлениеИнформационнойБазы.СпособВыборкиСсылки();
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1000
| ВерсииФайлов.Ссылка КАК Ссылка
|ИЗ
| Справочник.ВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Ссылка > &Ссылка
| И ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка";
ОтработаныВсеФайлы = Ложь;
Запрос = Новый Запрос(ТекстЗапроса);
Ссылка = ПустаяСсылка();
Пока Не ОтработаныВсеФайлы Цикл
Запрос.УстановитьПараметр("Ссылка", Ссылка);
//@skip-check query-in-loop - Порционная регистрация данных для обработки
ВерсииДляОбработки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, ВерсииДляОбработки);
КоличествоСсылок = ВерсииДляОбработки.Количество();
Если КоличествоСсылок < 1000 Тогда
ОтработаныВсеФайлы = Истина;
ИначеЕсли КоличествоСсылок > 0 Тогда
Ссылка = ВерсииДляОбработки[КоличествоСсылок - 1];
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ВыбранныеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
Для Каждого Строка Из ВыбранныеДанные Цикл
Если ОбработатьВерсиюФайла(Строка.Ссылка) Тогда
ОбъектовОбработано = ОбъектовОбработано + 1;
Иначе
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
КонецЕсли;
КонецЦикла;
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать файлы (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Обработана очередная порция файлов: %1'"),
ОбъектовОбработано));
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВерсииФайлов");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ОбработатьВерсиюФайла(ВерсияСсылка)
Результат = Истина;
ПредставлениеСсылки = Строка(ВерсияСсылка);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВерсииФайлов");
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВерсияСсылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ВерсияОбъект = Неопределено;
ТребуетсяЗаписать = Ложь;
// @skip-check query-in-loop - Порционная обработка большого объема данных.
ПутьКФайлу = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВерсияСсылка, "ПутьКФайлу");
Если СтрНачинаетсяС(ПутьКФайлу, "/") Или СтрНачинаетсяС(ПутьКФайлу, "\") Тогда
НовыйПутьКФайлу = Сред(ПутьКФайлу, 2);
ВерсияОбъект = ВерсияСсылка.ПолучитьОбъект();
Если ВерсияОбъект = Неопределено Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВерсияСсылка);
ЗафиксироватьТранзакцию();
Возврат Результат;
КонецЕсли;
ВерсияОбъект.ПутьКФайлу = НовыйПутьКФайлу;
ТребуетсяЗаписать = Истина;
КонецЕсли;
Если ВерсияОбъект = Неопределено Тогда
ВерсияОбъект = ВерсияСсылка.ПолучитьОбъект();
Если ВерсияОбъект = Неопределено Тогда
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВерсияСсылка);
ЗафиксироватьТранзакцию();
Возврат Результат;
КонецЕсли;
КонецЕсли;
ДвоичныеДанныеФайла = Неопределено;
ХранилищеДвоичныхДанныхФайла = ВерсияОбъект.ФайлХранилище;
ДвоичныеДанныеФайла = ?(ТипЗнч(ХранилищеДвоичныхДанныхФайла) = Тип("ХранилищеЗначения"),
ХранилищеДвоичныхДанныхФайла.Получить(), Неопределено);
Если ДвоичныеДанныеФайла <> Неопределено Тогда
ВерсияОбъект.ФайлХранилище = Новый ХранилищеЗначения(Неопределено);
ТребуетсяЗаписать = Истина;
КонецЕсли;
Если ТребуетсяЗаписать Тогда
ВерсияОбъект.Записать();
Иначе
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВерсияСсылка);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
Результат = Ложь;
ОбновлениеИнформационнойБазы.ЗаписатьОшибкуВЖурналРегистрации(ВерсияСсылка,
ПредставлениеСсылки, ИнформацияОбОшибке());
КонецПопытки;
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,91 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка
Или ДополнительныеСвойства.Свойство("УдалениеДанных")
Или ДополнительныеСвойства.Свойство("КонвертацияФайлов")
Или ДополнительныеСвойства.Свойство("РазмещениеФайловВТомах") Тогда
Возврат;
КонецЕсли;
РеквизитыВладельца = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Владелец, "ТекущаяВерсия, ПометкаУдаления");
Если ЭтоНовый() Тогда
РодительскаяВерсия = РеквизитыВладельца.ТекущаяВерсия;
КонецЕсли;
// Выполним установку индекса пиктограммы при записи объекта.
ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Расширение);
Если СтатусИзвлеченияТекста.Пустая() Тогда
СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
Если РеквизитыВладельца.ТекущаяВерсия = Ссылка Тогда
Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Активную версию нельзя удалить.'");
КонецЕсли;
ИначеЕсли РодительскаяВерсия.Пустая() Тогда
Если ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
ВызватьИсключение НСтр("ru = 'Первую версию нельзя удалить.'");
КонецЕсли;
ИначеЕсли ПометкаУдаления = Истина И РеквизитыВладельца.ПометкаУдаления <> Истина Тогда
// Очищаем у версий, дочерних к помеченной, ссылку на родительскую -
// переставляем на родительскую версию удаляемой версии.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВерсииФайлов.Ссылка КАК Ссылка
|ИЗ
| &ИмяСправочникаВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.РодительскаяВерсия = &РодительскаяВерсия";
ИмяСправочникаВерсииФайлов = "Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяСправочникаВерсииФайлов", ИмяСправочникаВерсииФайлов);
Запрос.УстановитьПараметр("РодительскаяВерсия", Ссылка);
Результат = Запрос.Выполнить();
НачатьТранзакцию();
Попытка
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Выборка.Ссылка)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Выборка.Ссылка);
БлокировкаДанных.Заблокировать();
Объект = Выборка.Ссылка.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка);
Объект.РодительскаяВерсия = РодительскаяВерсия;
Объект.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

View File

@ -0,0 +1,739 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="eb3dfdc7-58b8-4b1f-b079-368c262364c9">
<producedTypes>
<objectType typeId="10c12307-cacf-42a7-8b8f-e70445f020f1" valueTypeId="4beb31d0-6c98-4bd7-9813-4e3923631dc5"/>
<refType typeId="ec8143f8-747e-4a3a-9d34-e53de10ed5b5" valueTypeId="18c4b501-9fa5-4076-9deb-6b33fd7cc5d1"/>
<selectionType typeId="04d05917-d5e0-460a-a0fe-fc4c9a43f931" valueTypeId="d0cd2368-3a36-4474-a19a-f51d46a70384"/>
<listType typeId="c9d81c2a-15cf-4c32-85f5-0766b95d9f1b" valueTypeId="5825487c-877e-4c1d-91fa-4bb3558d652b"/>
<managerType typeId="aa7f89f8-20ca-4f8a-847d-bd08dfae4cf8" valueTypeId="bb1254c2-8bfd-4464-8852-f933538d8372"/>
</producedTypes>
<name>ВерсииФайлов</name>
<synonym>
<key>ru</key>
<value>Версии файлов</value>
</synonym>
<inputByString>Catalog.ВерсииФайлов.StandardAttribute.Code</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>PredefinedDataName</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Predefined</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Ref</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>DeletionMark</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>IsFolder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Owner</name>
<synonym>
<key>ru</key>
<value>Файл</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Владелец версии файла</value>
</toolTip>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Файлы.EmptyRef</value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Description</name>
<synonym>
<key>ru</key>
<value>Краткое наименование</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Наименование</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Code</name>
<toolTip>
<key>ru</key>
<value>Код</value>
</toolTip>
<fillValue xsi:type="core:StringValue">
<value> </value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>Use</createOnInput>
<includeHelpInContents>true</includeHelpInContents>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<dataLockFields>Catalog.ВерсииФайлов.StandardAttribute.Owner</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<objectPresentation>
<key>ru</key>
<value>Версия файла</value>
</objectPresentation>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<owners>Catalog.Файлы</owners>
<codeLength>11</codeLength>
<descriptionLength>150</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<codeSeries>WithinOwnerSubordination</codeSeries>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<defaultListForm>Catalog.ВерсииФайлов.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.ВерсииФайлов.Form.ФормаВыбора</defaultChoiceForm>
<attributes uuid="5030a318-f8f7-4ec7-80d6-6eee0772562f">
<name>Автор</name>
<synonym>
<key>ru</key>
<value>Автор</value>
</synonym>
<type>
<types>CatalogRef.ВнешниеПользователи</types>
<types>CatalogRef.УчетныеЗаписиСинхронизацииФайлов</types>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользователь, который добавил версию файла в список</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<createOnInput>Use</createOnInput>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.Пользователи.EmptyRef</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="242e911d-e49c-4b8a-8543-cc2e079220fd">
<name>ДатаМодификацииУниверсальная</name>
<synonym>
<key>ru</key>
<value>Дата изменения (универсальное время)</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дата изменения данных версии файла (универсальное время)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="9ea39d31-3775-4fb8-a3f3-202e54354d49">
<name>ДатаМодификацииФайла</name>
<synonym>
<key>ru</key>
<value>Дата изменения (местное время)</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дата изменения данных версии файла (местное время)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="73044e20-148c-46e9-b5b5-973c91de0d61">
<name>ДатаСоздания</name>
<synonym>
<key>ru</key>
<value>Дата создания</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дата добавления версии файла в список</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:DateValue">
<value>0001-01-01T00:00:00</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="24cff6c8-6c20-4383-b97c-6afa52738960">
<name>ИндексКартинки</name>
<synonym>
<key>ru</key>
<value>Индекс значка</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Индекс значка версии файла (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:NumberValue">
<value>0</value>
</fillValue>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="462e2694-750d-49ef-93ac-17a7779be68d">
<name>Комментарий</name>
<synonym>
<key>ru</key>
<value>Комментарий</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Комментарий к версии файла</value>
</toolTip>
<multiLine>true</multiLine>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="c24ff02e-5afc-45df-81cf-64ea2b261c2d">
<name>НомерВерсии</name>
<synonym>
<key>ru</key>
<value>Номер</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>5</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Номер версии файла</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5d9d88ea-b2e4-425c-bb4d-a005e867d56c">
<name>ПутьКФайлу</name>
<synonym>
<key>ru</key>
<value>Путь к файлу</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Путь к версии файла в томе (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="b76d342c-0f9d-4eb0-b49e-a9f472a4dd0d">
<name>Размер</name>
<synonym>
<key>ru</key>
<value>Размер (байт)</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Размер версии файла в байтах</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:NumberValue">
<value>0</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="85639a53-b367-49ce-84f2-4e21d81c489b">
<name>Расширение</name>
<synonym>
<key>ru</key>
<value>Расширение</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Расширение версии файла</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue">
<value></value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="24b59586-178e-4efc-90ae-529553f3bb6c">
<name>РодительскаяВерсия</name>
<synonym>
<key>ru</key>
<value>Родительская версия</value>
</synonym>
<type>
<types>CatalogRef.ВерсииФайлов</types>
</type>
<toolTip>
<key>ru</key>
<value>Родительская версия (возможна иерархическая структура версий)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.ВерсииФайлов.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="20e75dd5-222a-4100-aa43-3684991e3f21">
<name>СтатусИзвлеченияТекста</name>
<synonym>
<key>ru</key>
<value>Статус извлечения текста</value>
</synonym>
<type>
<types>EnumRef.СтатусыИзвлеченияТекстаФайлов</types>
</type>
<toolTip>
<key>ru</key>
<value>Статус извлечения текста из файла (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>Enum.СтатусыИзвлеченияТекстаФайлов.EmptyRef</value>
</fillValue>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3c611832-4bc2-4229-a27d-d5dc82f3a498">
<name>ТекстХранилище</name>
<synonym>
<key>ru</key>
<value>Текст</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Текст, извлеченный из файла (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="50e9eb52-02e3-44ff-9c9e-e76dbe38da63">
<name>ТипХраненияФайла</name>
<synonym>
<key>ru</key>
<value>Тип хранения версии файла</value>
</synonym>
<type>
<types>EnumRef.ТипыХраненияФайлов</types>
</type>
<toolTip>
<key>ru</key>
<value>Тип хранения версии файла (в томе или в информационной базе)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5dadc422-1fbd-4918-9db3-09ec72c3404e">
<name>Том</name>
<synonym>
<key>ru</key>
<value>Том</value>
</synonym>
<type>
<types>CatalogRef.ТомаХраненияФайлов</types>
</type>
<toolTip>
<key>ru</key>
<value>Том хранения файлов (когда версия файла хранится в томе)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="ffdaf8a0-7a8f-4756-bdfc-a0c6ae6c3869">
<name>ФайлХранилище</name>
<synonym>
<key>ru</key>
<value>Временное хранилище версии файла</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Временное хранилище версии файла (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="ab1bcabf-ffb0-4914-8ad0-b94b5aaeab1d">
<producedTypes>
<objectType typeId="5da3d5eb-b33d-49ee-a0c7-e7bce043d7d7" valueTypeId="1349a0c3-4a9d-460c-8f72-0d86cc51d6f4"/>
<rowType typeId="204f0716-62ac-492f-ac0f-9b6e774a82f7" valueTypeId="9239b454-c752-4814-943c-3d448fdcce59"/>
</producedTypes>
<name>УдалитьЭлектронныеПодписи</name>
<synonym>
<key>ru</key>
<value>(не используется) Электронные подписи</value>
</synonym>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<attributes uuid="c5478d09-c8d3-4cc6-878e-27656ecc8409">
<name>ДатаПодписи</name>
<synonym>
<key>ru</key>
<value>Дата подписи</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дата установки подписи</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="01b97d2f-40b9-4f12-8bc5-ab75fd160b7c">
<name>ИмяФайлаПодписи</name>
<synonym>
<key>ru</key>
<value>Имя файла подписи</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>260</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Имя файла подписи (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="75974146-5b1a-412c-b7d5-1575704bbdab">
<name>Комментарий</name>
<synonym>
<key>ru</key>
<value>Комментарий</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Комментарий к подписи</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="949f87cb-258c-4b6b-95ee-8a7491a4b64e">
<name>КомуВыданСертификат</name>
<synonym>
<key>ru</key>
<value>Кому выдан сертификат</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Владелец сертификата (фамилия имя, организация, должность)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="8a348012-99dc-4dc9-8bec-0df3caf4cdc5">
<name>Отпечаток</name>
<synonym>
<key>ru</key>
<value>Отпечаток</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>28</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Отпечаток сертификата (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="5c089988-5381-41ed-9f05-f85db46b8d94">
<name>Подпись</name>
<synonym>
<key>ru</key>
<value>Подпись</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Двоичные данные подписи (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="85a36352-1569-4ce4-aeba-477db524c36d">
<name>УстановившийПодпись</name>
<synonym>
<key>ru</key>
<value>Установивший подпись</value>
</synonym>
<type>
<types>CatalogRef.Пользователи</types>
</type>
<toolTip>
<key>ru</key>
<value>Пользователь, установивший подпись</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="ebfb6f80-88f5-4046-8ae7-e11a7b0c1beb">
<name>Сертификат</name>
<synonym>
<key>ru</key>
<value>Сертификат</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<toolTip>
<key>ru</key>
<value>Двоичные данные сертификата (служебное поле)</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="d99991b8-3a81-4e18-b0ad-05fc3e3a199b">
<name>ДатаПроверкиПодписи</name>
<synonym>
<key>ru</key>
<value>Дата проверки подписи</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<toolTip>
<key>ru</key>
<value>Дата последней проверки подписи.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="dd383422-dddb-4a81-9326-015fd345b5c1">
<name>ПодписьВерна</name>
<synonym>
<key>ru</key>
<value>Подпись верна</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Результат последней проверки подписи.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
<forms uuid="b2e656c1-f4ff-4d95-b066-4ee11ce4dea8">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="2d86d1fc-5367-47b8-804e-7f9c5fc8f3b1">
<name>ФормаВыбора</name>
<synonym>
<key>ru</key>
<value>Форма выбора</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="aa299fc6-051f-487c-ada4-451e08c4763c">
<name>ВерсииФайла</name>
<synonym>
<key>ru</key>
<value>Версии файла</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>

View File

@ -0,0 +1,501 @@
<?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:FormGroup">
<name>ПанельИндикаторов</name>
<id>21</id>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторНачалаИсправления</name>
<id>23</id>
<items xsi:type="form:Decoration">
<name>НадписьВопрос</name>
<id>25</id>
<title>
<key>ru</key>
<value>Исправление видов контактной информации может занять продолжительное время. Выполнить исправление?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьВопросРасширеннаяПодсказка</name>
<id>27</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьВопросКонтекстноеМеню</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</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>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>true</showTitle>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторИсправления</name>
<id>19</id>
<items xsi:type="form:Decoration">
<name>ДекорацияПрогресс</name>
<id>9</id>
<title>
<key>ru</key>
<value>Декорация прогресс</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПрогрессРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПрогрессКонтекстноеМеню</name>
<id>10</id>
<autoFill>true</autoFill>
</contextMenu>
<width>5</width>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияВыполнениеИсправления</name>
<id>12</id>
<title>
<key>ru</key>
<value>Выполняется исправление проблемы.
Пожалуйста, подождите...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияВыполнениеИсправленияРасширеннаяПодсказка</name>
<id>14</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияВыполнениеИсправленияКонтекстноеМеню</name>
<id>13</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<maxWidth>26</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Индикатор исправления</value>
</title>
<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>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>true</showTitle>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторУспешноеИсправление</name>
<id>30</id>
<items xsi:type="form:Decoration">
<name>ТекстИтогиИсправления</name>
<id>41</id>
<title>
<key>ru</key>
<value>Исправлено %1 из %2.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТекстИтогиИсправленияРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстИтогиИсправленияКонтекстноеМеню</name>
<id>42</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ОписаниеРучногоИсправления</name>
<id>38</id>
<title>
<key>ru</key>
<value>Если исправление не помогло:
• Запустить конфигуратор, меню &lt;b>Администрирование&lt;/> - &lt;b>Тестирования и исправление&lt;/>, включить два флажка для проверки логической и ссылочной целостности
См. подробнее на ИТС: &lt;link https://its.1c.ru/db/v83doc#bookmark:adm:TI000000142>https://its.1c.ru/db/v83doc#bookmark:adm:TI000000142&lt;/>
• Дождаться завершения тестирования и исправления, снять блокировку входа в программу.
Для технических специалистов:
С помощью группового изменения реквизитов (в разделе &lt;b>Администрирование&lt;/>) установить корректные настройки у элементов справочника &lt;b>Виды контактной информации&lt;/>. Например, в случае отсутствия родительской группы у вида.
</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<contextMenu>
<name>ОписаниеРучногоИсправленияКонтекстноеМеню</name>
<id>39</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</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>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>true</showTitle>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Панель индикаторов</value>
</title>
<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>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ИсправитьПроблему</name>
<id>3</id>
<title>
<key>ru</key>
<value>Исправить проблему</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<commandName>Form.Command.ИсправитьПроблему</commandName>
<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>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗакрытьРасширеннаяПодсказка</name>
<id>2</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>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаСправка</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСправкаРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Help</commandName>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Abort</excludedCommands>
<excludedCommands>Cancel</excludedCommands>
<excludedCommands>CustomizeForm</excludedCommands>
<excludedCommands>Ignore</excludedCommands>
<excludedCommands>No</excludedCommands>
<excludedCommands>OK</excludedCommands>
<excludedCommands>RestoreValues</excludedCommands>
<excludedCommands>Retry</excludedCommands>
<excludedCommands>SaveValues</excludedCommands>
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<verticalAlign>Bottom</verticalAlign>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ИдентификаторПроверки</name>
<id>1</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>255</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДлительнаяОперация</name>
<id>2</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИтогиИсправления</name>
<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>
</formCommands>
<parameters>
<name>ИдентификаторПроверки</name>
<valueType>
<types>String</types>
<stringQualifiers>
<length>255</length>
</stringQualifiers>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>

View File

@ -0,0 +1,111 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИдентификаторПроверки = Параметры.ИдентификаторПроверки;
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ИсправитьПроблему(Команда)
ДлительнаяОперация = ИсправитьПроблемуВФоне(ИдентификаторПроверки);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ИсправитьПроблемуВФонеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекущуюСтраницу(Форма, ИмяСтраницы)
ЭлементыФормы = Форма.Элементы;
Если ИмяСтраницы = "ИдетИсправлениеПроблемы" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.ИсправитьПроблему.Видимость = Ложь;
ИначеЕсли ИмяСтраницы = "ИсправлениеУспешноВыполнено" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Истина;
ЭлементыФормы.ИсправитьПроблему.Видимость = Ложь;
ЭлементыФормы.Закрыть.КнопкаПоУмолчанию = Истина;
Иначе // "Вопрос"
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.ИсправитьПроблему.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ИсправитьПроблемуВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление видов контактной информации'");
Возврат ДлительныеОперации.ВыполнитьВФоне("УправлениеКонтактнойИнформациейСлужебный.ИсправитьВидыКонтактнойИнформацииВФоне",
Новый Структура("ИдентификаторПроверки", ИдентификаторПроверки), ПараметрыВыполнения);
КонецФункции
// Параметры:
// Результат - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации
// ДополнительныеПараметры - Неопределено
//
&НаКлиенте
Процедура ИсправитьПроблемуВФонеЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДлительнаяОперация = Неопределено;
Если Результат = Неопределено Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
Результат.ИнформацияОбОшибке);
Возврат;
ИначеЕсли Результат.Статус = "Выполнено" Тогда
Результат = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.ТекстИтогиИсправления.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Элементы.ТекстИтогиИсправления.Заголовок, Результат.ИсправленоОбъектов, Результат.ВсегоОбъектов);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИсправлениеУспешноВыполнено");
КонецЕсли;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,351 @@
<?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:FormGroup">
<name>СписокКомпоновщикНастроекПользовательскиеНастройки</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>User settings group</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>16</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<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>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СсылкаКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>7</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>8</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>10</id>
<extendedTooltip>
<name>СписокСостояниеПросмотраРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>11</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>13</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<representation>HierarchicalList</representation>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<fileDragMode>AsFileRef</fileDragMode>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<handlers>
<event>OnGetDataAtServer</event>
<name>СписокПриПолученииДанныхНаСервере</name>
</handlers>
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Abort</excludedCommands>
<excludedCommands>Cancel</excludedCommands>
<excludedCommands>ChangeHistory</excludedCommands>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<excludedCommands>DynamicListStandardSettings</excludedCommands>
<excludedCommands>Ignore</excludedCommands>
<excludedCommands>LevelDown</excludedCommands>
<excludedCommands>LevelUp</excludedCommands>
<excludedCommands>LoadDynamicListSettings</excludedCommands>
<excludedCommands>MoveItem</excludedCommands>
<excludedCommands>No</excludedCommands>
<excludedCommands>OK</excludedCommands>
<excludedCommands>OpenFromMainServer</excludedCommands>
<excludedCommands>OpenFromStandaloneServer</excludedCommands>
<excludedCommands>RestoreValues</excludedCommands>
<excludedCommands>Retry</excludedCommands>
<excludedCommands>SaveDynamicListSettings</excludedCommands>
<excludedCommands>SaveValues</excludedCommands>
<excludedCommands>SetDeletionMark</excludedCommands>
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.PredefinedDataName</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Скрыть</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
СправочникВидыКонтактнойИнформации.Ссылка,
СправочникВидыКонтактнойИнформации.Наименование,
СправочникВидыКонтактнойИнформации.ИмяПредопределенныхДанных,
ЛОЖЬ КАК Скрыть
ИЗ
Справочник.ВидыКонтактнойИнформации КАК СправочникВидыКонтактнойИнформации
ГДЕ
СправочникВидыКонтактнойИнформации.ПометкаУдаления = ЛОЖЬ</queryText>
<mainTable>Catalog.ВидыКонтактнойИнформации</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,72 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
// СтандартныеПодсистемы.ВерсионированиеОбъектов
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда
МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов");
МодульВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Для Каждого СтрокаТаблицы Из Строки Цикл
Если СтрНачинаетсяС(СтрокаТаблицы.Значение.Данные.ИмяПредопределенныхДанных, "Удалить") Тогда
СтрокаТаблицы.Значение.Данные.Скрыть = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
//
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Наименование.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Скрыть");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,335 @@
<?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:FormGroup">
<name>ГруппаПользовательскихНастроек</name>
<id>11</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<extendedTooltip>
<name>ГруппаПользовательскихНастроекРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>13</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>14</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>Left</horizontalAlign>
<commandSource>Form</commandSource>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<skipOnInput>false</skipOnInput>
<titleLocation>None</titleLocation>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands>
<excludedCommands>MoveItem</excludedCommands>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<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>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ссылка</name>
<id>8</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</dataPath>
<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>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>15</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>17</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>16</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>18</id>
<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>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>19</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>21</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>22</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</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>
<representation>Tree</representation>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<choiceFoldersAndItems>Folders</choiceFoldersAndItems>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowRootChoice>true</allowRootChoice>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Список.Ref</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.ВидыКонтактнойИнформации</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16476"></meta></head><body>
<p>Список предназначен для выбора вида контактной информации.</p>
<p>Открывается по кнопке <strong>Выбрать</strong> из окна ввода нового <a href="Catalog.ВидыКонтактнойИнформации.Form.ФормаЭлемента/Help">поля контактной информации</a>.</p>
<p>Виды контактной информации представляют собой предопределенные группы, каждая из которых соответствует спискам или документам, которые являются носителями контактной информации, а элементы внутри этих групп определяют состав контактной информации этих объектов приложения. При этом состав групп не может быть изменен. Список групп имеет иерархическую структуру в виде дерева.</p>
<h3>Выбор вида контактной информации</h3>
<ul><li>Выделите нужную группу, нажмите <strong>Выбрать</strong>.</li></ul><h3>См. также:</h3>
<ul><li>
<div><a href="Catalog.ВидыКонтактнойИнформации/Help">Виды контактной информации</a>.</div></li></ul></body></html>

Some files were not shown because too many files have changed in this diff Show More