This commit is contained in:
Компания 1С committed 2020-12-15 13:43:00 +03:00
1 parent 9d3addfc38
commit 1524d07d09
831 files changed
+45577 -13278

No files matched your search

@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -43,7 +43,7 @@
//
// Параметры:
// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача.
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка - точка маршрута.
// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание - точка маршрута.
//
// Возвращаемое значение:
// Структура - структуру с описанием формы выполнения задачи.
@@ -123,7 +123,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -14,8 +14,6 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа.
//
// Параметры:
// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа
//
@@ -0,0 +1,797 @@
<?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>
<textSize>Normal</textSize>
</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>
<textSize>Normal</textSize>
</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>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</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>
<textSize>Normal</textSize>
</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>
<textSize>Normal</textSize>
</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>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</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>
<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>ДлинаДробнойЧастиExtendedTooltip</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>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ГруппаЧислоРазрядовДробнойЧастиExtendedTooltip</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>
<behavior>Auto</behavior>
<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>СуммаЧислоExtendedTooltip</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>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СуммаПрописью</name>
<id>62</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СуммаПрописью</segments>
</dataPath>
<extendedTooltip>
<name>СуммаПрописьюExtendedTooltip</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>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пример прописи суммы</value>
</title>
<extendedTooltip>
<name>ГруппаПримерПрописиExtendedTooltip</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>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗаписатьИЗакрыть</name>
<id>116</id>
<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>
<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>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<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>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</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>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ЗаписатьИЗакрыть</name>
<title>
<key>ru</key>
<value>Записать и закрыть</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Записать и закрыть</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ЗаписатьИЗакрыть</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</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>
@@ -0,0 +1,138 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 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", Ложь), "");
Возврат СтрСоединить(СтрРазделить(СтрокаСЧислом, ПосторонниеСимволы, Ложь), "");
КонецФункции
&НаКлиенте
Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
ПараметрыПрописи = Новый Структура;
ПараметрыПрописи.Вставить("КодЯзыка", Параметры.КодЯзыка);
ПараметрыПрописи.Вставить("ПараметрыПрописи", ПараметрыПрописи(ЭтотОбъект));
ПараметрыПрописи.Вставить("Записать", Записать);
ПараметрыПрописи.Вставить("Закрыть", Закрыть);
Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,512 @@
<?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>
<behavior>Auto</behavior>
<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>СуммаЧислоExtendedTooltip</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>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СуммаПрописью</name>
<id>24</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>СуммаПрописьюExtendedTooltip</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>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Пример прописи суммы</value>
</title>
<extendedTooltip>
<name>ГруппаПримерПрописиExtendedTooltip</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>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗаписатьИЗакрыть</name>
<id>27</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаписатьИЗакрытьРасширеннаяПодсказка</name>
<id>28</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.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>
<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>
<buttonImportance>Normal</buttonImportance>
<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>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</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>
<selectedRowsUse>Auto</selectedRowsUse>
</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>
<selectedRowsUse>Auto</selectedRowsUse>
</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>
@@ -0,0 +1,530 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НаборЯзыков = Новый ТаблицаЗначений;
НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10));
НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150));
ДоступныеЯзыки = Новый Массив;
Для Каждого Язык Из Метаданные.Языки Цикл
ДоступныеЯзыки.Добавить(Язык.КодЯзыка);
КонецЦикла;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда
МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность");
ДоступныеЯзыки = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки();
КонецЕсли;
Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл
НовыйЯзык = НаборЯзыков.Добавить();
НовыйЯзык.КодЯзыка = КодЯзыка;
НовыйЯзык.Представление = РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка);
КонецЦикла;
ИмеющиесяЯзыкиВводаПрописей = ИмеющиесяЯзыкиВводаПрописей();
Для Каждого ЯзыкКонфигурации Из НаборЯзыков Цикл
Если ИмеющиесяЯзыкиВводаПрописей.Найти(ЯзыкКонфигурации.КодЯзыка) <> Неопределено Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = Языки.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации);
НоваяСтрока.Имя = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
КонецЦикла;
СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр);
ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка);
Если ОписаниеЯзыка <> Неопределено Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
КонецЕсли;
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
Для каждого Представление Из Параметры.Представления Цикл
ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка);
Если ОписаниеЯзыка <> Неопределено Тогда
Если СтрСравнить(ОписаниеЯзыка.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение), Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]);
Иначе
ЭтотОбъект[ОписаниеЯзыка.Имя] = Представление[Параметры.ИмяРеквизита];
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СуммаЧисло = 123.45;
УстановитьСуммуПрописью();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиЭлементовШапкиФормы
&НаКлиенте
Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
УстановитьСуммуПрописью();
КонецПроцедуры
&НаКлиенте
Процедура СуммаЧислоПриИзменении(Элемент)
УстановитьСуммуПрописью();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаПриИзменении(Элемент)
Модифицированность = Истина;
УстановитьСуммуПрописью();
ОповеститьВладельца();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ОповеститьВладельца(Истина, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Записать(Команда)
ОповеститьВладельца(Истина);
Модифицированность = ВладелецФормы.Модифицированность;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СформироватьПоляВводаНаРазныхЯзыках(МногострочныйРежим, ТолькоПросмотр)
Добавлять = Новый Массив;
ТипСтрока = Новый ОписаниеТипов("Строка");
Для Каждого ЯзыкКонфигурации Из Языки Цикл
Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока,, ЯзыкКонфигурации.Представление));
Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"), ЯзыкКонфигурации.Представление)));
КонецЦикла;
ИзменитьРеквизиты(Добавлять);
РодительЭлементов = Элементы.Страницы;
Для Каждого ЯзыкКонфигурации Из Языки Цикл
Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда
Страница = Элементы.Вставить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов,
РодительЭлементов.ПодчиненныеЭлементы.Получить(0));
Иначе
Страница = Элементы.Добавить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов);
КонецЕсли;
ЯзыкКонфигурации.Страница = Страница.Имя;
Страница.Вид = ВидГруппыФормы.Страница;
Страница.Заголовок = ЯзыкКонфигурации.Представление;
ПолеВвода = Элементы.Добавить(ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
ПолеВвода.ПутьКДанным = ЯзыкКонфигурации.Имя;
Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда
ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи;
ПолеВвода.Гиперссылка = Истина;
ПолеВвода.УстановитьДействие("Нажатие", "Подключаемый_Нажатие");
Иначе
ПолеВвода.Вид = ВидПоляФормы.ПолеВвода;
ПолеВвода.Ширина = 40;
ПолеВвода.МногострочныйРежим = МногострочныйРежим;
ПолеВвода.ТолькоПросмотр = ТолькоПросмотр;
ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПолеВвода.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеВводаПриИзменении");
ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", "Подключаемый_ПолеВводаИзменениеТекстаРедактирования");
Подсказка = ПодсказкаЗаполненияПараметровПрописей(ЯзыкКонфигурации.КодЯзыка);
ПолеВвода.ПодсказкаВвода = Подсказка.ПодсказкаВвода;
ПодсказкаВвода = Элементы.Добавить("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница);
ПодсказкаВвода.ПутьКДанным = "ПодсказкаВвода" + ЯзыкКонфигурации.Имя;
ПодсказкаВвода.Вид = ВидПоляФормы.ПолеВвода;
ПодсказкаВвода.ТолькоПросмотр = Истина;
ПодсказкаВвода.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
ПодсказкаВвода.РастягиватьПоВертикали = Истина;
ПодсказкаВвода.АвтоМаксимальнаяВысота = Ложь;
ПодсказкаВвода.МногострочныйРежим = Истина;
ПодсказкаВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ПодсказкаВвода.ЦветРамки = ЦветаСтиля.ЦветФонаФормы;
Если Не ЗначениеЗаполнено(Подсказка.Инструкция) Тогда
Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'")
КонецЕсли;
ЭтотОбъект["ПодсказкаВвода" + ЯзыкКонфигурации.Имя] = Подсказка.Инструкция;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ОписаниеЯзыка(КодЯзыка)
Отбор = Новый Структура("КодЯзыка", КодЯзыка);
НайденныеЭлементы = Языки.НайтиСтроки(Отбор);
Если НайденныеЭлементы.Количество() > 0 Тогда
Возврат НайденныеЭлементы[0];
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаКлиенте
Процедура УстановитьСуммуПрописью()
ТекущийЯзык = ОписаниеТекущегоЯзыка();
Если ТекущийЯзык = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыПрописи = ЭтотОбъект[ТекущийЯзык.Имя];
СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + ТекущийЯзык.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1357
КонецПроцедуры
&НаКлиенте
Функция ОписаниеТекущегоЯзыка()
ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
Если ТекущаяСтраница = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Языки.НайтиСтроки(Новый Структура("Страница", ТекущаяСтраница.Имя))[0];
КонецФункции
&НаКлиенте
Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь)
ТекущийЯзык = ОписаниеТекущегоЯзыка();
ПараметрыПрописи = Новый Структура;
ПараметрыПрописи.Вставить("КодЯзыка", ТекущийЯзык.КодЯзыка);
ПараметрыПрописи.Вставить("ПараметрыПрописи", ЭтотОбъект[ТекущийЯзык.Имя]);
ПараметрыПрописи.Вставить("Записать", Записать);
ПараметрыПрописи.Вставить("Закрыть", Закрыть);
Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы);
КонецПроцедуры
&НаСервере
Функция ИмеющиесяЯзыкиВводаПрописей()
Возврат РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей().ВыгрузитьЗначения();
КонецФункции
&НаСервере
Функция ПодсказкаЗаполненияПараметровПрописей(Знач КодЯзыка)
Результат = Новый Структура;
Результат.Вставить("Инструкция", "");
Результат.Вставить("ПодсказкаВвода", "");
Если Не ЗначениеЗаполнено(КодЯзыка) Тогда
Возврат Результат;
КонецЕсли;
КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
Если КодЯзыка = "ru" Или КодЯзыка = "be" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для русского и белорусского языков (ru_RU, be_BY):
|
|рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2
|
|""рубль, рубля, рублей, м"" – предмет исчисления:
|рубль – единственное число именительный падеж;
|рубля – единственное число родительный падеж;
|рублей – множественное число родительный падеж;
|м – мужской род (ж – женский род, с - средний род);
|""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2'");
ИначеЕсли КодЯзыка = "uk" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для украинского языка (uk_UA):
|
|гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2
|
|""гривна, гривны, гривен, м"" – предмет исчисления:
|""гривна – единственное число именительный падеж;
|гривны – единственное число родительный падеж;
|гривен – множественное число родительный падеж;
|м – мужской род (ж – женский род, с - средний род);
|""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать);
|""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2'");
ИначеЕсли КодЯзыка = "pl" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для эстонского языка (et_EE):
|
|kroon, krooni, sent, senti, 2
|
|""kroon, krooni"" – – предмет исчисления в единственном и множественном числе;
|""sent, senti"" – дробная часть в единственном и множественном числе (может отсутствовать);
|2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'"));
Результат.ПодсказкаВвода = НСтр("ru = 'kroon, krooni, sent, senti, 2'");
ИначеЕсли КодЯзыка = "bg" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для болгарского языка (bg_BG):
|
|лев, лева, м, стотинка, стотинки, ж, 2
|
|""лев, лева, м"" – предмет исчисления:
|лев - единственное число целой части;
|лева - множественное число целой части;
|м - род целой части,
|""стотинка, стотинки, ж"" - дробная часть:
|стотинка - единственное число дробной части;
|стотинки - множественное число дробной части;
|ж - род дробной части,
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'лев, лева, м, стотинка, стотинки, ж, 2'");
ИначеЕсли КодЯзыка = "ro" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для грузинского языка (ka_GE):
|
|ლარი, თეთრი, 2
|
|ლარი - целая часть;
|თეთრი - дробная часть;
|""2"" - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'ლარი, თეთრი, 2'");
ИначеЕсли КодЯзыка = "az" Или КодЯзыка = "tk" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для азербайджанского(az) и туркменского языков(tk):
|
|TL,Kr,2
|
|""TL"" - предмет исчисления;
|""Kr"" - дробная часть (может отсутствовать);
|2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)'"));
Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2'");
ИначеЕсли КодЯзыка = "vi" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Параметры прописи необходимо перечислить через запятую.
|Образец заполнения для вьетнамского языка (vi_VN):
|
|dong, xu, 2
|
|dong, - целая часть;
|xu, - дробная часть;
|2 - количество разрядов дробной части.'"));
Результат.ПодсказкаВвода = НСтр("ru = 'dong, xu, 2'");
ИначеЕсли КодЯзыка = "tr" Тогда
Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"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'");
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -785,7 +785,7 @@
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ПараметрыПрописиВалюты</name>
<name>ГиперссылкаПараметрыПрописиВалюты</name>
<id>145</id>
<title>
<key>ru</key>
@@ -797,7 +797,7 @@
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПараметрыПрописиВалютыРасширеннаяПодсказка</name>
<name>ГиперссылкаПараметрыПрописиВалютыРасширеннаяПодсказка</name>
<id>147</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -807,7 +807,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПараметрыПрописиВалютыКонтекстноеМеню</name>
<name>ГиперссылкаПараметрыПрописиВалютыКонтекстноеМеню</name>
<id>146</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -823,14 +823,44 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<commandBarLocation>Top</commandBarLocation>
<showCommandBar>true</showCommandBar>
<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>
<importance>Normal</importance>
</extInfo>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
@@ -861,13 +891,10 @@
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи1наРусском</name>
<id>2</id>
<name>ФормыВводаПрописей</name>
<id>14</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
<types>ValueList</types>
</valueType>
<view>
<common>true</common>
@@ -875,201 +902,47 @@
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
<extInfo xsi:type="form:ValueListExtInfo">
<itemValueType/>
</extInfo>
</attributes>
<attributes>
<name>ПолеПрописи2наРусском</name>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<formCommands>
<name>ПараметрыПрописиВалютыНаДругихЯзыках</name>
<title>
<key>ru</key>
<value>На других языках...</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Параметры прописи валюты на других языках</value>
</toolTip>
<use>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи3наРусском</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи4наРусском</name>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи5наРусском</name>
<id>6</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи6наРусском</name>
<id>7</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи7наРусском</name>
<id>8</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПолеПрописи8наРусском</name>
<id>9</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ДлинаДробнойЧасти</name>
<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>
<id>10</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>СуммаЧисло</name>
<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>
<id>13</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ЕстьФормаПараметрыПрописиВалюты</name>
<id>16</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПараметрыПрописиВалютыНаДругихЯзыках</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<navigationPanel>
<cmiFragmentRecord>
<command>0</command>
<userVisible/>
</cmiFragmentRecord>
<cmiFragmentRecord>
<command>0</command>
<userVisible/>
</cmiFragmentRecord>
<cmiFragmentRecord>
<command>0</command>
<userVisible/>
</cmiFragmentRecord>
</navigationPanel>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
@@ -38,13 +38,13 @@
КонецЕсли;
ОбработкаЗагрузкаКурсовВалют = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют");
Если ОбработкаЗагрузкаКурсовВалют <> Неопределено Тогда
ЕстьФормаПараметрыПрописиВалюты = ОбработкаЗагрузкаКурсовВалют.Формы.Найти("ПараметрыПрописиВалюты") <> Неопределено;
КонецЕсли;
Элементы.КурсВалютыЗагружаетсяИзИнтернета.Видимость = ОбработкаЗагрузкаКурсовВалют <> Неопределено;
УстановитьДоступностьЭлементов(ЭтотОбъект);
ЗаполнитьПодменюПараметрыПрописиВалюты();
Элементы.ГиперссылкаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() = 1;
Элементы.ГруппаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() > 1;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ФормулаРасчетаКурса.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу;
Элементы.ОсновнаяВалюта.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
@@ -54,6 +54,23 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = ЭтотОбъект И ИмяСобытия = "ПараметрыПрописиВалюты" Тогда
УстановитьПрописиНаЯзыке(Параметр.ПараметрыПрописи, Параметр.КодЯзыка);
Если Параметр.Записать Тогда
Записать();
Иначе
Модифицированность = Истина;
КонецЕсли;
Если Параметр.Закрыть Тогда
Закрыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
@@ -77,16 +94,7 @@
&НаКлиенте
Процедура ПараметрыПрописиВалютыНажатие(Элемент)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриИзмененииПараметровПрописиВалюты", ЭтотОбъект);
Если ЕстьФормаПараметрыПрописиВалюты Тогда
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыОткрытия.Вставить("ПараметрыПрописи", Объект.ПараметрыПрописи);
ИмяФормыРедактированияПрописей = "Обработка.ЗагрузкаКурсовВалют.Форма.ПараметрыПрописиВалюты";
ОткрытьФорму(ИмяФормыРедактированияПрописей, ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения);
Иначе
ПоказатьВводСтроки(ОписаниеОповещения, Объект.ПараметрыПрописи, НСтр("ru = 'Параметры прописи валюты'"));
КонецЕсли;
ОткрытьПараметрыПрописиВалюты(0);
КонецПроцедуры
@@ -137,13 +145,128 @@
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииПараметровПрописиВалюты(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Или Результат = КодВозвратаДиалога.Отмена Тогда
Процедура УстановитьПрописиНаЯзыке(ПараметрыПрописи, КодЯзыка)
Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
Объект.ПараметрыПрописи = ПараметрыПрописи;
Возврат;
КонецЕсли;
Объект.ПараметрыПрописи = Результат;
Модифицированность = Истина;
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
НайденнаяСтрока = СтрокаТаблицы;
Прервать;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
НайденнаяСтрока = Объект.Представления.Добавить();
НайденнаяСтрока.КодЯзыка = КодЯзыка;
КонецЕсли;
НайденнаяСтрока.ПараметрыПрописи = ПараметрыПрописи;
КонецПроцедуры
&НаКлиенте
Функция ПараметрыПрописиВалютыНаЯзыке(КодЯзыка)
Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда
Возврат Объект.ПараметрыПрописи;
КонецЕсли;
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда
НайденнаяСтрока = СтрокаТаблицы;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
Возврат "";
КонецЕсли;
Возврат НайденнаяСтрока.ПараметрыПрописи;
КонецФункции
&НаСервере
Процедура ЗаполнитьПодменюПараметрыПрописиВалюты()
Кнопка = Неопределено;
ФормыВводаПрописей = РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей();
Для Индекс = 0 По ФормыВводаПрописей.Количество() - 1 Цикл
ИмяКоманды = "ПараметрыПрописиВалюты_" + XMLСтрока(Индекс);
КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
Команда = Команды.Добавить(ИмяКоманды);
Если ЗначениеЗаполнено(КодЯзыка) Тогда
Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1...'"),
РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка));;
Иначе
Команда.Заголовок = НСтр("ru = 'На других языках...'");
КонецЕсли;
Команда.Действие = "Подключаемый_ОткрытьФормуПараметрыПрописиВалюты";
Кнопка = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаПараметрыПрописиВалюты);
Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
Кнопка.ИмяКоманды = ИмяКоманды;
КонецЦикла;
КонецПроцедуры
// Параметры:
// Команда - КомандаФормы
//
&НаКлиенте
Процедура Подключаемый_ОткрытьФормуПараметрыПрописиВалюты(Команда)
Индекс = Число(Сред(Команда.Имя, СтрДлина("ПараметрыПрописиВалюты_") + 1));
ОткрытьПараметрыПрописиВалюты(Индекс);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьПараметрыПрописиВалюты(Индекс)
ИмяФормыПрописей = ФормыВводаПрописей[Индекс].Представление;
КодЯзыка = ФормыВводаПрописей[Индекс].Значение;
Если ИмяФормыПрописей = "ПараметрыПрописиВалютыНаДругихЯзыках" Тогда
ПараметрыПрописиВалютыНаДругихЯзыках();
Иначе
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПараметрыПрописи", ПараметрыПрописиВалютыНаЯзыке(КодЯзыка));
ПараметрыФормы.Вставить("КодЯзыка", КодЯзыка);
ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект, , , НавигационнаяСсылка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПараметрыПрописиВалютыНаДругихЯзыках(Команда)
ПараметрыПрописиВалютыНаДругихЯзыках();
КонецПроцедуры
&НаКлиенте
Процедура ПараметрыПрописиВалютыНаДругихЯзыках()
ИмяРеквизита = "ПараметрыПрописи";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ИмяРеквизита", ИмяРеквизита);
ПараметрыФормы.Вставить("ТекущееЗначение", Объект.ПараметрыПрописи);
ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыФормы.Вставить("Представления", Объект.Представления);
ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -302,6 +302,64 @@
<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>
@@ -325,4 +383,28 @@
<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>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -347,8 +347,7 @@
// Добавляет рекурсивно строку в дерево подсистем.
//
// Параметры:
// ПриемникРодитель - СтрокаДереваЗначений
// - ДеревоЗначений:
// ПриемникРодитель - ДеревоЗначений:
// * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений
// - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * Имя - Строка
@@ -94,7 +94,7 @@
Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя());
Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы()));
Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ВариантыОтчетов.ЭтоОсновнойЯзык());
Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка);
Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
@@ -59,7 +59,10 @@
ПерезаполнитьДерево(Ложь);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект);
@@ -95,7 +98,11 @@
Если ЭтоПредопределенный Тогда
ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект();
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант);
КонецЕсли;
ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание));
Если Не ОписаниеИзменено Тогда
@@ -115,7 +122,11 @@
КонецЕсли;
ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы);
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда
ТекущийОбъект.Представления.Очистить();
КонецЕсли;
@@ -136,7 +147,12 @@
ПерезаполнитьДерево(Ложь);
ЗаполнитьИзПредопределенного(ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -156,7 +172,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
ЗаполнитьИзПредопределенного(ТекущийОбъект);
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета(
ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей);
@@ -183,7 +203,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -132,7 +134,17 @@
Данные.Ссылка = Данные.ПредопределенныйВариант;
КонецЕсли;
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
@@ -193,7 +193,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -379,7 +379,8 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
// РасширениеКонфигурации, Неопределено
// РасширениеКонфигурации
// Неопределено
//
Функция НайтиРасширение(ИдентификаторРасширения) Экспорт
@@ -511,7 +512,7 @@
// Для общих форм Расширения, УстановленныеИсправления.
//
// Возвращаемое значение:
// Массив Из УникальныйИдентификатор
// Массив из УникальныйИдентификатор
//
Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) Экспорт
@@ -317,7 +317,7 @@
| ВерсииФайлов.Расширение КАК Расширение,
| ВерсииФайлов.НомерВерсии КАК НомерВерсии
|ИЗ
| Справочник." + ИмяСправочникаХранилищаВерсийФайлов + " КАК ВерсииФайлов
| &ИмяСправочника КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Владелец = &Владелец";
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -33,7 +33,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -51,10 +51,12 @@
"ВЫБРАТЬ
| ВерсииФайлов.Ссылка КАК Ссылка
|ИЗ
| Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя + " КАК ВерсииФайлов
| &ИмяСправочникаВерсииФайлов КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.РодительскаяВерсия = &РодительскаяВерсия";
ИмяСправочникаВерсииФайлов = "Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяСправочникаВерсииФайлов", ИмяСправочникаВерсииФайлов);
Запрос.УстановитьПараметр("РодительскаяВерсия", Ссылка);
Результат = Запрос.Выполнить();
@@ -83,7 +83,10 @@
ДоступныДополнительныеНастройкиАдреса = (Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено
И Метаданные.Обработки["РасширенныйВводКонтактнойИнформации"].Формы.Найти("НастройкиАдреса") <> Неопределено);
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
@@ -102,7 +105,10 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
@@ -135,9 +141,7 @@
Новый ОписаниеОповещения("ПослеОтветаНаВопросКогдаИдентификаторДляФормулУжеИспользуется", ЭтотОбъект, ПараметрыЗаписи),
ТекстВопроса, Кнопки, , "ПродолжитьЗапись");
ОтказПриЗаписи = Истина;
Отказ = Истина;
Возврат;
Иначе
ПараметрыЗаписи.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
@@ -166,7 +170,10 @@
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаИдентификатораДляФормулВыполнена");
КонецЕсли;
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
@@ -183,7 +190,10 @@
Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр;
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
@@ -271,7 +281,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -427,7 +442,7 @@
&НаСервереБезКонтекста
Функция НаименованиеДляФормированияИдентификатора(Знач Наименование, Знач Представления)
Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами.
// Возвращаемое значение:
// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты.
//
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
БлокируемыеРеквизиты = Новый Массив;
@@ -54,7 +56,9 @@
// Проверки на запрет замены групп и ссылок разных типов производятся автоматически при начале замены.
//
// Параметры:
// ПарыЗамен - Соответствие - Ключ - что будет заменено, значение - на что будет заменено.
// ПарыЗамен - Соответствие из КлючИЗначение:
// * Ключ - ЛюбаяСсылка - что будет заменено
// * Значение - ЛюбаяСсылка - на что будет заменено
// Параметры - Структура - набор флагов, описывающих действие с заменяемыми элементами.
// Содержит необязательные реквизиты:
// * СпособУдаления - Строка - может принимать значения:
@@ -65,8 +69,9 @@
// Любые другие значения говорят о том, что заменяемая ссылка не будет изменена.
//
// Возвращаемое значение:
// Соответствие - Ключ - исходная ссылка, значение - строка - описание, почему замена недопустима.
// Если все замены допустимы, то возвращается пустое соответствие;
// Соответствие из КлючИЗначение:
// * Ключ - ЛюбаяСсылка - исходная ссылка
// * Значение - Строка - описание, почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие
//
Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт
@@ -173,7 +178,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#КонецОбласти
@@ -90,7 +90,7 @@
Функция НаименованиеДляФормированияИдентификатора()
НаименованиеДляИдентификатора = Наименование;
Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
@@ -104,7 +104,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами.
// Возвращаемое значение:
// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты.
//
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
БлокируемыеРеквизиты = Новый Массив;
@@ -41,7 +41,7 @@
<skipOnInput>false</skipOnInput>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
<picture>CommonPicture.Вопрос32</picture>
</picture>
</extInfo>
</items>
@@ -53,7 +53,7 @@
<value>%1
Проверить обновление компоненты?</value>
Проверить и загрузить обновление компоненты?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -91,10 +91,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ШапкаРасширеннаяПодсказка</name>
<id>12</id>
@@ -127,10 +123,6 @@
<extendedTooltip>
<name>ПодключитьИнтернетПоддержкуРасширеннаяПодсказка</name>
<id>23</id>
<title>
<key>ru</key>
<value>Для использования веб-сервиса 1С и загрузки внешних компонент необходимо выполнить подключение к Интернет-поддержке пользователей.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -145,7 +137,6 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>Button</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
@@ -482,10 +473,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<extendedTooltip>
<name>СтраницыРасширеннаяПодсказка</name>
<id>2</id>
@@ -39,7 +39,7 @@
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|Проверить обновление компоненты?'"),
|Проверить и загрузить обновление компоненты?'"),
ТекстПояснения);
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
@@ -92,10 +92,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ШапкаРасширеннаяПодсказка</name>
<id>12</id>
@@ -381,10 +377,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Страницы</value>
</title>
<extendedTooltip>
<name>СтраницыРасширеннаяПодсказка</name>
<id>2</id>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -39,7 +39,7 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
// Версия - Строка - (необязательный) версия компоненты.
// Версия - Строка - версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
@@ -1180,7 +1180,7 @@
// Параметры:
// Ответ - КодВозвратаДиалога
// ДополнительныеПараметры - Структура:
// * ПараметрыПеретаскивания - ПараметрыПеретаскивания
// * ПараметрыПеретаскивания - Массив из СправочникСсылка.ВнешниеПользователи
// * Строка - СправочникСсылка.ГруппыВнешнихПользователей
// * Перемещение - ДействиеПеретаскивания
//
@@ -1025,6 +1025,40 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПользовательИБЗапрещеноВосстанавливатьПароль</name>
<id>361</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>363</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню</name>
<id>362</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1846,6 +1880,68 @@
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>СтраницаКонтактнаяИнформация</name>
<id>357</id>
<items xsi:type="form:FormGroup">
<name>ГруппаКонтактнаяИнформация</name>
<id>359</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Контактная информация</value>
</title>
<extendedTooltip>
<name>ГруппаКонтактнаяИнформацияРасширеннаяПодсказка</name>
<id>360</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>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<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>358</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>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>СтраницаДополнительныеРеквизиты</name>
<id>300</id>
@@ -2759,6 +2855,65 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПользовательИБАдресЭлектроннойПочты</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>256</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяРеквизитаСПочтойДляВосстановленияПароля</name>
<id>7</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПарольДляПодтвержденияИзмененияПочты</name>
<id>32</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПользовательИБЗапрещеноВосстанавливатьПароль</name>
<title>
<key>ru</key>
<value>Пользователю запрещено восстанавливать пароль</value>
</title>
<id>41</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<formCommands>
<name>ПоказатьТолькоВыбранныеРоли</name>
<title>
@@ -48,6 +48,7 @@
ЗначениеКопирования = Параметры.ЗначениеКопирования;
Объект.Наименование = "";
Объект.ОбъектАвторизации = Неопределено;
ПользовательИБАдресЭлектроннойПочты = "";
Если Не ПользователиСлужебный.УровеньДоступаПользователяВыше(ЗначениеКопирования, УровеньДоступа) Тогда
ПрочитатьПользователяИБ(ЗначениеЗаполнено(ЗначениеКопирования.ИдентификаторПользователяИБ));
@@ -131,10 +132,44 @@
МодульУправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
КонецЕсли;
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
ПарольДляПодтвержденияИзмененияПочты = "";
КонецЕсли;
ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
ЭтотОбъект,
ПользовательИБАдресЭлектроннойПочты,
ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект),
Истина);
КонецЕсли;
Элементы.ГруппаКонтактнаяИнформация.Доступность = Пользователи.ЭтоПолноправныйПользователь();
КонецЕсли;
КонецЕсли;
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
КонецЕсли;
Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
Или ОбщегоНазначения.РазделениеВключено() Тогда
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
КонецЕсли;
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок =
ПользователиСлужебный.ПодсказкаПотребоватьСменуПароляПриВходе(Истина);
@@ -186,85 +221,23 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
&НаСервере
Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено)
Если ТекущийОбъект = Неопределено Тогда
ТекущийОбъект = Объект;
Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
ЭтотОбъект,
ПользовательИБАдресЭлектроннойПочты,
ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект.ОбъектАвторизации), Истина);
КонецЕсли;
ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей",
ЗапретРедактированияРолей
Или ДействияВФорме.Роли <> "Редактирование"
Или Не УровеньДоступа.НастройкиДляВхода
Или Не ТекущийОбъект.УстановитьРолиНепосредственно);
КонецПроцедуры
&НаСервере
Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
Если НачальноеОписаниеПользователяИБ = Неопределено Тогда
Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере.
КонецЕсли;
Если Не ПриСозданииНаСервере Тогда
ПрочитатьПользователяИБ();
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект);
УстановитьПривилегированныйРежим(Ложь);
УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект);
ОпределитьДействияВФорме();
ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи);
ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект);
// Установка постоянной доступности свойств.
Элементы.СвойстваПользователяИБ.Видимость =
ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ);
Элементы.ОтображениеРолей.Видимость =
ЗначениеЗаполнено(ДействияВФорме.Роли);
Элементы.УстановитьРолиНепосредственно.Видимость =
ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей();
ОбновитьОтображаемыйТипПользователя();
ТолькоПросмотр = ТолькоПросмотр
ИЛИ ДействияВФорме.Роли <> "Редактирование"
И ДействияВФорме.СвойстваЭлемента <> "Редактирование"
И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование";
ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование",
Метаданные.Справочники.ВнешниеПользователи);
Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда
Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки;
КонецЕсли;
Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда
Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки;
КонецЕсли;
Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда
Элементы.СменитьПароль.Доступность = ДоступностьКнопки;
КонецЕсли;
Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость =
УровеньДоступа.ИзменениеРазрешенияНаВход
И ТекущийОбъект.Подготовлен
И Не ПриЧтенииВходВПрограммуРазрешен;
УстановитьДоступностьСвойств(ЭтотОбъект);
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры
@@ -310,6 +283,26 @@
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи);
Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -327,6 +320,52 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда
Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен");
Иначе
Подготовлен = УровеньДоступа.УправлениеСписком;
КонецЕсли;
ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен;
Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда
ПарольСовпадаетССохраненным = Ложь;
Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда
УстановитьПривилегированныйРежим(Истина);
ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным(
ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
// проверка пароля
Если Не ПарольСовпадаетССохраненным Тогда
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
ВызватьИсключение НСтр("ru = 'Пароль указан неверно'");
КонецЕсли;
КонецЕсли;
ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда
@@ -350,11 +389,33 @@
МодульУправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
КонецЕсли;
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация")
И Пользователи.ЭтоПолноправныйПользователь() Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации);
Если Не ОбъектАвторизацииОбъект.Ссылка.Пустая() Тогда
ОбъектАвторизацииОбъект.Записать();
ЗначениеВРеквизитФормы(ОбъектАвторизацииОбъект, ИмяРеквизитаОбъектАвторизации);
КонецЕсли;
КонецЕсли;
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
УстановитьПривилегированныйРежим(Истина);
ПользователиСлужебный.ЗаписатьСведенияОПользователе(ЭтотОбъект, ТекущийОбъект);
@@ -490,6 +551,17 @@
МодульУправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации);
МодульУправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, ОбъектАвторизацииОбъект, Отказ);
КонецЕсли;
КонецЕсли;
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры
&НаСервере
@@ -507,6 +579,7 @@
Процедура ОбъектАвторизацииПриИзменении(Элемент)
ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект);
ИзменитьРеквизитОбъектАвторизации();
КонецПроцедуры
@@ -614,6 +687,7 @@
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
ПотребоватьСменуПароляПриВходе = Ложь;
ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -670,6 +744,93 @@
ОткрытьФорму("ОбщаяФорма.НастройкиВходаПользователей", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
// СтандартныеПодсистемы.КонтактнаяИнформация
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры
// Параметры:
// Элемент - ПолеФормы
// СтандартнаяОбработка - Булево
//
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
// Параметры:
// Команда - КомандаФормы
//
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
// Параметры:
// Элемент - ПолеФормы
// ВыбранноеЗначение - Произвольный
// СтандартнаяОбработка -Булево
//
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
МодульУправлениеКонтактнойИнформациейКлиент =
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
МодульУправлениеКонтактнойИнформациейКлиент.НачатьОбработкуНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт
ОбновитьКонтактнуюИнформацию(Результат);
КонецПроцедуры
&НаСервере
Процедура ОбновитьКонтактнуюИнформацию(Результат)
МодульУправлениеКонтактнойИнформацией =
ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
КонецПроцедуры
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРоли
@@ -761,6 +922,200 @@
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СоздатьРеквизитОбъектАвторизации()
ЗначениеОбъектаАвторизации = ОбъектАвторизации("ОбъектАвторизации");
Если ЗначениеОбъектаАвторизации = Неопределено Тогда
Возврат;
КонецЕсли;
ТекущийТипОбъектАвторизации = ТипЗнч(ЗначениеОбъектаАвторизации);
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТекущийТипОбъектАвторизации);
ОписаниеТипаНаФорме = Неопределено;
РеквизитыФормы = ПолучитьРеквизиты();
Для каждого РеквизитФормы Из РеквизитыФормы Цикл
Если РеквизитФормы.Имя = ИмяРеквизитаОбъектАвторизации Тогда
ОписаниеТипаНаФорме = РеквизитФормы.ТипЗначения.Типы()[0];
Прервать;
КонецЕсли;
КонецЦикла;
Если ТекущийТипОбъектАвторизации <> ОписаниеТипаНаФорме Тогда
ДобавляемыеРеквизиты = Новый Массив;
МассивТипов = Новый Массив;
МассивТипов.Добавить(ТекущийТипОбъектАвторизации);
ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяРеквизитаОбъектАвторизации, ОписаниеТипа));
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
КонецЕсли;
ЗначениеВРеквизитФормы(ЗначениеОбъектаАвторизации, ИмяРеквизитаОбъектАвторизации);
КонецПроцедуры
&НаСервере
Функция ОбъектАвторизации(ИмяРеквизитаОбъектАвторизации)
Если ТипЗнч(Объект[ИмяРеквизитаОбъектАвторизации])= Тип("Строка")
Или Не ЗначениеЗаполнено(Объект[ИмяРеквизитаОбъектАвторизации]) Тогда
Возврат Неопределено;
КонецЕсли;
ЗначениеОбъектаАвторизации = Объект[ИмяРеквизитаОбъектАвторизации].ПолучитьОбъект();
Возврат ЗначениеОбъектаАвторизации;
КонецФункции
&НаСервереБезКонтекста
Функция ИмяРеквизитаОбъектАвторизации(ТипОбъектАвторизации)
Префикс = Метаданные.НайтиПоТипу(ТипОбъектАвторизации).Имя;
Возврат "ОбъектАвторизацииВнешнегоПользователя" + Префикс;
КонецФункции
&НаСервере
Процедура ИзменитьРеквизитОбъектАвторизации()
// СтандартныеПодсистемы.КонтактнаяИнформация
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
СоздатьРеквизитОбъектАвторизации();
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если Не ЗначениеЗаполнено(Объект.ОбъектАвторизации)
Или Не МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
Возврат;
КонецЕсли;
ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации));
Если Элементы.ГруппаКонтактнаяИнформация.ПодчиненныеЭлементы.Количество() = 0 Тогда
Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда
МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
КонецЕсли;
Иначе
МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]);
КонецЕсли;
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
Если Пользователи.ЭтоПолноправныйПользователь() Тогда
Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
ПарольДляПодтвержденияИзмененияПочты = "";
КонецЕсли;
ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
ЭтотОбъект,
ПользовательИБАдресЭлектроннойПочты,
ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект),
Истина);
Элементы.ГруппаКонтактнаяИнформация.Доступность = Истина;
Иначе
Элементы.ГруппаКонтактнаяИнформация.Доступность = Ложь;
КонецЕсли;
КонецЕсли;
// Конец СтандартныеПодсистемы.КонтактнаяИнформация
КонецПроцедуры
&НаСервере
Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено)
Если ТекущийОбъект = Неопределено Тогда
ТекущийОбъект = Объект;
КонецЕсли;
ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей",
ЗапретРедактированияРолей
Или ДействияВФорме.Роли <> "Редактирование"
Или Не УровеньДоступа.НастройкиДляВхода
Или Не ТекущийОбъект.УстановитьРолиНепосредственно);
КонецПроцедуры
&НаСервере
Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено)
СоздатьРеквизитОбъектАвторизации();
Если НачальноеОписаниеПользователяИБ = Неопределено Тогда
Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере.
КонецЕсли;
Если Не ПриСозданииНаСервере Тогда
ПрочитатьПользователяИБ();
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект);
УстановитьПривилегированныйРежим(Ложь);
УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект);
ОпределитьДействияВФорме();
ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи);
ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект);
// Установка постоянной доступности свойств.
Элементы.СвойстваПользователяИБ.Видимость =
ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ);
Элементы.ОтображениеРолей.Видимость =
ЗначениеЗаполнено(ДействияВФорме.Роли);
Элементы.УстановитьРолиНепосредственно.Видимость =
ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей();
ОбновитьОтображаемыйТипПользователя();
ТолькоПросмотр = ТолькоПросмотр
ИЛИ ДействияВФорме.Роли <> "Редактирование"
И ДействияВФорме.СвойстваЭлемента <> "Редактирование"
И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование";
ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование",
Метаданные.Справочники.ВнешниеПользователи);
Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда
Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки;
КонецЕсли;
Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда
Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки;
КонецЕсли;
Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда
Элементы.СменитьПароль.Доступность = ДоступностьКнопки;
КонецЕсли;
Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость =
УровеньДоступа.ИзменениеРазрешенияНаВход
И ТекущийОбъект.Подготовлен
И Не ПриЧтенииВходВПрограммуРазрешен;
УстановитьДоступностьСвойств(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь)
@@ -1072,6 +1427,17 @@
КонецПроцедуры
// Продолжение обработчика события ПередЗаписью.
&НаКлиенте
Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Строка") Тогда
ПарольДляПодтвержденияИзмененияПочты = Результат;
Записать(ДополнительныеПараметры.ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Обработка пользователя ИБ
@@ -1192,7 +1558,7 @@
|ОсновнойИнтерфейс,
|РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ",
|Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ",
|Роли"));
|Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей());
КонецЕсли;
Если ПрочитанныеСвойства = Неопределено Тогда
@@ -1395,6 +1761,9 @@
Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль;
Элементы.СменитьПароль.Доступность =
( УровеньДоступа.НастройкиДляВхода
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
@@ -104,4 +106,66 @@
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
СписокВнешнихПользователей = ПользователиСлужебный.ВнешниеПользователиДляВключенияВосстановленияПароля();
Если СписокВнешнихПользователей.Количество() > 0 Тогда
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокВнешнихПользователей);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Параметры.ОбработкаЗавершена = Истина;
Возврат;
КонецЕсли;
ВнешнийПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеПользователи");
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
Пока ВнешнийПользовательСсылка.Следующий() Цикл
ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВнешнийПользовательСсылка.Ссылка, "ОбъектАвторизации");
Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ВнешнийПользовательСсылка.Ссылка, ОбъектАвторизации);
Если Результат = "Ошибка" Тогда
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
Иначе
ОбъектовОбработано = ОбъектовОбработано + 1;
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВнешнийПользовательСсылка.Ссылка);
КонецЕсли;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВнешниеПользователи");
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых внешних пользователей (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
Метаданные.Справочники.ВнешниеПользователи,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию внешних пользователей: %1'"),
ОбъектовОбработано));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.ТекстДляВнешнихПользователей =
@@ -50,4 +52,43 @@
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "ВсеВнешниеПользователи";
Элемент.Наименование = НСтр("ru = 'Все внешние пользователи'", ОбщегоНазначения.КодОсновногоЯзыка());
ПустыеСсылки = ПользователиСлужебныйПовтИсп.ПустыеСсылкиТиповОбъектовАвторизации();
Для Каждого ПустаяСсылка Из ПустыеСсылки Цикл
ТаблицаНазначение = ТабличныеЧасти.Назначение; // ТаблицаЗначений
НоваяСтрока = ТаблицаНазначение.Добавить();
НоваяСтрока.ТипПользователей = ПустаяСсылка;
КонецЦикла;
Элемент.Назначение = ТабличныеЧасти.Назначение;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -53,7 +55,30 @@
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
//
// Параметры:
// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера
// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы
// Сериализатор - СериализаторXDTO
// Объект - КонстантаМенеджерЗначения
// - СправочникОбъект
// - ДокументОбъект
// - БизнесПроцессОбъект
// - ЗадачаОбъект
// - ПланСчетовОбъект
// - ПланОбменаОбъект
// - ПланВидовХарактеристикОбъект
// - ПланВидовРасчетаОбъект
// - РегистрСведенийНаборЗаписей
// - РегистрНакопленияНаборЗаписей
// - РегистрБухгалтерииНаборЗаписей
// - РегистрРасчетаНаборЗаписей
// - ПоследовательностьНаборЗаписей
// - ПерерасчетНаборЗаписей
// Артефакты - Массив из ОбъектXDTO
// Отказ - Булево
//
Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт
УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ);
@@ -818,6 +843,37 @@
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Начальное заполнение
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "Администраторы";
Элемент.Наименование = НСтр("ru = 'Администраторы'", ОбщегоНазначения.КодОсновногоЯзыка());
Элемент.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Обновление информационной базы.
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -0,0 +1,42 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "ВсеПользователи";
Элемент.Наименование = НСтр("ru = 'Все пользователи'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -23,13 +23,21 @@
УстановитьЗаголовок();
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -43,7 +51,12 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -55,7 +68,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -64,7 +81,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -38,7 +38,10 @@
УстановитьЗаголовок();
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
@@ -60,7 +63,12 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -74,7 +82,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
@@ -88,6 +100,7 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
@@ -95,7 +108,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -104,7 +121,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -56,7 +58,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#КонецОбласти
@@ -42,7 +42,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -38,7 +38,10 @@
УстановитьЗаголовок();
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
@@ -60,7 +63,12 @@
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -74,7 +82,11 @@
// Конец СтандартныеПодсистемы.УправлениеДоступом
УстановитьЗаголовок();
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
@@ -88,6 +100,7 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
@@ -95,7 +108,11 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -104,7 +121,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -56,7 +58,17 @@
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
#КонецОбласти
@@ -42,7 +42,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
// Массив из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -33,7 +33,7 @@
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
// Возвращаемое значение:
// Массив Из Строка - массив имен реквизитов, образующих естественный ключ.
// Массив из Строка - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -134,8 +134,6 @@
&НаСервереБезКонтекста
Процедура НаборыСвойствПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
ЭтоОсновнойЯзык = (ТекущийЯзык() = Метаданные.ОсновнойЯзык);
Для Каждого СтрокаДинамическогоСписка Из Строки Цикл
Данные = СтрокаДинамическогоСписка.Значение.Данные;
Если Данные.ЭтоГруппа Тогда
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -53,7 +53,17 @@
КонецЕсли;
Если ЗначениеЗаполнено(Данные.Родитель) Тогда
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
Возврат;
КонецЕсли;
@@ -300,7 +310,7 @@
// * Используется - Булево
// * Ссылка - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений
// * Родитель - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений
// * ДочерниеНаборы - Соответствие:
// * ДочерниеНаборы - Соответствие из КлючИЗначение:
// ** Ключ - Строка
// ** Значение - см. СвойстваНабора
// * Наименование - Строка
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -39,7 +39,7 @@
//
// Параметры:
// Идентификатор - Строка - идентификатор объекта внешнего компонента.
// Версия - Строка - (необязательный) версия компоненты.
// Версия - Строка - версия компоненты.
//
// Возвращаемое значение:
// СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе.
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -75,27 +77,23 @@
#Область СлужебныйПрограммныйИнтерфейс
// Начальное заполнение
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// Вызывается при начальном заполнении справочника ПапкиФайлов.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника ПапкиФайлов.
// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
// * Ключ - Строка - имя табличной части;
// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
// необходимо скопировать перед заполнением. Например:
// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
// ЭлементТЧ = Элемент.Ключи.Добавить();
// ЭлементТЧ.ИмяКлюча = "Первичный";
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -42,12 +42,9 @@
&НаСервере
Процедура ОбработатьПереданныеПараметры()
УчетнаяЗаписьУказана = Ложь;
Если Параметры.Отбор.Свойство("Владелец")
И ЗначениеЗаполнено(Параметры.Отбор.Владелец) Тогда
УчетнаяЗаписьУказана = Истина;
Владелец = Параметры.Отбор.Владелец;
Элементы.Владелец.Видимость = Ложь;
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -0,0 +1,197 @@
<?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>ПояснениеПриВходе</name>
<id>10</id>
<title>
<key>ru</key>
<value>Для изменения электронной почты, используемой для восстановления пароля, необходимо ввести пароль</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<titleHeight>2</titleHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<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>
<titleLocation>None</titleLocation>
<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>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>
<passwordMode>true</passwordMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаОК</name>
<id>8</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<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>6</id>
<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.StandardCommand.Cancel</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Пароль</name>
<id>1</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>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,27 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Заголовок = НСтр("ru='Введите текущий пароль'");
АвтоЗаголовок = Ложь;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОК(Команда)
Закрыть(Пароль);
КонецПроцедуры
#КонецОбласти
@@ -35,6 +35,90 @@
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>158</id>
<items xsi:type="form:FormGroup">
<name>ПодменюСоздать</name>
<id>299</id>
<items xsi:type="form:Button">
<name>СоздатьПользователя</name>
<id>54</id>
<title>
<key>ru</key>
<value>Создать</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<skipOnInput>false</skipOnInput>
<extendedTooltip>
<name>СоздатьПользователяExtendedTooltip</name>
<id>101</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.ПользователиСписок.StandardCommand.Create</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>PictureAndText</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьГруппуПользователей</name>
<id>55</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<skipOnInput>false</skipOnInput>
<extendedTooltip>
<name>СоздатьГруппуПользователейExtendedTooltip</name>
<id>102</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СоздатьГруппуПользователей</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Создать</value>
</title>
<extendedTooltip>
<name>ПодменюСоздатьРасширеннаяПодсказка</name>
<id>300</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">
<representation>Compact</representation>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ЗавершитьИЗакрыть</name>
<id>95</id>
@@ -131,60 +215,6 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьПользователя</name>
<id>54</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<skipOnInput>false</skipOnInput>
<extendedTooltip>
<name>СоздатьПользователяExtendedTooltip</name>
<id>101</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Item.ПользователиСписок.StandardCommand.Create</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьГруппуПользователей</name>
<id>55</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<skipOnInput>false</skipOnInput>
<extendedTooltip>
<name>СоздатьГруппуПользователейExtendedTooltip</name>
<id>102</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СоздатьГруппуПользователей</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>НазначитьГруппы</name>
<id>72</id>
@@ -264,7 +294,7 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<representationInContextMenu>OnlyInContextMenu</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаИзменить</name>
@@ -292,33 +322,6 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаУстановитьПароль</name>
<id>198</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаУстановитьПарольРасширеннаяПодсказка</name>
<id>199</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.УстановитьПароль</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>ПользователиСтандартныеКоманды</name>
<id>210</id>
@@ -345,6 +348,95 @@
<commandSource>Form</commandSource>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ПодменюСоздатьНаОсновании</name>
<id>311</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Создать на основании</value>
</title>
<extendedTooltip>
<name>ПодменюСоздатьНаОснованииРасширеннаяПодсказка</name>
<id>312</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">
<picture xsi:type="core:PictureRef">
<picture>StdPicture.InputOnBasis</picture>
</picture>
<representation>Picture</representation>
<importance>Normal</importance>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ПодменюОтчеты</name>
<id>303</id>
<items xsi:type="form:FormGroup">
<name>ПодменюОтчетыВажное</name>
<id>305</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Подменю отчеты важное</value>
</title>
<extendedTooltip>
<name>ПодменюОтчетыВажноеРасширеннаяПодсказка</name>
<id>306</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:FormGroup">
<name>ПодменюОтчетыПерейти</name>
<id>307</id>
<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>308</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:FormGroup">
<name>ПодменюОтчетыСмТакже</name>
<id>309</id>
<items xsi:type="form:Button">
<name>СведенияОПользователях</name>
<id>132</id>
@@ -372,6 +464,89 @@
<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>
<toolTip>
<key>ru</key>
<value>Подменю отчеты важное</value>
</toolTip>
<extendedTooltip>
<name>ПодменюОтчетыСмТакжеРасширеннаяПодсказка</name>
<id>310</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Отчеты</value>
</title>
<extendedTooltip>
<name>ПодменюОтчетыРасширеннаяПодсказка</name>
<id>304</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">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Отчеты</picture>
</picture>
<representation>PictureAndText</representation>
<importance>Normal</importance>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ПодменюДополнительно</name>
<id>297</id>
<items xsi:type="form:Button">
<name>ФормаИзменитьВыделенные</name>
<id>196</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьВыделенныеРасширеннаяПодсказка</name>
<id>197</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ИзменитьВыделенные</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>ПользователиИБ</name>
<id>6</id>
@@ -400,16 +575,16 @@
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>ФормаИзменитьВыделенные</name>
<id>196</id>
<name>ФормаУстановитьПароль</name>
<id>198</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьВыделенныеРасширеннаяПодсказка</name>
<id>197</id>
<name>ФормаУстановитьПарольРасширеннаяПодсказка</name>
<id>199</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -417,7 +592,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ИзменитьВыделенные</commandName>
<commandName>Form.Command.УстановитьПароль</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
@@ -428,14 +603,14 @@
</items>
<items xsi:type="form:Button">
<name>ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий</name>
<id>297</id>
<id>301</id>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействийРасширеннаяПодсказка</name>
<id>298</id>
<id>302</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -450,6 +625,32 @@
<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>298</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>
<importance>Normal</importance>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
@@ -3263,7 +3464,9 @@
<event>BeforeLoadDataFromSettingsAtServer</event>
<name>ПередЗагрузкеДанныхИзНастроекНаСервере</name>
</handlers>
<excludedCommands>Close</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>Delete</excludedCommands>
<windowOpeningMode>DontBlock</windowOpeningMode>
<autoSaveDataInSettings>Use</autoSaveDataInSettings>
<saveWindowSettings>true</saveWindowSettings>
@@ -1395,6 +1395,40 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПользовательИБЗапрещеноВосстанавливатьПароль</name>
<id>366</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>368</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню</name>
<id>367</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПользовательИБПоказыватьВСпискеВыбора</name>
<id>25</id>
@@ -2668,6 +2702,117 @@
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>ПодменюОтчеты</name>
<id>358</id>
<items xsi:type="form:FormGroup">
<name>ПодменюОтчетыВажное</name>
<id>360</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Подменю отчеты важное</value>
</title>
<extendedTooltip>
<name>ПодменюОтчетыВажноеРасширеннаяПодсказка</name>
<id>361</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:FormGroup">
<name>ПодменюОтчетыПерейти</name>
<id>362</id>
<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>363</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:FormGroup">
<name>ПодменюОтчетыСмТакже</name>
<id>364</id>
<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>365</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Отчеты</value>
</title>
<extendedTooltip>
<name>ПодменюОтчетыРасширеннаяПодсказка</name>
<id>359</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">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Отчеты</picture>
</picture>
<representation>PictureAndText</representation>
<importance>Normal</importance>
</extInfo>
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
@@ -3465,6 +3610,67 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПользовательИБАдресЭлектроннойПочты</name>
<id>34</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>256</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<functionalOptions>FunctionalOption.ИспользоватьВнешнихПользователей</functionalOptions>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ПарольДляПодтвержденияИзмененияПочты</name>
<id>45</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяРеквизитаСПочтойДляВосстановленияПароля</name>
<id>46</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>47</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<savedData>true</savedData>
</attributes>
<formCommands>
<name>ПоказатьТолькоВыбранныеРоли</name>
<title>
@@ -53,6 +53,7 @@
Элементы.ПользовательИБАутентификацияСтандартная.Видимость = Ложь;
Элементы.ПотребоватьСменуПароляПриВходе.Видимость = Ложь;
Элементы.ПользовательИБЗапрещеноИзменятьПароль.Видимость = Ложь;
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
Элементы.СвойстваАутентификацииОС.Видимость = Ложь;
Элементы.ПользовательИБРежимЗапуска.Видимость = Ложь;
КонецЕсли;
@@ -107,6 +108,8 @@
ВходВПрограммуРазрешен = Ложь;
ВходВПрограммуРазрешенЗначениеПрямогоИзменения = Ложь;
КонецЕсли;
ПользовательИБАдресЭлектроннойПочты = "";
Иначе
// Добавление элемента.
@@ -138,9 +141,28 @@
НачальноеОписаниеПользователяИБ = НачальноеОписаниеПользователяИБ();
ТребуетсяСинхронизацияССервисом = Объект.Ссылка.Пустая();
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, "КонтактнаяИнформация");
ДополнительныеПараметры = МодульУправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
ДополнительныеПараметры.ИмяЭлементаДляРазмещения = "КонтактнаяИнформация";
МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, ДополнительныеПараметры);
Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда
ПарольДляПодтвержденияИзмененияПочты = "";
КонецЕсли;
ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
ЭтотОбъект,
ПользовательИБАдресЭлектроннойПочты,
ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект));
КонецЕсли;
ПереопределитьРедактированиеКонтактнойИнформацииВСервисе();
КонецЕсли;
@@ -193,6 +215,10 @@
АдресФотографии = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.ПользовательБезФотографии, УникальныйИдентификатор);
КонецЕсли;
Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -246,6 +272,14 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, "КонтактнаяИнформация");
Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля(
ЭтотОбъект,
ПользовательИБАдресЭлектроннойПочты,
ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, ТекущийОбъект));
КонецЕсли;
КонецЕсли;
НастроитьФорму(ТекущийОбъект);
@@ -276,6 +310,26 @@
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ОчиститьСообщения();
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи);
Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЗаголовокВопросов = НСтр("ru = 'Запись пользователя информационной базы'");
// Копирование прав пользователя.
@@ -347,6 +401,53 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда
Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен");
Иначе
Подготовлен = УровеньДоступа.УправлениеСписком;
КонецЕсли;
ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен;
Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда
ПарольСовпадаетССохраненным = Ложь;
Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда
УстановитьПривилегированныйРежим(Истина);
ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным(
ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
// проверка пароля
Если Не ПарольСовпадаетССохраненным Тогда
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
ВызватьИсключение НСтр("ru = 'Пароль указан неверно'");
КонецЕсли;
КонецЕсли;
ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда
@@ -470,6 +571,8 @@
Возврат;
КонецЕсли;
ПарольДляПодтвержденияИзмененияПочты = Неопределено;
ПослеЗаписиЗавершение(Неопределено, ПараметрыЗаписи);
КонецПроцедуры
@@ -480,7 +583,14 @@
Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда
ОписаниеПользователяИБ = ОписаниеПользователяИБ();
ОписаниеПользователяИБ.Вставить("ИдентификаторПользователяИБ", Объект.ИдентификаторПользователяИБ);
Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
И ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) Тогда
ОписаниеПользователяИБ.АдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля];
КонецЕсли;
ПользователиСлужебный.ПроверитьОписаниеПользователяИБ(ОписаниеПользователяИБ, Отказ, Ложь);
КонецЕсли;
Если ВходВПрограммуРазрешен
@@ -681,6 +791,7 @@
Если ПользовательИБЗапрещеноИзменятьПароль Тогда
ПотребоватьСменуПароляПриВходе = Ложь;
ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -1277,6 +1388,7 @@
Элементы.ПользовательИБПоказыватьВСпискеВыбора.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБРежимЗапуска.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.Комментарий.ТолькоПросмотр =
@@ -1331,6 +1443,17 @@
КонецПроцедуры
// Продолжение обработчика события ПередЗаписью.
&НаКлиенте
Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Строка") Тогда
ПарольДляПодтвержденияИзмененияПочты = Результат;
Записать(ДополнительныеПараметры.ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь)
@@ -1379,9 +1502,16 @@
И НЕ ПользовательИБАутентификацияОС Тогда
ВходВПрограммуРазрешен = Ложь;
ПользовательИБЗапрещеноВосстанавливатьПароль = Истина;
ИначеЕсли Не ВходВПрограммуРазрешен Тогда
ВходВПрограммуРазрешен = ВходВПрограммуРазрешенЗначениеПрямогоИзменения;
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
И ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]) Тогда
ПользовательИБЗапрещеноВосстанавливатьПароль = Ложь;
КонецЕсли;
КонецЕсли;
УстановитьДоступностьСвойств(ЭтотОбъект);
@@ -1566,6 +1696,9 @@
Если УровеньДоступа.ИзменениеТекущего Тогда
Результат.Вставить("Пароль", ПользовательИБПароль);
Результат.Вставить("Язык", ПользовательИБЯзык);
Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты);
КонецЕсли;
КонецЕсли;
Если УровеньДоступа.УправлениеСписком Тогда
@@ -1573,8 +1706,13 @@
Результат.Вставить("ПоказыватьВСпискеВыбора", ПользовательИБПоказыватьВСпискеВыбора
И Не ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей"));
Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБЗапрещеноИзменятьПароль);
Результат.Вставить("Язык", ПользовательИБЯзык);
Результат.Вставить("РежимЗапуска", ПользовательИБРежимЗапуска);
Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда
Результат.Вставить("ЗапрещеноВосстанавливатьПароль", ПользовательИБЗапрещеноВосстанавливатьПароль);
Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты);
КонецЕсли;
Если ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Результат.Вставить("ПолноеИмя", ПользовательИБПолноеИмя);
@@ -1961,7 +2099,7 @@
|ОсновнойИнтерфейс,
|РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ",
|Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ",
|Роли"));
|Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей());
КонецЕсли;
Если ПрочитанныеСвойства = Неопределено Тогда
@@ -2029,6 +2167,28 @@
ПользовательИБПолноеИмя));
КонецЕсли;
// Проверка на соответствие почты
Если УровеньДоступа.ИзменениеТекущего Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя");
СтрокаОписания = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(
ЭтотОбъект, ВидEmailПользователя, ПользовательИБАдресЭлектроннойПочты);
Если СтрокаОписания = Неопределено Тогда
ПоказатьКомандыУстраненияРазличий =
ПоказатьКомандыУстраненияРазличий
Или ДействияВФорме.СвойстваЭлемента = "Редактирование";
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"),
ПользовательИБАдресЭлектроннойПочты));
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если УточнениеСвойств.Количество() > 0 Тогда
СтрокаУточненияСвойств = "";
ТекущаяСтрока = "";
@@ -2111,6 +2271,8 @@
И ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Объект.Наименование = ПользовательИБПолноеИмя;
ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ();
КонецЕсли;
ОпределитьНесоответствияПользователяСПользователемИБ();
@@ -2121,6 +2283,33 @@
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
Если ПустаяСтрока(ИмяРеквизитаСПочтойДляВосстановленияПароля)
Или ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] <> ПользовательИБАдресЭлектроннойПочты Тогда
ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя");
ОписаниеПочты = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(ЭтотОбъект, ВидEmailПользователя, ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]);
Если ОписаниеПочты <> Неопределено Тогда
ОписаниеПочты.Представление = ПользовательИБАдресЭлектроннойПочты;
ОписаниеПочты.Значение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(
ПользовательИБАдресЭлектроннойПочты, ВидEmailПользователя);
ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] = ПользовательИБАдресЭлектроннойПочты;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Начальное заполнение, проверка заполнения, доступность свойств.
@@ -2155,6 +2344,8 @@
Элементы.ПараметрыАутентификации1СПредприятия.Доступность = Форма.ПользовательИБАутентификацияСтандартная;
Элементы.ПользовательИБПользовательОС.Доступность = Форма.ПользовательИБАутентификацияОС;
Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль;
// Уточнение настроек в модели сервиса.
Если ДействияСПользователемСервиса <> Неопределено Тогда
@@ -2202,7 +2393,7 @@
Функция ОпределитьДоступностьЭлементовКонтактнойИнформации()
Результат = Новый Соответствие;
Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл
Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл // СтрокаТаблицыЗначений: см. УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация
ДействияВидаКонтактнойИнформации = ДействияСПользователемСервиса.КонтактнаяИнформация.Получить(СтрокаКонтактнойИнформации.Вид);
Если ДействияВидаКонтактнойИнформации = Неопределено Тогда
// Возможность редактирования этого вида КИ не регулируется менеджером сервиса.
@@ -2262,6 +2453,12 @@
Возврат Истина;
КонецЕсли;
// Поддерживается в новых версиях платформы
Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей()
И Форма.ПользовательИБЗапрещеноВосстанавливатьПароль <> Шаблон.ЗапрещеноВосстанавливатьПароль Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -118,4 +120,76 @@
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
СписокПользователей = ПользователиСлужебный.ПользователиДляВключенияВосстановленияПароля();
Если СписокПользователей.Количество() > 0 Тогда
ВключитьСтандартныеНастройкиВосстановленияПароля();
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокПользователей);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
Параметры.ОбработкаЗавершена = Истина;
Возврат;
КонецЕсли;
ПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.Пользователи");
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
Пока ПользовательСсылка.Следующий() Цикл
Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка.Ссылка);
Если Результат = "Ошибка" Тогда
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
Иначе
ОбъектовОбработано = ОбъектовОбработано + 1;
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ПользовательСсылка.Ссылка);
КонецЕсли;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.Пользователи");
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых пользователей (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
Метаданные.Справочники.Пользователи,,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию пользователей: %1'"),
ОбъектовОбработано));
КонецЕсли;
КонецПроцедуры
Процедура ВключитьСтандартныеНастройкиВосстановленияПароля()
Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля();
Если Настройки = Неопределено Тогда
Возврат;
КонецЕсли;
Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияЧерезСтандартныйСервис");
ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(Настройки);
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -102,7 +102,7 @@
Блокировка.Добавить("Справочник.ГруппыПользователей");
Блокировка.Заблокировать();
ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект();
ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект(); // СправочникОбъект.ГруппыПользователей
ОбъектГруппы.Состав.Добавить().Пользователь = Ссылка;
ОбъектГруппы.Записать();
КонецЕсли;
@@ -820,6 +820,15 @@
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="cfc0adf6-87b4-4c8a-91e2-46c2616b319b">
<name>ВводПароля</name>
<synonym>
<key>ru</key>
<value>Ввод пароля</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<commands uuid="bed3f0b2-40c6-4323-9bca-cb8864e38ec0">
<name>ПользователиИнформационнойБазы</name>
<synonym>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -32,7 +32,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -185,7 +185,7 @@
КонецПроцедуры
&НаСервере
Функция ЗагрузитьРезультат(АдресРезультата)
Процедура ЗагрузитьРезультат(АдресРезультата)
Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
Если ТипЗнч(Результат) = Тип("Строка")
@@ -193,6 +193,6 @@
ТекстСообщенияПользователю = Результат;
КонецЕсли;
КонецФункции
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -37,7 +37,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -72,6 +72,8 @@
КонецЦикла;
Возврат Ложь;
КонецФункции
#КонецОбласти
@@ -17,7 +17,7 @@
// Имена реквизитов справочника, значения которых разрешено изменять массово.
//
// Возвращаемое значение:
// Массив Из Строка - имена реквизитов справочника.
// Массив из Строка - имена реквизитов справочника.
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,7 @@
// Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов.
//
// Возвращаемое значение:
// Массив Из Строка - имена реквизитов справочника.
// Массив из Строка - имена реквизитов справочника.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -59,7 +59,17 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
@@ -17,7 +17,7 @@
// Имена реквизитов справочника, значения которых разрешено изменять массово.
//
// Возвращаемое значение:
// Массив Из Строка - имена реквизитов справочника.
// Массив из Строка - имена реквизитов справочника.
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -34,7 +34,7 @@
// Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов.
//
// Возвращаемое значение:
// Массив Из Строка - имена реквизитов справочника.
// Массив из Строка - имена реквизитов справочника.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -59,7 +59,17 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
@@ -5,7 +5,7 @@
<id>55</id>
<title>
<key>ru</key>
<value>Настройка программы электронной подписи и шифрования выполнена в главном узле</value>
<value>Настройка программы электронной подписи и шифрования выполнена в корневом узле</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -70,8 +70,7 @@
#Область СлужебныйПрограммныйИнтерфейс
// Функция выявляет последний день, за который заполнены данные
// указанного производственного календаря.
// Выявляет последний день, за который заполнены данные указанного производственного календаря.
//
// Параметры:
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь.
@@ -103,14 +102,14 @@
КонецФункции
// Функция читает данные производственного календаря из регистра.
// Возвращает сведения о виде дня на каждую дату производственного календаря.
//
// Параметры:
// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
// НомерГода - номер года, за который необходимо прочитать производственный календарь.
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
// НомерГода - Число - номер года, за который необходимо прочитать производственный календарь.
//
// Возвращаемое значение
// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
// Возвращаемое значение:
// ТаблицаЗначений
//
Функция ДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода) Экспорт
@@ -469,8 +468,8 @@
// Преобразовывает данные производственных календарей, поставляемые в виде макета в конфигурации.
//
// Параметры:
// КодыКалендарей - необязательный, массив, если не задан, то будут получены все имеющиеся данные из макета.
// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
// КодыКалендарей - Массив - если не задан, то будут получены все имеющиеся данные из макета.
// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
// см. ДанныеПроизводственныхКалендарейИзXML.
@@ -481,8 +480,8 @@
Возврат НовыеДанныеПроизводственныхКалендарей();
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ДанныеПроизводственныхКалендарей");
МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ДанныеПроизводственныхКалендарей");
ДанныеXML = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
@@ -495,10 +494,10 @@
// Преобразовывает данные производственных календарей, представленные в виде XML.
//
// Параметры:
// ДанныеXML - структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
// ТаблицаКалендарей - таблица значений, список производственных календарей, поддерживаемых в конфигурации.
// КодыКалендарей - необязательный, массив, если не задан, то отбор не будет установлен.
// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
// ДанныеXML - Структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу.
// ТаблицаКалендарей - ТаблицаЗначений - список производственных календарей, поддерживаемых в конфигурации.
// КодыКалендарей - Массив - если не задан, то отбор не будет установлен.
// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
// ТаблицаЗначений:
@@ -601,8 +600,8 @@
Возврат Новый ТаблицаЗначений;
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней");
МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПериодыНерабочихДней");
ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
ТаблицаКалендарей = ПроизводственныеКалендариИзМакета();
@@ -621,8 +620,8 @@
Возврат Новый ТаблицаЗначений;
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПроизводственныеКалендари");
МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПроизводственныеКалендари");
ТаблицаКалендарей = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст()).Данные;
Возврат ТаблицаКалендарей;
@@ -766,18 +765,20 @@
| И (ИзмененияЗависимыхКалендарей.Год = ИзмененияБазовыхКалендарей.Год)
|ГДЕ
| ИзмененияЗависимыхКалендарей.Год ЕСТЬ NULL";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Блокировка = Новый БлокировкаДанных();
Блокировка.Добавить(Метаданные.Справочники.ПроизводственныеКалендари.ПолноеИмя());
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
КодыЗависимых = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Код");
ДанныеИзМакета = ДанныеПроизводственныхКалендарейПоУмолчанию(КодыЗависимых);
ОтборСтрок = Новый Структура(
"КодПроизводственногоКалендаря,
|Год");
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ОтборСтрок.КодПроизводственногоКалендаря = Выборка.Код;
@@ -804,6 +805,12 @@
НоваяСтрока.КодПроизводственногоКалендаря = Выборка.Код;
НоваяСтрока.Год = Выборка.Год;
КонецЦикла;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
@@ -909,12 +916,9 @@
// Процедура записывает данные одного производственного календаря за 1 год.
//
// Параметры:
// ПроизводственныйКалендарь - ссылка на текущий элемент справочника.
// НомерГода - номер года, за который необходимо записать производственный календарь.
// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря.
//
// Возвращаемое значение
// Нет
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
// НомерГода - Число - номер года, за который необходимо записать производственный календарь.
// ДанныеПроизводственногоКалендаря - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря.
//
Процедура ЗаписатьДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода, ДанныеПроизводственногоКалендаря) Экспорт
@@ -965,7 +969,7 @@
// по метаданным перечисления ВидыДнейПроизводственногоКалендаря.
//
// Возвращаемое значение
// СписокВидовДня - список значений, содержащий значение перечисления
// СписокВидовДня - СписокЗначений - содержащий значение перечисления
// и его синоним в качестве представления.
//
Функция СписокВидовДня() Экспорт
@@ -1016,8 +1020,8 @@
ПраздничныеДни.Колонки.Добавить("ТолькоНерабочий", Новый ОписаниеТипов("Булево"));
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") <> Неопределено Тогда
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
МодульКалендарныеГрафики.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни);
МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
МодульЗаполнениеКалендарныхГрафиков.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни);
КонецЕсли;
Возврат ПраздничныеДни;
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -36,7 +36,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -58,7 +60,30 @@
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
//
// Параметры:
// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера
// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы
// Сериализатор - СериализаторXDTO
// Объект - КонстантаМенеджерЗначения
// - СправочникОбъект
// - ДокументОбъект
// - БизнесПроцессОбъект
// - ЗадачаОбъект
// - ПланСчетовОбъект
// - ПланОбменаОбъект
// - ПланВидовХарактеристикОбъект
// - ПланВидовРасчетаОбъект
// - РегистрСведенийНаборЗаписей
// - РегистрНакопленияНаборЗаписей
// - РегистрБухгалтерииНаборЗаписей
// - РегистрРасчетаНаборЗаписей
// - ПоследовательностьНаборЗаписей
// - ПерерасчетНаборЗаписей
// Артефакты - Массив из ОбъектXDTO
// Отказ - Булево
//
Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт
УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ);
@@ -291,10 +316,8 @@
КонецПроцедуры
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
//
// Параметры:
// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела
// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела.
//
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
@@ -505,7 +528,8 @@
Для каждого ОписаниеЗначенияДоступа Из СвойстваПрофиля.ЗначенияДоступа Цикл
Отбор = Новый Структура;
Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа));
Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение",
"ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа));
Отбор.Вставить("ЗначениеДоступа", Запрос.Выполнить().Выгрузить()[0].Значение);
Если Профиль.ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
@@ -675,7 +699,7 @@
//
// Возвращаемое значение:
// ФиксированнаяСтруктура:
// * ОписанияПрофилей - Соответствие:
// * ОписанияПрофилей - Соответствие из КлючИЗначение:
// ** Ключ - Строка
// ** Значение - см. СвойстваПоставляемогоПрофиля
// * ОписанияПрофилейМассив - Массив из см. СвойстваПоставляемогоПрофиля
@@ -746,6 +770,35 @@
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Начальное заполнение
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "Администратор";
Элемент.Наименование = НСтр("ru = 'Администратор'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции для поддержки обмена данными в РИБ.
@@ -804,14 +857,32 @@
ЕстьИзменения = Ложь;
// АПК:1328-выкл. См. 648.1.1. Допустимо чтение без предварительной
// управляемой разделяемой блокировки, так как используется только
// для очистки и какой сеанс очистит первым не важно.
Выборка = Запрос.Выполнить().Выбрать();
// АПК:1328-вкл.
Пока Выборка.Следующий() Цикл
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект();
Если ПрофильОбъект <> Неопределено Тогда
УдалитьРолиРасширений(ПрофильОбъект);
Если ПрофильОбъект.Модифицированность() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект, Ложь);
ЕстьИзменения = Истина;
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЦикла;
Если ЕстьИзменения Тогда
@@ -938,6 +1009,10 @@
КонецФункции
// Для функции ЗаполненныеПоставляемыеПрофили.
//
// Параметры:
// ОписаниеПрофиляАдминистратор - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
//
Процедура ЗаполнитьПрофильАдминистратор(ОписаниеПрофиляАдминистратор, КромеОписания = Ложь)
Если КромеОписания Тогда
@@ -1297,7 +1372,7 @@
// * Наименование - Строка
// * Роли - ФиксированныйМассив из Строка
// * Назначение - ФиксированныйМассив из ОпределяемыйТип.Пользователь
// * ВидыДоступа - ФиксированноеСоответствие:
// * ВидыДоступа - ФиксированноеСоответствие из КлючИЗначение:
// * Ключ - Строка
// * Значение - Строка
// * ЗначенияДоступа - ФиксированныйМассив из Структура:
@@ -1315,7 +1390,7 @@
КонецФункции
// Возвращаемое значение:
// ФиксированноеСоответствие:
// ФиксированноеСоответствие из КлючИЗначение:
// * Ключ - Строка - строковый идентификатор поставляемого профиля
// * Значение - Строка - описание поставляемого профиля
//
@@ -1460,7 +1535,8 @@
СвойстваВидаДоступа = УправлениеДоступомСлужебный.СвойстваВидаДоступа(ОписаниеЗначенияДоступа.ВидДоступа);
СтрокаЗначения = ПрофильОбъект.ЗначенияДоступа.Добавить();
СтрокаЗначения.ВидДоступа = СвойстваВидаДоступа.Ссылка;
Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа));
Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение",
"ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа));
СтрокаЗначения.ЗначениеДоступа = Запрос.Выполнить().Выгрузить()[0].Значение;
КонецЦикла;
@@ -207,10 +207,10 @@
&НаСервере
Процедура ЗагрузитьПрофильКлючевыхОперацийНаСервере(АдресХранилища)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); // ДвоичныеДанные
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
ДвоичныеДанные.Записать(ИмяВременногоФайла); // ДвоичныеДанные
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяВременногоФайла);
@@ -243,9 +243,8 @@
&НаСервере
Процедура ЗаполнитьПочтовыеАдреса()
НаборПараметров = "Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки";
ПараметрыПолучателей = Новый Структура(НаборПараметров);
ПараметрыПолучателей = Новый Структура("Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки");
ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, ЭтотОбъект);
ПараметрыПолучателей.Личная = Ложь;
ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных;
@@ -120,10 +120,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Основное</value>
</title>
<extendedTooltip>
<name>ОсновноеРасширеннаяПодсказка</name>
<id>25</id>
@@ -209,10 +205,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Основные команды</value>
</title>
<extendedTooltip>
<name>ОсновныеКомандыРасширеннаяПодсказка</name>
<id>13</id>
@@ -233,10 +225,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>11</id>
@@ -84,20 +84,27 @@
Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента"));
Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента"));
// АПК:1299-выкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку
Текст.Добавить(НСтр("ru = 'Перейдите к '"), Тип("ТекстФорматированногоДокумента"));
ЭлементСсылки = Текст.Добавить(НСтр("ru = 'настройкам учетной записи электронной почты'"), Тип("ТекстФорматированногоДокумента"));
Текст.Добавить(НСтр("ru = ' для корректировки логина, пароля.'"), Тип("ТекстФорматированногоДокумента"));
// АПК:1299-вкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку
Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Ссылка");
Если ЗначениеЗаполнено(Ссылка) Тогда
ЭлементСсылки.НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка);
ШаблонСтроки = НСтр("ru = 'Перейдите к <a href = ""%1"">настройкам учетной записи электронной почты</a> для корректировки логина, пароля.'");
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка);
Строка = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки, НавигационнаяСсылка);
Иначе
Строка = НСтр("ru = 'Перейдите к настройкам учетной записи электронной почты для корректировки логина, пароля.'");
КонецЕсли;
Строки = Новый Массив;
Строки.Добавить(Текст.ПолучитьФорматированнуюСтроку());
Строки.Добавить(Строка);
Текст.УстановитьФорматированнуюСтроку(Новый ФорматированнаяСтрока(Строки));
КонецПроцедуры
#КонецОбласти
@@ -40,8 +40,9 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>15</width>
<width>12</width>
<autoMaxWidth>true</autoMaxWidth>
<maxWidth>15</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
@@ -118,7 +119,7 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>35</width>
<width>25</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -170,7 +171,7 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>35</width>
<width>25</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -35,7 +35,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -55,25 +57,23 @@
#Область СлужебныеПроцедурыИФункции
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// Вызывается при начальном заполнении справочника РолиИсполнителей.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника РолиИсполнителей.
// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
// * Ключ - Строка - имя табличной части;
// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
// необходимо скопировать перед заполнением. Например:
// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
// ЭлементТЧ = Элемент.Ключи.Добавить();
// ЭлементТЧ.ИмяКлюча = "Первичный";
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -83,17 +83,6 @@
КонецПроцедуры
// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя.
//
// Параметры:
// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
// Данные - СтрокаТаблицыЗначений - данные заполнения.
// ДополнительныеПараметры - Структура
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -40,7 +40,10 @@
СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + СтрокаОтбораВТекстеЗапроса;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
МультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -15,7 +15,10 @@
НастроитьОтображениеСпискаРолей();
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -18,23 +18,41 @@
ОбновитьДоступность();
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -84,7 +102,12 @@
&НаКлиенте
Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка)
МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент");
МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -58,17 +58,21 @@
КонецЕсли;
ТекстПоискаДляДополнительныхЯзыков = "";
Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
ТекстПоискаДляДополнительныхЯзыков = " ИЛИ РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска";
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
Если МодульМультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
ТекстПоискаДляДополнительныхЯзыков = "РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска";
КонецЕсли;
Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
Если МодульМультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
Если Не ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда
ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков + " " + "ИЛИ" + " ";
КонецЕсли;
ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков
+ " ИЛИ РолиИсполнителей.НаименованиеЯзык2 ПОДОБНО &СтрокаПоиска";
КонецЕсли;
Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 20
@@ -79,12 +83,17 @@
| ПО РолиИсполнителейНазначение.Ссылка = РолиИсполнителей.Ссылка
|ГДЕ
| РолиИсполнителейНазначение.ТипПользователей = &Тип
| И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска " + ТекстПоискаДляДополнительныхЯзыков + "
| И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска
| ИЛИ &ПоискДляДополнительныхЯзыков
| ИЛИ РолиИсполнителей.Код ПОДОБНО &СтрокаПоиска)
| И НЕ РолиИсполнителей.Ссылка ЕСТЬ NULL";
Запрос = Новый Запрос(ТекстЗапроса);
Если ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда
ТекстПоискаДляДополнительныхЯзыков = "ЛОЖЬ";
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоискДляДополнительныхЯзыков", ТекстПоискаДляДополнительныхЯзыков);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Тип", ОбъектАвторизации);
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%");
РезультатЗапроса = Запрос.Выполнить().Выбрать();
@@ -100,13 +109,33 @@
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
КонецЕсли;
#Иначе
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер");
МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
@@ -116,32 +145,35 @@
#Область СлужебныйПрограммныйИнтерфейс
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Истина;
КонецПроцедуры
// Вызывается при начальном заполнении справочника РолиИсполнителей.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника РолиИсполнителей.
// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
// * Ключ - Строка - имя табличной части;
// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
// необходимо скопировать перед заполнением. Например:
// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
// ЭлементТЧ = Элемент.Ключи.Добавить();
// ЭлементТЧ.ИмяКлюча = "Первичный";
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
Элемент = Элементы.Добавить();
Элемент.ИмяПредопределенныхДанных = "ОтветственныйЗаКонтрольИсполнения";
МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование",
"ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование",
"ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр-2
КонецЕсли;
Элемент.ИспользуетсяБезОбъектовАдресации = Истина;
Элемент.ИспользуетсяСОбъектамиАдресации = Истина;
Элемент.ВнешняяРоль = Ложь;
@@ -157,12 +189,10 @@
КонецПроцедуры
// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
// Данные - СтрокаТаблицыЗначений - данные заполнения.
// ДополнительныеПараметры - Структура
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
@@ -60,7 +60,10 @@
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -1412,7 +1412,7 @@
Процедура УстановитьЭлемент(Форма, НачалоЭлемента, НаСервере,
ОписаниеОшибки = Неопределено, ЭтоОшибка = Ложь, ОбъединятьРезультаты = "НеОбъединять")
ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, Надпись
ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, РасширениеДекорацииФормыДляНадписи
Если ОбъединятьРезультаты = "ОбъединятьПоИ"
Или ОбъединятьРезультаты = "ОбъединятьПоИли" Тогда
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -80,7 +80,6 @@
<c>
<c>
<f>9</f>
<parameter>ДатаПодписи</parameter>
</c>
</c>
</row>
@@ -114,33 +113,6 @@
</rowsItem>
<rowsItem>
<index>4</index>
<row>
<c>
<c>
<f>10</f>
</c>
</c>
<c>
<c>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content> Кем выдан:</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>12</f>
<parameter>ВыдалСертификат</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>5</index>
<row>
<c>
<c>
@@ -167,7 +139,7 @@
</row>
</rowsItem>
<rowsItem>
<index>6</index>
<index>5</index>
<row>
<c>
<c>
@@ -194,7 +166,7 @@
</row>
</rowsItem>
<rowsItem>
<index>7</index>
<index>6</index>
<row>
<c>
<c>
@@ -211,30 +183,20 @@
</rowsItem>
<templateMode>true</templateMode>
<defaultFormatIndex>18</defaultFormatIndex>
<height>12</height>
<vgRows>12</vgRows>
<height>11</height>
<vgRows>11</vgRows>
<merge>
<r>1</r>
<c>1</c>
<h>1</h>
</merge>
<merge>
<r>7</r>
<r>6</r>
<c>1</c>
<w>1</w>
</merge>
<namedItem xsi:type="NamedItemCells">
<name>ВладелецСертификата</name>
<area>
<type>Rectangle</type>
<beginRow>5</beginRow>
<endRow>5</endRow>
<beginColumn>2</beginColumn>
<endColumn>2</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ВыдалСертификат</name>
<area>
<type>Rectangle</type>
<beginRow>4</beginRow>
@@ -268,27 +230,27 @@
<area>
<type>Rows</type>
<beginRow>1</beginRow>
<endRow>7</endRow>
<beginColumn>0</beginColumn>
<endColumn>0</endColumn>
<endRow>6</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>Отступ</name>
<area>
<type>Rows</type>
<beginRow>10</beginRow>
<endRow>10</endRow>
<beginColumn>0</beginColumn>
<endColumn>0</endColumn>
<beginRow>9</beginRow>
<endRow>9</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОтступЛев</name>
<area>
<type>Rectangle</type>
<beginRow>10</beginRow>
<endRow>11</endRow>
<beginRow>9</beginRow>
<endRow>10</endRow>
<beginColumn>1</beginColumn>
<endColumn>1</endColumn>
</area>
@@ -297,8 +259,8 @@
<name>ОтступПрав</name>
<area>
<type>Rectangle</type>
<beginRow>10</beginRow>
<endRow>11</endRow>
<beginRow>9</beginRow>
<endRow>10</endRow>
<beginColumn>2</beginColumn>
<endColumn>2</endColumn>
</area>
@@ -308,7 +270,7 @@
<area>
<type>Rectangle</type>
<beginRow>1</beginRow>
<endRow>7</endRow>
<endRow>6</endRow>
<beginColumn>0</beginColumn>
<endColumn>0</endColumn>
</area>
@@ -317,8 +279,8 @@
<name>СрокДействия</name>
<area>
<type>Rectangle</type>
<beginRow>6</beginRow>
<endRow>6</endRow>
<beginRow>5</beginRow>
<endRow>5</endRow>
<beginColumn>2</beginColumn>
<endColumn>2</endColumn>
</area>
@@ -327,8 +289,8 @@
<name>ТекстОтметки</name>
<area>
<type>Rectangle</type>
<beginRow>7</beginRow>
<endRow>7</endRow>
<beginRow>6</beginRow>
<endRow>6</endRow>
<beginColumn>1</beginColumn>
<endColumn>2</endColumn>
</area>
@@ -338,7 +300,7 @@
<area>
<type>Rectangle</type>
<beginRow>1</beginRow>
<endRow>7</endRow>
<endRow>6</endRow>
<beginColumn>1</beginColumn>
<endColumn>2</endColumn>
</area>
@@ -348,7 +310,7 @@
<area>
<type>Rectangle</type>
<beginRow>1</beginRow>
<endRow>6</endRow>
<endRow>5</endRow>
<beginColumn>1</beginColumn>
<endColumn>1</endColumn>
</area>
@@ -358,7 +320,7 @@
<area>
<type>Rectangle</type>
<beginRow>1</beginRow>
<endRow>6</endRow>
<endRow>5</endRow>
<beginColumn>2</beginColumn>
<endColumn>2</endColumn>
</area>
@@ -399,7 +361,7 @@
<fillType>Text</fillType>
<protection>true</protection>
<picIndex>1</picIndex>
<pictureSizeMode>RealSize</pictureSizeMode>
<pictureSizeMode>Proportionally</pictureSizeMode>
<picHorizontalAlignment>Center</picHorizontalAlignment>
<picVerticalAlignment>Center</picVerticalAlignment>
</format>
@@ -428,7 +390,6 @@
<rightBorder>1</rightBorder>
<width>219</width>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Parameter</fillType>
<protection>true</protection>
</format>
<format>
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -45,6 +47,7 @@
КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом
#КонецОбласти
#КонецОбласти
@@ -35,6 +35,10 @@
#Область ОбработчикиКомандФормы
// СтандартныеПодсистемы.ПодключаемыеКоманды
// Параметры:
// Команда - КомандаФормы
//
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
@@ -53,23 +57,31 @@
КонецЕсли;
Если Перемещать Тогда
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
Иначе
ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'"));
КонецЕсли;
КонецЕсли;
Иначе
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
@@ -10,18 +10,23 @@
#Область СлужебныйПрограммныйИнтерфейс
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// Вызывается при начальном заполнении справочника.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника РолиИсполнителей.
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -125,25 +125,23 @@
#Область СлужебныеПроцедурыИФункции
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
//
// Параметры:
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
//
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
КонецПроцедуры
// Вызывается при начальном заполнении справочника СтраныМира.
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
//
// Параметры:
// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций.
// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов
// справочника СтраныМира.
// ТабличныеЧасти - Структура - описание табличных частей объекта, где:
// * Ключ - Строка - имя табличной части;
// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой
// необходимо скопировать перед заполнением. Например:
// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать();
// ЭлементТЧ = Элемент.Ключи.Добавить();
// ЭлементТЧ.ИмяКлюча = "Первичный";
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
//
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
@@ -165,8 +163,15 @@
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
// Если наименования были обновлены, то их следует обновить
МультиязычностьСервер.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, Метаданные.Справочники.СтраныМира);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
// Обновление мультиязычных строк, если они были изменены.
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("РежимОбновления", "МультиязычныеСтроки");
ОбновлениеИнформационнойБазы.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры,
Метаданные.Справочники.СтраныМира, ДополнительныеПараметры);
КонецЕсли;
СписокСтран = УправлениеКонтактнойИнформацией.СтраныУчастникиЕАЭС();
@@ -225,7 +230,11 @@
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
СтранаМираСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира");
НастройкиОбновления = МультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира);
НастройкиОбновления = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
НастройкиОбновления = МодульМультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира);
КонецЕсли;
ПроблемныхОбъектов = 0;
ОбъектовОбработано = 0;
@@ -244,8 +253,11 @@
КонецЕсли;
// Обновление наименований
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
Если НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда
МультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления);
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления);
КонецЕсли;
КонецЕсли;
ОбъектовОбработано = ОбъектовОбработано + 1;
@@ -11,21 +11,34 @@
#Область ОбработчикиСобытий
Процедура ПередЗаписью(Отказ)
Если ОбменДанными.Загрузка Или ДополнительныеСвойства.Свойство("НеПроверятьУникальность") Тогда
Возврат;
КонецЕсли;
Если Предопределенный И Не ЭтоНовый() Тогда
ПроверитьИзменениеПредопределенногоЭлемента();
КонецЕсли;
Если Не ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Существующий = СуществующийЭлемент();
Если Существующий<>Неопределено Тогда
СписокОшибок = ПроверитьУникальностьЭлементов();
Если СписокОшибок.Количество() > 0 Тогда
Отказ = Истина;
ОбщегоНазначения.СообщитьПользователю(Существующий.ОписаниеОшибки,, "Объект.Наименование");
Для каждого ОписаниеОшибки Из СписокОшибок Цикл
ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки.ТекстСообщения,, ОписаниеОшибки.ИмяПоля);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
@@ -41,35 +54,26 @@
#Область СлужебныеПроцедурыИФункции
// Контролирует уникальность элемента в базе.
// В случае выявления дублей кодов или наименование возвращает их список.
//
// Возвращаемое значение:
// Неопределено - нет ошибок.
// Структура - описание элемента, существующего в базе. Свойства:
// * ОписаниеОшибки - Строка - текст ошибки.
// * Код - Строка - реквизит уже существующего элемента.
// * Наименование - Строка - реквизит уже существующего элемента.
// * НаименованиеПолное - Строка - реквизит уже существующего элемента.
// * КодАльфа2 - Строка - реквизит уже существующего элемента.
// * КодАльфа3 - Строка - реквизит уже существующего элемента.
// * Ссылка - СправочникаСсылка.СтраныМира - реквизит уже существующего элемента.
// Массив из см. НовыйСообщениеОбОшибке - если в программе были найдены дубли, то содержит описание элементов
// существующих в базе.
//
Функция СуществующийЭлемент()
Функция ПроверитьУникальностьЭлементов()
Результат = Неопределено;
Результат = Новый Массив;
// Нецифровые коды пропускаем
ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный));
Если Код="0" Или Код="00" Или Код="000" Тогда
Если Код= "0" Или Код = "00" Или Код = "000" Тогда
КодПоиска = "000";
Иначе
КодПоиска = Формат(ТипЧисло.ПривестиЗначение(Код), "ЧЦ=3; ЧН=; ЧВН=");
Если КодПоиска="000" Тогда
Возврат Результат; // Не число
КонецЕсли;
КонецЕсли;
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
|ВЫБРАТЬ ПЕРВЫЕ 10
| Код КАК Код,
| Наименование КАК Наименование,
| НаименованиеПолное КАК НаименованиеПолное,
@@ -80,27 +84,110 @@
|ИЗ
| Справочник.СтраныМира
|ГДЕ
| Код=&Код
| (Код = &Код
| ИЛИ Наименование = &Наименование
| ИЛИ КодАльфа2 = &КодАльфа2
| ИЛИ КодАльфа3 = &КодАльфа3
| ИЛИ НаименованиеПолное = &НаименованиеПолное)
| И Ссылка <> &Ссылка
|");
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Код", КодПоиска);
Запрос.УстановитьПараметр("Наименование", Наименование);
Запрос.УстановитьПараметр("НаименованиеПолное", НаименованиеПолное);
Запрос.УстановитьПараметр("КодАльфа2", КодАльфа2);
Запрос.УстановитьПараметр("КодАльфа3", КодАльфа3);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Результат = Новый Структура("ОписаниеОшибки",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"),
Код, Выборка.Наименование));
Для Каждого Поле Из РезультатЗапроса.Колонки Цикл
Результат.Вставить(Поле.Имя, Выборка[Поле.Имя]);
КонецЦикла;
Если РезультатЗапроса.Пустой() Тогда
Возврат Результат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = НовыйСообщениеОбОшибке();
Если СтрСравнить(Выборка.Код, Код) = 0 Тогда
Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"),
Код, Выборка.Наименование);
Сообщение.ИмяПоля = "Объект.Код";
ИначеЕсли СтрСравнить(Выборка.Наименование, Наименование) = 0 Тогда
Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Страна с наименованием %1 уже существует. Измените наименование или используйте уже существующие данные.'"),
Выборка.Наименование);
Сообщение.ИмяПоля = "Объект.Наименование";
ИначеЕсли СтрСравнить(Выборка.НаименованиеПолное, НаименованиеПолное) = 0 Тогда
Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Уже существует страна %2 с полным наименованием %1. Измените полное наименование или используйте уже существующие данные.'"),
НаименованиеПолное, Выборка.Наименование);
Сообщение.ИмяПоля = "Объект.НаименованиеПолное";
ИначеЕсли СтрСравнить(Выборка.КодАльфа2, КодАльфа2) = 0 Тогда
Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'С кодом Альфа-2 %1 уже существует страна %2. Измените код Альфа-2 или используйте уже существующие данные.'"),
КодАльфа2, Выборка.Наименование);
Сообщение.ИмяПоля = "Объект.КодАльфа2";
ИначеЕсли СтрСравнить(Выборка.КодАльфа3, КодАльфа3) = 0 Тогда
Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'С кодом Альфа-3 %1 уже существует страна %2. Измените код Альфа-3 или используйте уже существующие данные.'"),
КодАльфа3, Выборка.Наименование);
Сообщение.ИмяПоля = "Объект.КодАльфа3";
КонецЕсли;
Результат.Добавить(Сообщение);
КонецЦикла;
Возврат Результат;
КонецФункции
// Возвращаемое значение:
// Структура:
// ИмяПоля - Строка
// ТекстСообщения - Строка
//
Функция НовыйСообщениеОбОшибке()
Результат = Новый Структура;
Результат.Вставить("ИмяПоля", "");
Результат.Вставить("ТекстСообщения", "");
Возврат Результат;
КонецФункции
Процедура ПроверитьИзменениеПредопределенногоЭлемента()
ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код, Наименование");
Если СтрСравнить(ПредыдущиеЗначения.Наименование, Наименование) <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не допускается изменение наименования для страны %1'"), ПредыдущиеЗначения.Наименование);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
Если СтрСравнить(ПредыдущиеЗначения.Код, Код) <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не допускается изменение кода для страны %1'"), ПредыдущиеЗначения.Наименование);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Иначе
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
@@ -18,7 +18,7 @@
// с помощью обработки группового изменения реквизитов.
//
// Возвращаемое значение:
// Массив Из Строка
// Массив из Строка
//
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
@@ -30,7 +30,9 @@
// СтандартныеПодсистемы.УправлениеДоступом
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
// Параметры:
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
@@ -88,10 +88,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Лишние файлы</value>
</title>
<extendedTooltip>
<name>ГруппаЛишниеФайлыРасширеннаяПодсказка</name>
<id>17</id>
@@ -195,10 +191,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Комментарий</value>
</title>
<extendedTooltip>
<name>ГруппаКомментарийРасширеннаяПодсказка</name>
<id>6</id>
@@ -318,10 +310,6 @@
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Настройки удаления</value>
</title>
<extendedTooltip>
<name>НастройкиУдаленияРасширеннаяПодсказка</name>
<id>28</id>
Loaded 100 of 831 files, more files were not shown because too many files have changed in this diff. Show more