3_1_2_312

This commit is contained in:
Компания 1С committed 2020-03-13 13:37:00 +03:00
1 parent 95e469c22f
commit fe0b8919bd
71 files changed
+7134 -1253

No files matched your search

@@ -1,23 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>Отступ</name>
<id>29</id>
<items xsi:type="form:Decoration">
<name>ОписаниеОшибки</name>
<id>26</id>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:Table">
<name>Ошибки</name>
<id>35</id>
<title>
<key>ru</key>
<value>Описание ошибки</value>
<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>
<items xsi:type="form:FormField">
<name>ОшибкиПричина</name>
<id>48</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Ошибки.Причина</segments>
</dataPath>
<extendedTooltip>
<name>ОписаниеОшибкиРасширеннаяПодсказка</name>
<id>28</id>
<name>ОшибкиПричинаРасширеннаяПодсказка</name>
<id>50</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -26,19 +38,42 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОписаниеОшибкиКонтекстноеМеню</name>
<id>27</id>
<items xsi:type="form:Button">
<name>ОписаниеОшибкиКонтекстноеМенюСкопироватьВБуферОбмена</name>
<id>33</id>
<name>ОшибкиПричинаКонтекстноеМеню</name>
<id>49</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<autoCellHeight>true</autoCellHeight>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</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>51</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Ошибки.Подробнее</segments>
</dataPath>
<extendedTooltip>
<name>ОписаниеОшибкиКонтекстноеМенюСкопироватьВБуферОбменаРасширеннаяПодсказка</name>
<id>34</id>
<name>ОшибкиПодробнееРасширеннаяПодсказка</name>
<id>53</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -46,23 +81,239 @@
<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>
<contextMenu>
<name>ОшибкиПодробнееКонтекстноеМеню</name>
<id>52</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<cellHyperlink>true</cellHyperlink>
<autoCellHeight>true</autoCellHeight>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<cellHyperlinkRepresentation>Show</cellHyperlinkRepresentation>
<cellHyperlinkDisplayVariant>Always</cellHyperlinkDisplayVariant>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>10</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textColor xsi:type="core:ColorRef">
<color>Style.ГиперссылкаЦвет</color>
</textColor>
<textSize>Normal</textSize>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ОшибкиКоманднаяПанель</name>
<id>37</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>Selection</event>
<name>ОшибкиВыбор</name>
</handlers>
<searchStringAddition>
<name>ОшибкиСтрокаПоиска</name>
<id>39</id>
<extendedTooltip>
<name>ОшибкиСтрокаПоискаРасширеннаяПодсказка</name>
<id>41</id>
<type>Label</type>
<maxWidth>75</maxWidth>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОшибкиСтрокаПоискаКонтекстноеМеню</name>
<id>40</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Ошибки</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>ОшибкиСостояниеПросмотра</name>
<id>42</id>
<extendedTooltip>
<name>ОшибкиСостояниеПросмотраРасширеннаяПодсказка</name>
<id>44</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОшибкиСостояниеПросмотраКонтекстноеМеню</name>
<id>43</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Ошибки</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>ОшибкиУправлениеПоиском</name>
<id>45</id>
<extendedTooltip>
<name>ОшибкиУправлениеПоискомРасширеннаяПодсказка</name>
<id>47</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОшибкиУправлениеПоискомКонтекстноеМеню</name>
<id>46</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Ошибки</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ОшибкиРасширеннаяПодсказка</name>
<id>38</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОшибкиКонтекстноеМеню</name>
<id>36</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<heightInTableRows>3</heightInTableRows>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<verticalLinesBWA>false</verticalLinesBWA>
<autoInsertNewRow>true</autoInsertNewRow>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<fileDragMode>AsFileRef</fileDragMode>
<autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПодвал</name>
<id>62</id>
<items xsi:type="form:FormGroup">
<name>Инструкция</name>
<id>54</id>
<items xsi:type="form:Decoration">
<name>ТипичныеПроблемы</name>
<id>56</id>
<title>
<key>ru</key>
<value>При возникновении затруднений ознакомьтесь со списком &lt;link ТипичныеПроблемы>типичных проблем при работе с программой электронной подписи и их решений&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТипичныеПроблемыРасширеннаяПодсказка</name>
<id>58</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТипичныеПроблемыКонтекстноеМеню</name>
<id>57</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ТипичныеПроблемыОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ИнформацияДляПоддержки</name>
<id>59</id>
<title>
<key>ru</key>
<value>В иных случаях обратитесь в службу поддержки фирмы &quot;1С&quot;, предоставив &lt;link Ссылка>техническую информацию о возникшей проблеме&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИнформацияДляПоддержкиРасширеннаяПодсказка</name>
<id>61</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>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ИнформацияДляПоддержкиОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
@@ -71,11 +322,11 @@
</userVisible>
<title>
<key>ru</key>
<value>Отступ</value>
<value>Требуется помощь?</value>
</title>
<extendedTooltip>
<name>ОтступРасширеннаяПодсказка</name>
<id>30</id>
<name>ИнструкцияРасширеннаяПодсказка</name>
<id>55</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -86,58 +337,18 @@
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<behavior>PopUp</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:Decoration">
<name>Инструкция</name>
<id>17</id>
<title>
<key>ru</key>
<value>Инструкции по работе с программами электронной подписи и шифрования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИнструкцияРасширеннаяПодсказка</name>
<id>19</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИнструкцияКонтекстноеМеню</name>
<id>18</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ИнструкцияНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Right</horizontalAlign>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>64</id>
<items xsi:type="form:Button">
<name>ФормаУстановитьРасширение</name>
<id>15</id>
@@ -220,12 +431,72 @@
<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>65</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>CommandBar</type>
<extInfo xsi:type="form:CommandBarExtInfo">
<horizontalAlign>Right</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Подвал</value>
</title>
<extendedTooltip>
<name>ГруппаПодвалРасширеннаяПодсказка</name>
<id>63</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Right</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>90</width>
<height>20</height>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
@@ -235,6 +506,91 @@
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>КоманднаяПанель</value>
</value>
</mobileDeviceCommandBarContent>
<attributes>
<name>Ошибки</name>
<title>
<key>ru</key>
<value>Ошибки</value>
</title>
<id>2</id>
<valueType>
<types>ValueTable</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<columns>
<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>
</columns>
<columns>
<name>Подробнее</name>
<title>
<key>ru</key>
<value>Подробнее</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ОшибкаНаСервере</name>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<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>
@@ -275,24 +631,6 @@
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>СкопироватьВБуферОбмена</name>
<title>
<key>ru</key>
<value>Скопировать в буфер обмена</value>
</title>
<id>3</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>СкопироватьВБуферОбмена</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ОшибкаНаСервере</name>
<valueType/>
@@ -26,22 +26,23 @@
ОшибкаНаКлиенте = Параметры.ОшибкаНаКлиенте;
ОшибкаНаСервере = Параметры.ОшибкаНаСервере;
ДобавитьОшибки(ОшибкаНаКлиенте);
ДобавитьОшибки(ОшибкаНаСервере, Истина);
Элементы.Ошибки.ВысотаВСтрокахТаблицы = Мин(Ошибки.Количество(), 3);
Если ЗначениеЗаполнено(ОшибкаНаКлиенте)
И ЗначениеЗаполнено(ОшибкаНаСервере) Тогда
ОписаниеОшибки =
НСтр("ru = 'НА СЕРВЕРЕ:'")
ОписаниеОшибки = НСтр("ru = 'НА СЕРВЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОшибкаНаСервере.ОписаниеОшибки
+ Символы.ПС + Символы.ПС
+ НСтр("ru = 'НА КОМПЬЮТЕРЕ:'")
+ Символы.ПС + Символы.ПС + ОшибкаНаКлиенте.ОписаниеОшибки;
Иначе
ОписаниеОшибки = ОшибкаНаКлиенте.ОписаниеОшибки;
ОписаниеОшибки = СокрЛП(ОшибкаНаКлиенте.ОписаниеОшибки);
КонецЕсли;
ОписаниеОшибки = СокрЛП(ОписаниеОшибки);
Элементы.ОписаниеОшибки.Заголовок = ОписаниеОшибки;
ПоказатьИнструкцию = Параметры.ПоказатьИнструкцию;
ПоказатьПереходКНастройкеПрограмм = Параметры.ПоказатьПереходКНастройкеПрограмм;
ПоказатьУстановкуРасширения = Параметры.ПоказатьУстановкуРасширения;
@@ -80,9 +81,41 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ИнструкцияНажатие(Элемент)
Процедура ТипичныеПроблемыОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьИнструкциюПоРаботеСПрограммами();
СтандартнаяОбработка = Ложь;
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами();
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияДляПоддержкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЭлектроннаяПодписьСлужебныйКлиент.СформироватьТехническуюИнформацию(ОписаниеОшибки);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОшибки
&НаКлиенте
Процедура ОшибкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Поле = Элементы.ОшибкиПодробнее Тогда
ТекущиеДанные = Элементы.Ошибки.ТекущиеДанные;
ПараметрыОшибки = Новый Структура;
ПараметрыОшибки.Вставить("ЗаголовокПредупреждения", Заголовок);
ПараметрыОшибки.Вставить(?(ТекущиеДанные.ОшибкаНаСервере,
"ТекстОшибкиСервер", "ТекстОшибкиКлиент"), ТекущиеДанные.Причина);
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки", ПараметрыОшибки, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -106,26 +139,10 @@
КонецПроцедуры
&НаКлиенте
Процедура СкопироватьВБуферОбмена(Команда)
Строка = Элементы.ОписаниеОшибки.Заголовок;
ПоказатьВводСтроки(Новый ОписаниеОповещения("СкопироватьВБуферОбменаЗавершение", ЭтотОбъект),
Строка, НСтр("ru = 'Текст ошибки для копирования'"),, Истина);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура СкопироватьВБуферОбменаЗавершение(Результат, Контекст) Экспорт
Результат = "";
КонецПроцедуры
&НаСервере
Процедура СброситьРазмерыИПоложениеОкна()
@@ -144,12 +161,15 @@
ОпределитьВозможностиПоСвойствам(Инструкция, НастройкаПрограмм, Расширение, Ошибка, ЭтоПолноправныйПользователь);
Если Не Ошибка.Свойство("Ошибки") Или ТипЗнч(Ошибка.Ошибки) <> Тип("Массив") Тогда
Если Не Ошибка.Свойство("Ошибки")
Или ТипЗнч(Ошибка.Ошибки) <> Тип("Массив") Тогда
Возврат;
КонецЕсли;
Для каждого ТекущаяОшибка Из Ошибка.Ошибки Цикл
ОпределитьВозможностиПоСвойствам(Инструкция, НастройкаПрограмм, Расширение, ТекущаяОшибка, ЭтоПолноправныйПользователь);
ОпределитьВозможностиПоСвойствам(Инструкция, НастройкаПрограмм,
Расширение, ТекущаяОшибка, ЭтоПолноправныйПользователь);
КонецЦикла;
КонецПроцедуры
@@ -157,20 +177,58 @@
&НаСервере
Процедура ОпределитьВозможностиПоСвойствам(Инструкция, НастройкаПрограмм, Расширение, Ошибка, ЭтоПолноправныйПользователь)
Если Ошибка.Свойство("НастройкаПрограмм") И Ошибка.НастройкаПрограмм = Истина Тогда
Если Ошибка.Свойство("НастройкаПрограмм")
И Ошибка.НастройкаПрограмм = Истина Тогда
НастройкаПрограмм = ЭтоПолноправныйПользователь
Или Не Ошибка.Свойство("КАдминистратору")
Или Ошибка.КАдминистратору <> Истина;
КонецЕсли;
Если Ошибка.Свойство("Инструкция") И Ошибка.Инструкция = Истина Тогда
Если Ошибка.Свойство("Инструкция")
И Ошибка.Инструкция = Истина Тогда
Инструкция = Истина;
КонецЕсли;
Если Ошибка.Свойство("Расширение") И Ошибка.Расширение = Истина Тогда
Если Ошибка.Свойство("Расширение")
И Ошибка.Расширение = Истина Тогда
Расширение = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДобавитьОшибки(ОписаниеОшибки, ОшибкиНаСервере = Ложь)
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Если ОписаниеОшибки.Свойство("Ошибки")
И ТипЗнч(ОписаниеОшибки.Ошибки) = Тип("Массив")
И ОписаниеОшибки.Ошибки.Количество() > 0 Тогда
Для Каждого Ошибка Из ОписаниеОшибки.Ошибки Цикл
СтрокаОшибки = Ошибки.Добавить();
СтрокаОшибки.Причина = Ошибка.Описание;
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
СтрокаОшибки.ОшибкаНаСервере = ОшибкиНаСервере;
КонецЦикла;
Иначе
СтрокаОшибки = Ошибки.Добавить();
СтрокаОшибки.Причина = ОписаниеОшибки.ОписаниеОшибки;
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
СтрокаОшибки.ОшибкаНаСервере = ОшибкиНаСервере;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,20 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>
<p>Проверка сертификата электронной подписи. Проверка занимает некоторое время и проводится по нескольким параметрам:</p>
<ul><li><b>Соответствие законодательству Российской Федерации</b> - показывает соответствие федеральному закону Российской Федерации от 6 апреля 2011 г. N 63-ФЗ "Об электронной подписи". Рекомендуется использовать квалифицированные сертификаты ключа подписи (КСКП) по 63-ФЗ.</li>
<li><b>Наличие сертификата в личном списке</b> - показывает установлен ли сертификат в личный список (личное хранилище)на компьютере. Для подписания и расшифровки требуется, чтобы сертификат был установлен в личный список на компьютере и был связан с закрытым ключом.</li>
<li><b>Корректность данных сертификата</b> - показывает результат проверки данных сертификата с помощью программы электронной подписи и шифрования.
<p>Данные сертификата, загруженные из файла сертификата или другим путем, могут быть некорректны по разным причинам, но самые частые следующие:</p>
<p>
</p>
<ul><li>закончился срок действия сертификата;</li>
<li>сертификат в списке отозванных.</li></ul></li><br><li><b>Наличие программы для подписания и расшифровки</b> - показывает имеется ли на компьютере программа, указанная в сертификате для закрытого ключа, которая позволяет подписывать и расшифровывать данные.</li>
<li><b>Подписание данных</b> - показывает возможность подписания данных закрытым ключом сертификата с помощью программы электронной подписи и шифрования. Требуется пароль.</li>
<li><b>Проверка созданной подписи</b> - показывает возможность проверки имеющейся подписи открытым ключом сертификата с помощью программы электронной подписи и шифрования.</li>
<li><b>Шифрование данных</b> - показывает возможность шифрования данных открытым ключом сертификата с помощью программы электронной подписи и шифрования.</li>
<li><b>Расшифровка данных</b> - показывает возможность расшифровки данных закрытым ключом сертификата с помощью программы электронной подписи и шифрования. Требуется пароль.</li></ul><h3>Запомнить пароль на время сеанса</h3>
<p>При включении флажка пароль сертификата запоминается до закрытия программы. При снятии флажка пароль стирается из памяти, если запоминался ранее.</p>
<h3>Запрос усиленного пароля</h3>
<p>Если отображается надпись „Нажмите Проверить, чтобы перейти к вводу пароля.“ - значит пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие, так как для выбранного сертификата указана усиленная защита закрытого ключа.</p>
<h3>Проверка сертификата</h3>
<p>Нажмите <strong>Проверить</strong>, для того чтобы проверить действительность сертификата.</p>
</body></html>
@@ -449,11 +449,17 @@
СертификатКриптографии = Новый СертификатКриптографии(ПолучитьИзВременногоХранилища(СертификатАдрес));
ТестовыеДанные = ТестовыеДвоичныеДанные();
ОписанияПрограмм = ОписаниеПрограмм(ЭлектроннаяПодпись.ОбщиеНастройки());
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Неопределено, Новый Массив, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм,
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДвоичныеДанныеСертификата));
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("",
Ложь, "", ОписаниеПрограммы.Ссылка);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = ОписаниеПрограммы.Ссылка;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
Если МенеджерКриптографии = Неопределено Тогда
Продолжить;
@@ -474,17 +480,6 @@
КонецПроцедуры
// Возвращаемое значение:
// Массив из Структура - со свойствами:
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - .
//
&НаСервереБезКонтекста
Функция ОписаниеПрограмм(Настройки)
Возврат Настройки.ОписанияПрограмм;
КонецФункции
&НаСервереБезКонтекста
Функция ТестовыеДвоичныеДанные()
@@ -504,7 +499,13 @@
Возврат;
КонецЕсли;
ОписанияПрограмм = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм;
ДанныеСертификата = ПолучитьИзВременногоХранилища(СертификатАдрес);
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата));
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Неопределено, Новый Массив, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм,
Контекст.АлгоритмПодписи);
Если ОписанияПрограмм = Неопределено Или ОписанияПрограмм.Количество() = 0 Тогда
ЗаполнитьПрограммуШифрованияПослеЦикла(Контекст);
@@ -516,7 +517,7 @@
СертификатКриптографии = Новый СертификатКриптографии;
СертификатКриптографии.НачатьИнициализацию(Новый ОписаниеОповещения(
"ЗаполнитьПрограммуШифрованияПослеИнициализацииСертификата", ЭтотОбъект, Контекст),
ПолучитьИзВременногоХранилища(СертификатАдрес));
ДанныеСертификата);
КонецПроцедуры
@@ -548,9 +549,18 @@
Контекст.Индекс = Контекст.Индекс + 1;
Контекст.Вставить("ОписаниеПрограммы", Контекст.ОписанияПрограмм[Контекст.Индекс]);
Если Не Контекст.Свойство("АлгоритмПодписи") Тогда
Контекст.Вставить("АлгоритмПодписи", "");
КонецЕсли;
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Контекст.ОписаниеПрограммы.Ссылка;
ПараметрыСоздания.ПоказатьОшибку = Ложь;
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ЗаполнитьПрограммуШифрованияПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"Шифрование", Ложь, Контекст.ОписаниеПрограммы.Ссылка);
"Шифрование", ПараметрыСоздания);
КонецПроцедуры
@@ -708,6 +708,11 @@
<key>ru</key>
<value>Проверка сертификата</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
@@ -210,6 +210,10 @@
<metadata>InformationRegister.ПраваРолей</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>Constant.КлассификаторОшибокКриптографии</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>ScheduledJob.ЗаполнениеДанныхДляОграниченияДоступа</metadata>
<use>DontUse</use>
@@ -346,6 +350,10 @@
<metadata>ScheduledJob.ПерестроениеАгрегатов</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>Constant.ДатаПоследнегоОбновленияКлассификатораОшибок</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>InformationRegister.НеразделенныеПользователи</metadata>
<use>DontUse</use>
@@ -44,13 +44,15 @@
Элементы.ПодписиКомментарий.Видимость = Ложь;
КонецЕсли;
МенеджерКриптографииНаСервереОписаниеОшибки = Новый Структура;
Если ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
Или ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("",
Ложь, МенеджерКриптографииНаСервереОписаниеОшибки);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
МенеджерКриптографииНаСервереОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
КонецЕсли;
КонецПроцедуры
@@ -254,9 +256,12 @@
Возврат;
КонецЕсли;
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ВыбратьФайлПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"", Неопределено);
"", ПараметрыСоздания);
КонецПроцедуры
@@ -397,7 +402,13 @@
Возврат Ложь;
КонецЕсли;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", Ложь, ОшибкаНаСервере);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ОписаниеОшибки = ОшибкаНаСервере;
ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(ДанныеПодписи);
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
@@ -873,6 +873,43 @@
<items xsi:type="form:FormGroup">
<name>СтраницаПрограммы</name>
<id>103</id>
<items xsi:type="form:Decoration">
<name>НадписьНастройкаВЦентральномУзле</name>
<id>355</id>
<title>
<key>ru</key>
<value>Настройка программ электронной подписи и шифрования выполнена в главном узле</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьНастройкаВЦентральномУзлеРасширеннаяПодсказка</name>
<id>357</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьНастройкаВЦентральномУзлеКонтекстноеМеню</name>
<id>356</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<backColor xsi:type="core:ColorRef">
<color>Style.ToolTipBackColor</color>
</backColor>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаВебКлиентРасширениеНеУстановлено</name>
<id>171</id>
@@ -1242,11 +1279,61 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ПрограммыПодробнее</name>
<id>358</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Программы.Подробнее</segments>
</dataPath>
<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>
<contextMenu>
<name>ПрограммыПодробнееКонтекстноеМеню</name>
<id>359</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<cellHyperlink>true</cellHyperlink>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<cellHyperlinkRepresentation>Show</cellHyperlinkRepresentation>
<cellHyperlinkDisplayVariant>Always</cellHyperlinkDisplayVariant>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>10</width>
<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>
<autoCommandBar>
<name>ПрограммыКоманднаяПанель</name>
<id>205</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>Selection</event>
<name>ПрограммыВыбор</name>
</handlers>
<handlers>
<event>BeforeAddRow</event>
<name>ПрограммыПередНачаломДобавления</name>
@@ -1607,11 +1694,16 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>ChoiceProcessing</event>
<name>ПрограммыLinuxПутьКПрограммеОбработкаВыбора</name>
</handlers>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<extendedEdit>true</extendedEdit>
<dropListButton>true</dropListButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
@@ -2655,6 +2747,24 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>Подробнее</name>
<title>
<key>ru</key>
<value>Подробнее</value>
</title>
<id>14</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>ПроверятьПодписиНаСервере</name>
@@ -2782,6 +2892,17 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПутиКПрограммамПоУмолчанию</name>
<id>15</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Обновить</name>
<title>
@@ -97,14 +97,46 @@
Элементы.ПрограммыКонтекстноеМенюПрограммыУстановитьПометкуУдаления.Доступность = Ложь;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ПрограммыИзменить", "ТолькоВоВсехДействиях", Ложь);
Иначе
Элементы.НадписьНастройкаВЦентральномУзле.Видимость = Ложь;
КонецЕсли;
Если ОбщегоНазначения.ЭтоWindowsКлиент() Тогда
ПутиКПрограммамПоУмолчанию = Новый Структура;
РаботаСПрограммамиНаСервере = ПроверятьПодписиНаСервере Или ПодписыватьНаСервере;
Если ОбщегоНазначения.ЭтоWindowsКлиент()
И (Не РаботаСПрограммамиНаСервере
Или ОбщегоНазначения.ЭтоWindowsСервер()) Тогда
Элементы.ГруппаПрограммыLinuxПутьКПрограмме.Видимость = Ложь;
Иначе
Если ОбщегоНазначения.ЭтоMacOSКлиент() Тогда
ПутьПоУмолчанию = "/opt/cprocsp/lib/libcapi10.dylib:/opt/cprocsp/lib/libcapi20.dylib:"
+ "/opt/cprocsp/lib/libcapi10.4.dylib:/opt/cprocsp/lib/libcapi20.4.dylib";
ПутиКПрограммамПоУмолчанию.Вставить("ПутьMac", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьMac", НСтр("ru = 'Путь для Mac OS'") + ": " + ПутьПоУмолчанию);
КонецЕсли;
Элементы.ГруппаВебКлиентРасширениеНеУстановлено.Видимость =
ОбщегоНазначения.ЭтоВебКлиент()
Если ОбщегоНазначения.ЭтоLinuxКлиент()
Или (РаботаСПрограммамиНаСервере
И ОбщегоНазначения.ЭтоLinuxСервер()) Тогда
ПутьПоУмолчанию = "/opt/cprocsp/lib/amd64/libcapilite.so:"
+ "/opt/cprocsp/lib/amd64/libcapi10.so:/opt/cprocsp/lib/amd64/libcapi20.so";
ПутиКПрограммамПоУмолчанию.Вставить("ПутьLinux", ПутьПоУмолчанию);
Элементы.ПрограммыLinuxПутьКПрограмме.СписокВыбора.Добавить(
"ПутьLinux", НСтр("ru = 'Путь для Linux'") + ": " + ПутьПоУмолчанию);
КонецЕсли;
КонецЕсли;
Элементы.ГруппаВебКлиентРасширениеНеУстановлено.Видимость = ОбщегоНазначения.ЭтоВебКлиент()
И Параметры.Свойство("РасширениеНеПодключено");
ЗаполнитьПрограммыИНастройки();
@@ -244,6 +276,35 @@
СохранитьНастройки();
КонецПроцедуры
&НаКлиенте
Процедура ПрограммыLinuxПутьКПрограммеПриИзменении(Элемент)
ТекущиеДанные = Элементы.Программы.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
СохранитьПутьКПрограмме();
КонецПроцедуры
&НаКлиенте
Процедура ПрограммыLinuxПутьКПрограммеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Программы.ТекущиеДанные;
Если Не ЗначениеЗаполнено(ВыбранноеЗначение)
Или ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ТекущиеДанные.LinuxПутьКПрограмме = ПутиКПрограммамПоУмолчанию[ВыбранноеЗначение];
СохранитьПутьКПрограмме();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСертификаты
@@ -314,29 +375,28 @@
КонецПроцедуры
&НаКлиенте
Процедура ПрограммыLinuxПутьКПрограммеПриИзменении(Элемент)
Процедура ИнструкцияНажатие(Элемент)
ТекущиеДанные = Элементы.Программы.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если БезПраваСохранениеДанныхПользователя Тогда
ТекущиеДанные.LinuxПутьКПрограмме = LinuxПутьКТекущейПрограмме;
ПоказатьПредупреждение(,
НСтр("ru = 'Невозможно сохранить путь к программе. Отсутствует право сохранения данных.
|Обратитесь к администратору.'"));
Иначе
СохранитьПутьLinuxНаСервере(ТекущиеДанные.Ссылка, ТекущиеДанные.LinuxПутьКПрограмме);
ОпределитьУстановленныеПрограммы();
КонецЕсли;
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьИнструкциюПоРаботеСПрограммами();
КонецПроцедуры
&НаКлиенте
Процедура ИнструкцияНажатие(Элемент)
Процедура ПрограммыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьИнструкциюПоРаботеСПрограммами();
ТекущиеДанные = Элементы.Программы.ТекущиеДанные;
Если Поле = Элементы.ПрограммыПодробнее
И Не ПустаяСтрока(ТекущиеДанные.Подробнее)Тогда
СтандартнаяОбработка = Ложь;
ПараметрыОшибки = Новый Структура;
ПараметрыОшибки.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Результат проверки программы'"));
ПараметрыОшибки.Вставить("ТекстОшибкиКлиент", ТекущиеДанные.РезультатПроверки);
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки", ПараметрыОшибки, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
@@ -426,28 +486,10 @@
&НаСервере
Процедура УстановитьУсловноеОформление()
// Оформление отображения сообщения успешной установки программы.
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ПоясняющийТекст.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Программы.Установлена");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ПрограммыРезультатПроверки");
ЭлементОформляемогоПоля.Использование = Истина;
// Оформление отображения сообщения ошибки установки программы.
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ПоясняющийОшибкуТекст.Значение;
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
@@ -460,6 +502,10 @@
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ПрограммыРезультатПроверки");
ЭлементОформляемогоПоля.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ПрограммыНаименование");
ЭлементОформляемогоПоля.Использование = Истина;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
@@ -725,6 +771,7 @@
Если ОписаниеПрограммы.ПометкаУдаления Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, "");
ОбновитьЗначение(ОписаниеПрограммы.Подробнее, "");
ОбновитьЗначение(ОписаниеПрограммы.Установлена, "");
ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст);
Возврат;
@@ -765,6 +812,7 @@
Если Менеджер <> Неопределено Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Установлена на компьютере.'"));
ОбновитьЗначение(ОписаниеПрограммы.Подробнее, "");
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Истина);
ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст);
Возврат;
@@ -776,6 +824,7 @@
Если Ошибка.НеУказанПуть Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Не указан путь к программе.'"));
ОбновитьЗначение(ОписаниеПрограммы.Подробнее, НСтр("ru = 'Подробнее'") + "...");
ОбновитьЗначение(ОписаниеПрограммы.Установлена, "");
Иначе
ТекстОшибки = НСтр("ru = 'Не установлена на компьютере.'") + " " + Ошибка.Описание;
@@ -783,6 +832,7 @@
ТекстОшибки = ТекстОшибки + " " + НСтр("ru = 'Обратитесь к администратору.'");
КонецЕсли;
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, ТекстОшибки);
ОбновитьЗначение(ОписаниеПрограммы.Подробнее, НСтр("ru = 'Подробнее'") + "...");
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Ложь);
КонецЕсли;
@@ -995,4 +1045,20 @@
КонецПроцедуры
&НаКлиенте
Процедура СохранитьПутьКПрограмме()
ТекущиеДанные = Элементы.Программы.ТекущиеДанные;
Если БезПраваСохранениеДанныхПользователя Тогда
ТекущиеДанные.LinuxПутьКПрограмме = LinuxПутьКТекущейПрограмме;
ПоказатьПредупреждение(,
НСтр("ru = 'Невозможно сохранить путь к программе. Отсутствует право сохранения данных.
|Обратитесь к администратору.'"));
Иначе
СохранитьПутьLinuxНаСервере(ТекущиеДанные.Ссылка, ТекущиеДанные.LinuxПутьКПрограмме);
ОпределитьУстановленныеПрограммы();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,911 @@
<?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>22</id>
<items xsi:type="form:FormGroup">
<name>ЗаголовокКлиент</name>
<id>1</id>
<items xsi:type="form:Decoration">
<name>ЗаголовокКлиентКартинка</name>
<id>3</id>
<title>
<key>ru</key>
<value>Заголовок клиент картинка</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаголовокКлиентКартинкаРасширеннаяПодсказка</name>
<id>5</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗаголовокКлиентКартинкаКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<width>2</width>
<autoMaxWidth>true</autoMaxWidth>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.КомпьютерКлиент</picture>
</picture>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ЗаголовокКлиентНадпись</name>
<id>6</id>
<title>
<key>ru</key>
<value>На клиентском компьютере:</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаголовокКлиентНадписьРасширеннаяПодсказка</name>
<id>8</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗаголовокКлиентНадписьКонтекстноеМеню</name>
<id>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Заголовок клиент</value>
</title>
<extendedTooltip>
<name>ЗаголовокКлиентРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ТекстОшибкиКлиент</name>
<id>9</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ТекстОшибкиКлиент</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ТекстОшибкиКлиентРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстОшибкиКлиентКонтекстноеМеню</name>
<id>10</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВозможныеПричиныИРешенияКлиент</name>
<id>53</id>
<items xsi:type="form:FormGroup">
<name>ВозможныеПричиныКлиент</name>
<id>12</id>
<items xsi:type="form:Decoration">
<name>ПричиныКлиентТекст</name>
<id>14</id>
<title>
<key>ru</key>
<value>Возможные причины (клиент)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПричиныКлиентТекстРасширеннаяПодсказка</name>
<id>16</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПричиныКлиентТекстКонтекстноеМеню</name>
<id>15</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные причины</value>
</title>
<extendedTooltip>
<name>ВозможныеПричиныКлиентРасширеннаяПодсказка</name>
<id>13</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<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>
<items xsi:type="form:FormGroup">
<name>ВозможныеРешенияКлиент</name>
<id>17</id>
<items xsi:type="form:Decoration">
<name>РешенияКлиентТекст</name>
<id>19</id>
<title>
<key>ru</key>
<value>Возможные способы устранения (клиент)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>РешенияКлиентТекстРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РешенияКлиентТекстКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные способы устранения</value>
</title>
<extendedTooltip>
<name>ВозможныеРешенияКлиентРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные причины и решения клиент</value>
</title>
<extendedTooltip>
<name>ВозможныеПричиныИРешенияКлиентРасширеннаяПодсказка</name>
<id>54</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<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:Decoration">
<name>ИнструкцияКлиент</name>
<id>24</id>
<title>
<key>ru</key>
<value>Типичные проблемы при работе с программой электронной подписи и шифрования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИнструкцияКлиентРасширеннаяПодсказка</name>
<id>26</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИнструкцияКлиентКонтекстноеМеню</name>
<id>25</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ИнструкцияНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка клиент</value>
</title>
<extendedTooltip>
<name>ОшибкаКлиентРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<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:Decoration">
<name>ДекорацияРазделитель</name>
<id>57</id>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияРазделительРасширеннаяПодсказка</name>
<id>59</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияРазделительКонтекстноеМеню</name>
<id>58</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ОшибкаСервер</name>
<id>27</id>
<items xsi:type="form:FormGroup">
<name>ЗаголовокСервер</name>
<id>29</id>
<items xsi:type="form:Decoration">
<name>ЗаголовокСерверКартинка</name>
<id>31</id>
<title>
<key>ru</key>
<value>Заголовок сервер картинка</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаголовокСерверКартинкаРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗаголовокСерверКартинкаКонтекстноеМеню</name>
<id>32</id>
<autoFill>true</autoFill>
</contextMenu>
<width>2</width>
<autoMaxWidth>true</autoMaxWidth>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.КомпьютерСервер</picture>
</picture>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ЗаголовокСерверНадпись</name>
<id>34</id>
<title>
<key>ru</key>
<value>На серверном компьютере:</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаголовокСерверНадписьРасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗаголовокСерверНадписьКонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Заголовок сервер</value>
</title>
<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>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ТекстОшибкиСервер</name>
<id>37</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ТекстОшибкиСервер</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ТекстОшибкиСерверРасширеннаяПодсказка</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстОшибкиСерверКонтекстноеМеню</name>
<id>38</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">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВозможныеПричиныИРешенияСервер</name>
<id>55</id>
<items xsi:type="form:FormGroup">
<name>ВозможныеПричиныСервер</name>
<id>40</id>
<items xsi:type="form:Decoration">
<name>ПричиныСерверТекст</name>
<id>42</id>
<title>
<key>ru</key>
<value>Возможные причины (сервер)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПричиныСерверТекстРасширеннаяПодсказка</name>
<id>44</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПричиныСерверТекстКонтекстноеМеню</name>
<id>43</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные причины</value>
</title>
<extendedTooltip>
<name>ВозможныеПричиныСерверРасширеннаяПодсказка</name>
<id>41</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>
<items xsi:type="form:FormGroup">
<name>ВозможныеРешенияСервер</name>
<id>45</id>
<items xsi:type="form:Decoration">
<name>РешенияСерверТекст</name>
<id>47</id>
<title>
<key>ru</key>
<value>Возможные способы устранения (сервер)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>РешенияСерверТекстРасширеннаяПодсказка</name>
<id>49</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РешенияСерверТекстКонтекстноеМеню</name>
<id>48</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные способы устранения</value>
</title>
<extendedTooltip>
<name>ВозможныеРешенияСерверРасширеннаяПодсказка</name>
<id>46</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Возможные причины и решения сервер</value>
</title>
<extendedTooltip>
<name>ВозможныеПричиныИРешенияСерверРасширеннаяПодсказка</name>
<id>56</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<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:Decoration">
<name>ИнструкцияСервер</name>
<id>50</id>
<title>
<key>ru</key>
<value>Типичные проблемы при работе с программой электронной подписи и шифрования</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИнструкцияСерверРасширеннаяПодсказка</name>
<id>52</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИнструкцияСерверКонтекстноеМеню</name>
<id>51</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ИнструкцияНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка сервер</value>
</title>
<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>
<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>
<commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>45</width>
<height>15</height>
<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>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>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ЯкорьОшибкиСервер</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<parameters>
<name>ЗаголовокПредупреждения</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ТекстОшибкиКлиент</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ТекстОшибкиСервер</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,93 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Заголовок = Параметры.ЗаголовокПредупреждения;
АвтоЗаголовок = Ложь;
ТекстОшибкиКлиент = Параметры.ТекстОшибкиКлиент;
ТекстОшибкиСервер = Параметры.ТекстОшибкиСервер;
КлючНазначенияИспользования = "";
УстановитьЭлементы(ТекстОшибкиКлиент);
УстановитьЭлементы(ТекстОшибкиСервер, Истина);
Если Не ПустаяСтрока(ТекстОшибкиКлиент)
И Не ПустаяСтрока(ТекстОшибкиСервер) Тогда
Элементы.ДекорацияРазделитель.Видимость = Истина;
Если Элементы.ИнструкцияКлиент.Заголовок <> НСтр("ru = 'Подробнее'")
И Элементы.ИнструкцияСервер.Заголовок <> НСтр("ru = 'Подробнее'") Тогда
Элементы.ИнструкцияКлиент.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ИнструкцияНажатие(Элемент)
ЯкорьОшибки = "";
Если СтрЗаканчиваетсяНа(Элемент.Имя, "Клиент")
И Не ПустаяСтрока(ЯкорьОшибкиКлиент) Тогда
ЯкорьОшибки = ЯкорьОшибкиКлиент;
ИначеЕсли СтрЗаканчиваетсяНа(Элемент.Имя, "Сервер")
И Не ПустаяСтрока(ЯкорьОшибкиСервер) Тогда
ЯкорьОшибки = ЯкорьОшибкиСервер;
КонецЕсли;
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ЯкорьОшибки);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьЭлементы(ТекстОшибки, ОшибкаНаСервере = Ложь)
Суффикс = ?(ОшибкаНаСервере, "Сервер", "Клиент");
Элементы["Ошибка" + Суффикс].Видимость = Не ПустаяСтрока(ТекстОшибки);
Если Не ПустаяСтрока(ТекстОшибки) Тогда
ОписаниеОшибки = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки);
ЭтоИзвестнаяОшибка = ОписаниеОшибки <> Неопределено;
КлючНазначенияИспользования = КлючНазначенияИспользования
+ ?(ЭтоИзвестнаяОшибка, "ИзвестнаяОшибка", "НеизвестнаяОшибка") + Суффикс;
Элементы["ВозможныеПричиныИРешения" + Суффикс].Видимость = ЭтоИзвестнаяОшибка;
Если ЭтоИзвестнаяОшибка Тогда
Элементы["Инструкция" + Суффикс].Заголовок = НСтр("ru = 'Подробнее'");
Элементы["Причины" + Суффикс + "Текст"].Заголовок = ОписаниеОшибки.Причина;
Элементы["Решения" + Суффикс + "Текст"].Заголовок = ОписаниеОшибки.Решение;
ЭтотОбъект["ЯкорьОшибки" + Суффикс] = ОписаниеОшибки.Ссылка;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="62d4d073-80df-41e6-a915-43a4f5575206">
<name>РасширенноеПредставлениеОшибки</name>
<synonym>
<key>ru</key>
<value>Расширенное представление ошибки</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
<useStandardCommands>true</useStandardCommands>
</mdclass:CommonForm>
@@ -5900,8 +5900,8 @@
КонецЦикла;
Если ТаблицаИзменившихсяСтатусов.Количество() = 0 Тогда
Продолжить;
ОтменитьТранзакцию();
Продолжить;
КонецЕсли;
ДокументОбъект = ВыборкаДокументы.Ссылка.ПолучитьОбъект();
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.306";
Описание.Версия = "3.1.2.312";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -1292,6 +1292,7 @@
Обработчик.ОбщиеДанные = Истина;
Обработчик.Процедура = "РаботаСФайламиВТомахСлужебный.ЗаполнитьНастройкиХраненияФайлов";
Обработчик.РежимВыполнения = "Оперативно";
Обработчик.НачальноеЗаполнение = Истина;
КонецПроцедуры
@@ -7860,6 +7860,7 @@
Блокировка.Добавить("РегистрСведений.КлючиДоступаПользователей");
Блокировка.Добавить("РегистрСведений.КлючиДоступаВнешнихПользователей");
Блокировка.Добавить("Справочник.КлючиДоступа");
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки = Блокировка.Добавить("Справочник.НаборыГруппДоступа");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
@@ -7878,8 +7879,6 @@
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НаследованиеНастроекПравОбъектов");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Блокировка.Заблокировать();
КонецЕсли;
@@ -17861,18 +17860,6 @@
ПараметрыОбновления.Кэш.Вставить("ЗначенияГруппДоступаВерсия", Новый УникальныйИдентификатор);
КонецЕсли;
Если ТранзакцияАктивна() И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
// АПК:1320-выкл - №499, №783.1.3 Допустимо вызывать блокировку во внешней транзакции для файловой ИБ.
// Требуется для предотвращения взаимоблокировки: ниже обращение к базе данных, которое ставит неявную
// разделяемую блокировку и далее блокировка неявно усиливается до исключительной,
// что приводит к взаимоблокировке в некоторых случаях.
Блокировка.Заблокировать();
// АПК:1320-вкл.
КонецЕсли;
ИмяПараметраВерсии = "СтандартныеПодсистемы.УправлениеДоступом.ЗначенияГруппДоступаВерсия";
ЗначенияГруппДоступаВерсия = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметраВерсии, Истина);
@@ -21558,7 +21545,7 @@
// Число нужно увеличивать при внесении изменений в состав параметров кэша
// (в том числе при изменении версии шаблонов).
Возврат "17";
Возврат "18";
КонецФункции
@@ -21567,8 +21554,8 @@
Функция ВерсииШаблоновОграниченияДоступа()
Возврат
",ДляОбъекта6,
|,ДляРегистра6,
",ДляОбъекта7,
|,ДляРегистра7,
|,ПоЗначениям17,
|,ПоЗначениямРасширенный17,
|,ПоЗначениямИНаборамРасширенный17,
@@ -21753,7 +21740,7 @@
Возврат;
КонецЕсли;
ОбщиеПараметры = ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;"
ОбщиеПараметры = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйПользователь, "^");
@@ -22564,7 +22551,7 @@
Если Параметры.ОграничениеЧтенияОтключено Тогда
ПараметрыШаблонов.СпискиСОтключеннымОграничениемЧтения =
ПараметрыШаблонов.СпискиСОтключеннымОграничениемЧтения
+ СвойстваСписка.ПолноеИмя + Символы.ПС;
+ СвойстваСписка.ПолноеИмя + ";" + Символы.ПС;
Возврат;
КонецЕсли;
@@ -981,40 +981,7 @@
Функция ДоступнаБалансировкаНагрузкиНаДиск() Экспорт
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Таблица.Поле КАК Поле
|ИЗ
| (ВЫБРАТЬ
| NULL КАК Поле
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 1) КАК Таблица
|
|УПОРЯДОЧИТЬ ПО
| Поле
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таблица.Поле КАК Поле
|ИЗ
| (ВЫБРАТЬ
| ""Yes1"" КАК Поле) КАК Таблица
|ГДЕ
| Таблица.Поле ПОДОБНО ""Yes[1]""";
РезультатыЗапроса = Запрос.ВыполнитьПакет();
Возврат РезультатыЗапроса[0].Выгрузить()[0].Поле <> 1
Или Не РезультатыЗапроса[1].Пустой();
Возврат Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
КонецФункции
@@ -338,6 +338,16 @@
Функция НаименованиеСокращение(Знач Текст) Экспорт
Результат = Новый Структура("Наименование, Сокращение");
Текст = СокрЛП(Текст);
ТекстВерхнийРегистр = ВРег(Текст);
Если СтрЗаканчиваетсяНа(ТекстВерхнийРегистр, "ТЕР. СНТ")
Или СтрЗаканчиваетсяНа(ТекстВерхнийРегистр, "ТЕР. ДНТ") Тогда
Результат.Сокращение = Прав(Текст, 8);
Результат.Наименование = Лев(Текст, СтрДлина(Текст) - 9);
Возврат Результат;
КонецЕсли;
Части = НаборНаименованийИСокращений(Текст, Истина);
Если Части.Количество() > 0 Тогда
ЗаполнитьЗначенияСвойств(Результат, Части[0]);
@@ -928,11 +928,14 @@
//
Функция МенеджерКриптографии(Операция, ПоказатьОшибку = Истина, ОписаниеОшибки = "", Программа = Неопределено) Экспорт
Ошибка = "";
Результат = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Операция, ПоказатьОшибку, Ошибка, Программа);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Программа;
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку;
Результат = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Операция, ПараметрыСоздания);
Если Результат = Неопределено Тогда
ОписаниеОшибки = Ошибка;
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
КонецЕсли;
Возврат Результат;
@@ -341,10 +341,15 @@
ЭлектроннаяПодписьСлужебныйКлиент.ДобавитьПодписьИзФайлаПослеСозданияМенеджераКриптографии(
Неопределено, Контекст);
Иначе
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ДобавитьПодписьИзФайлаПослеСозданияМенеджераКриптографии",
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(
Новый ОписаниеОповещения("ДобавитьПодписьИзФайлаПослеСозданияМенеджераКриптографии",
ЭлектроннаяПодписьСлужебныйКлиент, Контекст),
"", Неопределено);
"", ПараметрыСоздания);
КонецЕсли;
КонецПроцедуры
@@ -917,9 +922,13 @@
// Открывает инструкцию с описанием типичных проблем при работе с программами
// электронной подписи и вариантами их решения: http://its.1c.ru/bmk/dsig/errors.
//
Процедура ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами() Экспорт
// Параметры:
// ИмяРаздела - Строка - ссылка на ошибку в инструкции.
//
Процедура ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ИмяРаздела = "") Экспорт
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("http://its.1c.ru/bmk/dsig/errors");
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("http://its.1c.ru/bmk/dsig/errors"
+ ?(ПустаяСтрока(ИмяРаздела), "", "#" + ИмяРаздела));
КонецПроцедуры
@@ -1169,8 +1178,7 @@
// * ИмяАлгоритмаХеширования - Строка - например, "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12" + ...
// * OIDАлгоритмаХеширования - Строка - например, "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2" + ...
// * АлгоритмПодписи - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"
// + Символы.ПС +
// "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ...
// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ...
// * АлгоритмХеширования - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr3411"
// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" + ...
//
@@ -1276,6 +1284,9 @@
НСтр("ru = 'Проверка установки электронной подписи'")));
Контекст.Вставить("ДанныеСертификата", Сертификат);
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Сертификат));
Если ТипЗнч(Контекст.ДанныеСертификата) = Тип("Строка")
И ЭтоАдресВременногоХранилища(Контекст.ДанныеСертификата) Тогда
@@ -1297,9 +1308,13 @@
Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(
Новый ОписаниеОповещения("ДобавитьСертификатПослеСозданияМенеджераКриптографии",
ЭлектроннаяПодписьСлужебныйКлиент, Контекст), "", Неопределено);
ЭлектроннаяПодписьСлужебныйКлиент, Контекст), "", ПараметрыСоздания);
КонецПроцедуры
@@ -1435,8 +1450,11 @@
ПоказатьОшибку = Ложь;
КонецЕсли;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Оповещение,
Операция, ПоказатьОшибку, Программа);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Программа;
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Оповещение, Операция, ПараметрыСоздания);
КонецПроцедуры
@@ -306,46 +306,72 @@
#Область СлужебныеПроцедурыИФункции
// Возвращает дополнительные параметры создания менеджера криптографии.
//
// Возвращаемое значение:
// Структура - с полями:
// * ПоказатьОшибку - Булево - если Истина, тогда будет вызвано исключение, содержащее описание ошибки.
//
// * ОписаниеОшибки - Строка - возвращаемое описание ошибки, когда функция возвратила значение Неопределено.
// - Структура - содержит ошибки обращения к программам, если возвращено Неопределено.
// ** ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
// ** ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции.
// ** ИмяКомпьютера - Строка - имя компьютера при получении менеджера криптографии.
// ** Описание - Строка - описание общей ошибки.
// ** Общая - Булево - если Истина, то содержит описание ошибки для всех программ,
// иначе альтернативное описание массиву Ошибки.
// ** КАдминистратору - Булево - для исправления общей ошибки требуются права администратора.
// ** Ошибки - Массив - содержит структуры описания ошибок программ со свойствами:
// *** Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования.
// *** Описание - Строка - содержит представление ошибки.
// *** ИзИсключения - Булево - описание содержит краткое представление информации об ошибке.
// *** НеУказанПуть - Булево - описание содержит ошибку о неуказанном пути для ОС Linux.
// *** КАдминистратору - Булево - для исправления ошибки требуются права администратора.
//
// * Программа - Неопределено - возвращает менеджер криптографии первой
// программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии.
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
//
Функция ПараметрыСозданияМенеджераКриптографии() Экспорт
ПараметрыСозданияМенеджераКриптографии = Новый Структура;
ПараметрыСозданияМенеджераКриптографии.Вставить("Программа", Неопределено);
ПараметрыСозданияМенеджераКриптографии.Вставить("ПоказатьОшибку", Ложь);
ПараметрыСозданияМенеджераКриптографии.Вставить("ОписаниеОшибки", "");
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмПодписи", "");
Возврат ПараметрыСозданияМенеджераКриптографии;
КонецФункции
// Возвращает менеджер криптографии (на сервере) для указанной программы.
//
// Параметры:
// Операция - Строка - если не пустая, то должна содержать одну из строк, которые определяют
// операцию для вставки в описание ошибки: Подписание, ПроверкаПодписи, Шифрование,
// Расшифровка, ПроверкаСертификата, ПолучениеСертификатов.
//
// ПоказатьОшибку - Булево - если Истина, тогда будет вызвано исключение, содержащее описание ошибки.
//
// ОписаниеОшибки - Строка - возвращаемое описание ошибки, когда функция возвратила значение Неопределено.
// - Структура - содержит ошибки обращения к программам, если возвращено Неопределено.
// * ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции.
// * ИмяКомпьютера - Строка - имя компьютера при получении менеджера криптографии.
// * Описание - Строка - описание общей ошибки.
// * Общая - Булево - если Истина, то содержит описание ошибки для всех программ,
// иначе альтернативное описание массиву Ошибки.
// * КАдминистратору - Булево - для исправления общей ошибки требуются права администратора.
// * Ошибки - Массив - содержит структуры описания ошибок программ со свойствами:
// * Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования.
// * Описание - Строка - содержит представление ошибки.
// * ИзИсключения - Булево - описание содержит краткое представление информации об ошибке.
// * НеУказанПуть - Булево - описание содержит ошибку о неуказанном пути для ОС Linux.
// * КАдминистратору - Булево - для исправления ошибки требуются права администратора.
//
// Программа - Неопределено - возвращает менеджер криптографии первой
// программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии.
// ПараметрыМенеджераКриптографии - см. ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии.
//
// Возвращаемое значение:
// МенеджерКриптографии - менеджер криптографии.
// Неопределено - произошла ошибка, описание которой в параметре ОписаниеОшибки.
//
Функция МенеджерКриптографии(Операция, ПоказатьОшибку = Истина, ОписаниеОшибки = "", Программа = Неопределено) Экспорт
Функция МенеджерКриптографии(Операция, ПараметрыСозданияМенеджераКриптографии = Неопределено) Экспорт
Если ПараметрыСозданияМенеджераКриптографии = Неопределено Тогда
ПараметрыСозданияМенеджераКриптографии = ПараметрыСозданияМенеджераКриптографии();
КонецЕсли;
Программа = ПараметрыСозданияМенеджераКриптографии.Программа;
ПоказатьОшибку = ПараметрыСозданияМенеджераКриптографии.ПоказатьОшибку;
АлгоритмПодписи = ПараметрыСозданияМенеджераКриптографии.АлгоритмПодписи;
ИмяКомпьютера = ИмяКомпьютера();
Ошибки = Новый Массив;
Менеджер = НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера);
Менеджер = НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера, АлгоритмПодписи);
Если Менеджер <> Неопределено Тогда
Возврат Менеджер;
@@ -374,10 +400,10 @@
НСтр("ru = 'Ошибка в функции МенеджерКриптографии.
|Неверное значение параметра Операция ""%1"".'"), Операция);
ИначеЕсли ТипЗнч(ОписаниеОшибки) = Тип("Структура")
И ОписаниеОшибки.Свойство("ЗаголовокОшибки") Тогда
ИначеЕсли ТипЗнч(ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки) = Тип("Структура")
И ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки.Свойство("ЗаголовокОшибки") Тогда
ЗаголовокОшибки = ОписаниеОшибки.ЗаголовокОшибки;
ЗаголовокОшибки = ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки.ЗаголовокОшибки;
Иначе
ЗаголовокОшибки = НСтр("ru = 'Не удалось выполнить операцию на сервере %1 по причине:'");
КонецЕсли;
@@ -412,10 +438,10 @@
СвойстваОшибки.Вставить("ОписаниеОшибки", ЗаголовокОшибки + Символы.ПС + ТекстОшибки);
Если ТипЗнч(ОписаниеОшибки) = Тип("Структура") Тогда
ОписаниеОшибки = СвойстваОшибки;
Если ТипЗнч(ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки) = Тип("Структура") Тогда
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = СвойстваОшибки;
Иначе
ОписаниеОшибки = СвойстваОшибки.ОписаниеОшибки;
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = СвойстваОшибки.ОписаниеОшибки;
КонецЕсли;
Если ПоказатьОшибку Тогда
@@ -439,9 +465,14 @@
Функция ПолучитьСертификатПоОтпечатку(Отпечаток, ТолькоВЛичномХранилище,
ПоказатьОшибку = Истина, Программа = Неопределено, ОписаниеОшибки = "") Экспорт
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов",
ПоказатьОшибку, ОписаниеОшибки, Программа);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Программа;
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку;
ПараметрыСоздания.ОписаниеОшибки = ОписаниеОшибки;
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов", ПараметрыСоздания);
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
@@ -705,7 +736,12 @@
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов", Ложь, Ошибка);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ОписаниеОшибки = Ошибка;
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов", ПараметрыСоздания);
Ошибка = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии <> Неопределено Тогда
ПараметрыДобавленияСвойств = Новый Структура("МодульЛокализации", МодульЛокализации());
@@ -805,15 +841,24 @@
СертификатКриптографии = Новый СертификатКриптографии(Контекст.ДанныеСертификата);
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Контекст.ДанныеСертификата));
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Неопределено, Новый Массив, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм,
Контекст.АлгоритмПодписи);
Сертификат = Неопределено;
ОписаниеОшибки = "";
ОписанияПрограмм = ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм;
Для каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
ОшибкаМенеджера = Новый Структура;
МенеджерКриптографии = МенеджерКриптографии("",
Ложь, ОшибкаМенеджера, ОписаниеПрограммы.Ссылка);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = ОписаниеПрограммы.Ссылка;
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
МенеджерКриптографии = МенеджерКриптографии("", ПараметрыСоздания);
ОшибкаМенеджера = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии = Неопределено Тогда
Если ОшибкаМенеджера.Ошибки.Количество() > 0 Тогда
@@ -1035,10 +1080,30 @@
ЗаполнитьДополнительныеСвойстваСертификата(Форма);
АлгоритмПодписи = "";
Если ЗначениеЗаполнено(Форма.Сертификат) Тогда
ХранилищеДанныхСертификата = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Форма.Сертификат, "ДанныеСертификата");
Если ЗначениеЗаполнено(ХранилищеДанныхСертификата) Тогда
ДанныеСертификата = ХранилищеДанныхСертификата.Получить();
Если ЗначениеЗаполнено(ДанныеСертификата) Тогда
АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Форма.МенеджерКриптографииНаСервереОписаниеОшибки = Новый Структура;
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
МенеджерКриптографии("ПолучениеСертификатов",
Ложь, Форма.МенеджерКриптографииНаСервереОписаниеОшибки);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.АлгоритмПодписи = АлгоритмПодписи;
МенеджерКриптографии("ПолучениеСертификатов", ПараметрыСоздания);
Форма.МенеджерКриптографииНаСервереОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
КонецЕсли;
Если Не Шифрование Тогда
@@ -1313,7 +1378,7 @@
Если ЗначениеЗаполнено(ИмяЭлементаУсиленнаяЗащитаЗакрытогоКлюча) Тогда
Элемент = Форма.Элементы[ИмяЭлементаУсиленнаяЗащитаЗакрытогоКлюча]; // ПолеФормы
Элемент.Заголовок = НСтр("ru = 'Ввод и сохранение пароля в программе'");
Элемент.Заголовок = НСтр("ru = 'Вводить пароль в программе электронной подписи'");
Элемент.Подсказка =
НСтр("ru = '- Включается интерактивный режим работы программы электронной подписи,
| при котором она запрашивает пароль и позволяет его сохранить.
@@ -1326,7 +1391,7 @@
Элемент = Форма.Элементы[ИмяЭлементаПояснениеУсиленногоПароля];
Элемент.Подсказка =
НСтр("ru = 'Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие,
|так как для выбранного сертификата включен режим ""Ввод и сохранение пароля в программе"".'");
|так как для выбранного сертификата включен режим ""Вводить пароль в программе электронной подписи"".'");
КонецЕсли;
КонецПроцедуры
@@ -1341,13 +1406,13 @@
//
// Параметры:
// КонвертSOAP - Строка - шаблон формируемого сообщения в формате SOAP
// ДанныеАлгоритмаПодписания - Структура:
// XPathПодписываемыйТег - Строка - запрос для получения тега подписи.
// XPathSignedInfo - Строка - запрос для получения тега подписываемой информации.
// OIDАлгоритмаХеширования - Строка - идентификатор алгоритма хеширования.
// ИмяАлгоритмаПодписи - Строка - имя алгоритма подписи.
// АлгоритмХеширования - Строка - алгоритм хеширования в конверте SOAP.
// АлгоритмПодписи - Строка - алгоритм подписи в конверте SOAP.
// ДанныеАлгоритмаПодписания - Структура с полями:
// * XPathПодписываемыйТег - Строка - запрос для получения тега подписи.
// * XPathSignedInfo - Строка - запрос для получения тега подписываемой информации.
// * OIDАлгоритмаХеширования - Строка - идентификатор алгоритма хеширования.
// * ИмяАлгоритмаПодписи - Строка - имя алгоритма подписи.
// * АлгоритмХеширования - Строка - алгоритм хеширования в конверте SOAP.
// * АлгоритмПодписи - Строка - алгоритм подписи в конверте SOAP.
// СертификатКриптографии - СертификатКриптографии - используемый сертификат криптографии.
// МенеджерКриптографии - МенеджерКриптографии - используемый менеджер криптографии.
//
@@ -1356,8 +1421,8 @@
//
Функция Подписать(Знач КонвертSOAP, ДанныеАлгоритмаПодписания, СертификатКриптографии, МенеджерКриптографии) Экспорт
XPathПодписываемыйТег = ДанныеАлгоритмаПодписания.XPathПодписываемыйТег;
XPathSignedInfo = ДанныеАлгоритмаПодписания.XPathSignedInfo;
XPathПодписываемыйТег = ДанныеАлгоритмаПодписания.XPathПодписываемыйТег;
Пароль = МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу;
@@ -1375,23 +1440,23 @@
СертификатКриптографииBase64(СертификатКриптографии.Выгрузить()),
ДанныеАлгоритмаПодписания);
DigestValue = Hash(
АтрибутDigestValue = РезультатHash(
ОбъектКомпоненты,
C14N(ОбъектКомпоненты, КонвертSOAP, XPathПодписываемыйТег),
ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования,
СвойстваКриптопровайдера.Тип);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%DigestValue%", DigestValue);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%DigestValue%", АтрибутDigestValue);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%SignatureMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%DigestMethod%", ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования);
SignatureValue = Sign(
АтрибутSignatureValue = РезультатSign(
ОбъектКомпоненты,
C14N(ОбъектКомпоненты, КонвертSOAP, XPathSignedInfo),
СертификатКриптографии,
Пароль);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%SignatureValue%", SignatureValue);
КонвертSOAP = СтрЗаменить(КонвертSOAP, "%SignatureValue%", АтрибутSignatureValue);
Возврат КонвертSOAP;
@@ -1401,8 +1466,8 @@
// Если проверка подписи завершилась неудачно, генерируется исключительная ситуация.
Функция ПроверитьПодпись(Знач КонвертSOAP, ДанныеАлгоритмаПодписания, МенеджерКриптографии) Экспорт
XPathПодписываемыйТег = ДанныеАлгоритмаПодписания.XPathПодписываемыйТег;
XPathSignedInfo = ДанныеАлгоритмаПодписания.XPathSignedInfo;
XPathПодписываемыйТег = ДанныеАлгоритмаПодписания.XPathПодписываемыйТег;
ОбъектКомпоненты = ОбъектВнешнейКомпонентыXMLDSig();
@@ -1413,21 +1478,21 @@
ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, СертификатКриптографииBase64, ДанныеАлгоритмаПодписания);
ПодписьВерна = VerifySign(
ПодписьВерна = РезультатVerifySign(
ОбъектКомпоненты,
C14N(ОбъектКомпоненты, КонвертSOAP, XPathSignedInfo),
ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертSOAP, "SignatureValue"),
СертификатКриптографииBase64,
СвойстваКриптопровайдера.Тип);
DigestValue = Hash(
АтрибутDigestValue = РезультатHash(
ОбъектКомпоненты,
C14N(ОбъектКомпоненты, КонвертSOAP, XPathПодписываемыйТег),
ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования,
СвойстваКриптопровайдера.Тип);
ХешСовпадает = Ложь;
Если DigestValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертSOAP, "DigestValue") Тогда
Если АтрибутDigestValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертSOAP, "DigestValue") Тогда
ХешСовпадает = Истина;
КонецЕсли;
@@ -1493,14 +1558,14 @@
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
SignatureValue = CMSSign(
АтрибутSignatureValue = РезультатCMSSign(
ОбъектКомпоненты,
Данные,
ПараметрыCMS,
СертификатКриптографии,
Пароль);
Возврат SignatureValue;
Возврат АтрибутSignatureValue;
КонецФункции
@@ -1511,14 +1576,14 @@
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
SignatureValue = CMSVerifySign(
АтрибутSignatureValue = РезультатCMSVerifySign(
ОбъектКомпоненты,
Подпись,
Данные,
ПараметрыCMS,
СвойстваКриптопровайдера.Тип);
Возврат SignatureValue;
Возврат АтрибутSignatureValue;
КонецФункции
@@ -1547,16 +1612,18 @@
КонецФункции
Функция GetSignOIDFromCert(ОбъектКомпоненты, СертификатКриптографииBase64)
Функция OIDАлгоритмаПодписи(ОбъектКомпоненты, СертификатКриптографииBase64)
Попытка
OIDАлгоритмаПодписи = ОбъектКомпоненты.GetSignOIDFromCert(СертификатКриптографииBase64);
Исключение
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если OIDАлгоритмаПодписи = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
КонецЕсли;
Возврат OIDАлгоритмаПодписи;
@@ -1581,70 +1648,78 @@
КонецФункции
Функция Hash(ОбъектКомпоненты, КаноникализированныйТекстXML, OIDАлгоритмаХеширования, ТипКриптопровайдера)
Функция РезультатHash(ОбъектКомпоненты, КаноникализированныйТекстXML, OIDАлгоритмаХеширования, ТипКриптопровайдера)
Попытка
DigestValue = ОбъектКомпоненты.Hash(
АтрибутDigestValue = ОбъектКомпоненты.Hash(
КаноникализированныйТекстXML,
OIDАлгоритмаХеширования,
ТипКриптопровайдера);
Исключение
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если DigestValue = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'") + Символы.ПС + ОбъектКомпоненты.GetLastError();
Если АтрибутDigestValue = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
КонецЕсли;
Возврат DigestValue;
Возврат АтрибутDigestValue;
КонецФункции
Функция Sign(ОбъектКомпоненты, КаноникализированныйТекстXMLSignedInfo, СертификатКриптографии, ПарольДоступаКЗакрытомуКлючу)
Функция РезультатSign(ОбъектКомпоненты, КаноникализированныйТекстXMLSignedInfo,
СертификатКриптографии, ПарольДоступаКЗакрытомуКлючу)
Попытка
SignatureValue = ОбъектКомпоненты.Sign(
АтрибутSignatureValue = ОбъектКомпоненты.Sign(
КаноникализированныйТекстXMLSignedInfo,
СертификатКриптографииBase64(СертификатКриптографии.Выгрузить()),
ПарольДоступаКЗакрытомуКлючу);
Исключение
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если SignatureValue = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'") + Символы.ПС + ОбъектКомпоненты.GetLastError();
Если АтрибутSignatureValue = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода Sign компоненты XMLDSig.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
КонецЕсли;
Возврат SignatureValue;
Возврат АтрибутSignatureValue;
КонецФункции
Функция VerifySign(ОбъектКомпоненты, КаноникализированныйТекстXMLSignedInfo, SignatureValue, СертификатКриптографииBase64, ТипКриптопровайдера)
Функция РезультатVerifySign(ОбъектКомпоненты, КаноникализированныйТекстXMLSignedInfo,
АтрибутSignatureValue, СертификатКриптографииBase64, ТипКриптопровайдера)
Попытка
ПодписьВерна = ОбъектКомпоненты.VerifySign(
КаноникализированныйТекстXMLSignedInfo,
SignatureValue,
АтрибутSignatureValue,
СертификатКриптографииBase64,
ТипКриптопровайдера);
Исключение
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если ПодписьВерна = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'") + Символы.ПС + ОбъектКомпоненты.GetLastError();
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода VerifySign компоненты XMLDSig.'")
+ Символы.ПС + ОбъектКомпоненты.GetLastError();
КонецЕсли;
Возврат ПодписьВерна;
КонецФункции
Функция CMSSign(ОбъектКомпоненты, ДанныеДляПодписания, ПараметрыCMS, СертификатКриптографии, ПарольДоступаКЗакрытомуКлючу)
Функция РезультатCMSSign(ОбъектКомпоненты, ДанныеДляПодписания, ПараметрыCMS, СертификатКриптографии, ПарольДоступаКЗакрытомуКлючу)
ПараметрыКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыКомпонентыCMSSign(ПараметрыCMS, ДанныеДляПодписания);
Попытка
SignatureValue = ОбъектКомпоненты.CMSSign(
АтрибутSignatureValue = ОбъектКомпоненты.CMSSign(
ПараметрыКомпоненты.Данные,
СертификатКриптографииBase64(СертификатКриптографии.Выгрузить()),
ПарольДоступаКЗакрытомуКлючу,
@@ -1655,15 +1730,15 @@
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если Не ЗначениеЗаполнено(SignatureValue) Тогда
Если Не ЗначениеЗаполнено(АтрибутSignatureValue) Тогда
ВызватьИсключение НСтр("ru = 'Ошибка вызова метода CMSSign компоненты XMLDSig.'") + Символы.ПС + ОбъектКомпоненты.GetLastError();
КонецЕсли;
Возврат SignatureValue;
Возврат АтрибутSignatureValue;
КонецФункции
Функция CMSVerifySign(ОбъектКомпоненты, Подпись, Данные, ПараметрыCMS, ТипКриптопровайдера)
Функция РезультатCMSVerifySign(ОбъектКомпоненты, Подпись, Данные, ПараметрыCMS, ТипКриптопровайдера)
ПараметрыКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыКомпонентыCMSSign(ПараметрыCMS, Данные);
@@ -1687,7 +1762,7 @@
Процедура ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, СертификатКриптографииBase64, ДанныеАлгоритмаПодписания)
OIDАлгоритмаПодписи = GetSignOIDFromCert(ОбъектКомпоненты, СертификатКриптографииBase64);
OIDАлгоритмаПодписи = OIDАлгоритмаПодписи(ОбъектКомпоненты, СертификатКриптографииBase64);
OIDАлгоритмовПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС);
OIDАлгоритмовХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС);
@@ -1917,7 +1992,7 @@
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов", Ложь);
МенеджерКриптографии = МенеджерКриптографии("ПолучениеСертификатов");
Если МенеджерКриптографии <> Неопределено Тогда
ТипХранилища = ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты;
@@ -1926,6 +2001,7 @@
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДобавитьОтпечаткиСертификатов(
ОтпечаткиСертификатовНаКлиенте, МассивСертификатов, ДобавкаВремени(), ТекущаяДатаСеанса());
КонецЕсли;
КонецЕсли;
Если ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
@@ -2086,10 +2162,10 @@
КонецПроцедуры
// Для функции МенеджерКриптографии.
Функция НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера)
Функция НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера, АлгоритмПодписи = "")
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Программа, Ошибки, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм);
Программа, Ошибки, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм, АлгоритмПодписи);
Если ОписанияПрограмм = Неопределено Тогда
Возврат Неопределено;
@@ -2265,18 +2341,21 @@
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку шифрования по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
ТекущаяОшибка.Вставить("Инструкция", Истина);
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку шифрования с помощью программы %1 по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
Возврат Ложь;
@@ -2293,16 +2372,21 @@
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку расшифровки по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
ТекущаяОшибка.Вставить("Инструкция", Истина);
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку расшифровки с помощью программы %1 по причине:
|%2'"), ОписаниеПрограммы.Наименование, ПредставлениеОшибки);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
Возврат Ложь;
@@ -2327,8 +2411,15 @@
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку подписания по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
Если ИнформацияОбОшибке = Неопределено Тогда
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
ТекущаяОшибка.Вставить("Инструкция", Истина);
@@ -2336,9 +2427,7 @@
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку подписания с помощью программы %1 по причине:
|%2'"), ОписаниеПрограммы.Наименование, ПредставлениеОшибки);
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
Возврат Ложь;
@@ -2373,4 +2462,294 @@
КонецФункции
#Область КлассификаторОшибокКриптографии
Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе) Экспорт
КлассификаторОшибок = ЭлектроннаяПодписьСлужебныйПовтИсп.КлассификаторОшибокКриптографии();
Если ТипЗнч(КлассификаторОшибок) <> Тип("ТаблицаЗначений")
Или КлассификаторОшибок.Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КлассификаторОшибок.ТекстОшибки КАК ТекстОшибки,
| КлассификаторОшибок.Причина КАК Причина,
| КлассификаторОшибок.Решение КАК Решение,
| КлассификаторОшибок.СпособУстранения КАК СпособУстранения,
| КлассификаторОшибок.Ссылка КАК Ссылка
|ПОМЕСТИТЬ КлассификаторОшибок
|ИЗ
| &КлассификаторОшибок КАК КлассификаторОшибок
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| КлассификаторОшибок.Причина КАК Причина,
| КлассификаторОшибок.Решение КАК Решение,
| КлассификаторОшибок.СпособУстранения КАК СпособУстранения,
| КлассификаторОшибок.Ссылка КАК Ссылка
|ИЗ
| КлассификаторОшибок КАК КлассификаторОшибок
|ГДЕ
| &ТекстОшибки ПОДОБНО ""%"" + КлассификаторОшибок.ТекстОшибки + ""%""";
Запрос.УстановитьПараметр("КлассификаторОшибок", КлассификаторОшибок);
Запрос.УстановитьПараметр("ТекстОшибки", ТекстДляПоискаВКлассификаторе);
РезультатПоиска = Запрос.Выполнить();
Если РезультатПоиска.Пустой() Тогда
Возврат Неопределено;
КонецЕсли;
ОшибкиИзКлассификатора = РезультатПоиска.Выбрать();
ОшибкиИзКлассификатора.Следующий();
ПредставлениеОшибки = ПредставлениеОшибки();
ЗаполнитьЗначенияСвойств(ПредставлениеОшибки, ОшибкиИзКлассификатора);
Возврат ПредставлениеОшибки;
КонецФункции
Функция КлассификаторОшибокКриптографии() Экспорт
УстановитьПривилегированныйРежим(Истина);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
ОбновитьКлассификатор();
КонецЕсли;
ДанныеКлассификатора = Константы.КлассификаторОшибокКриптографии.Получить();
Если Не ЗначениеЗаполнено(ДанныеКлассификатора) Тогда
Возврат ПредставлениеКлассификатораДляХранения();
КонецЕсли;
Возврат ДанныеКлассификатора.Получить();
КонецФункции
Функция АдресКлассификатораОшибок()
АдресКлассификатора = Новый Структура;
АдресКлассификатора.Вставить("Протокол", "http://");
АдресКлассификатора.Вставить("АдресСервера", "downloads.v8.1c.ru");
АдресКлассификатора.Вставить("АдресРесурса",
"content/LED/settings/ErrorClassifier/classifier.json");
Возврат АдресКлассификатора;
КонецФункции
Функция ПредставлениеОшибки()
ПредставлениеОшибки = Новый Структура;
ПредставлениеОшибки.Вставить("Ссылка", "");
ПредставлениеОшибки.Вставить("Причина", "");
ПредставлениеОшибки.Вставить("Решение", "");
ПредставлениеОшибки.Вставить("СпособУстранения", "");
Возврат ПредставлениеОшибки;
КонецФункции
Функция ПредставлениеКлассификатораДляХранения()
ПредставлениеКлассификатора = Новый ТаблицаЗначений;
ПредставлениеКлассификатора.Колонки.Добавить("ТекстОшибки",
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
ПредставлениеКлассификатора.Колонки.Добавить("Причина",
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
ПредставлениеКлассификатора.Колонки.Добавить("Решение",
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
ПредставлениеКлассификатора.Колонки.Добавить("СпособУстранения",
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
ПредставлениеКлассификатора.Колонки.Добавить("Ссылка",
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
Возврат ПредставлениеКлассификатора;
КонецФункции
Процедура ОбновитьКлассификатор()
ДатаПоследнегоОбновления = Константы.ДатаПоследнегоОбновленияКлассификатораОшибок.Получить();
Если ЗначениеЗаполнено(ДатаПоследнегоОбновления)
И ТекущаяУниверсальнаяДата() - ДатаПоследнегоОбновления < 24*3600 Тогда
Возврат;
КонецЕсли;
АдресКлассификатора = АдресКлассификатораОшибок();
ДанныеКлассификатора = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
РезультатЗагрузки = МодульПолучениеФайловИзИнтернета.СкачатьФайлВоВременноеХранилище(
АдресКлассификатора.Протокол + АдресКлассификатора.АдресСервера + "/" + АдресКлассификатора.АдресРесурса);
Если РезультатЗагрузки.Статус Тогда
ДанныеКлассификатора = ПолучитьИзВременногоХранилища(РезультатЗагрузки.Путь);
УдалитьИзВременногоХранилища(РезультатЗагрузки.Путь);
КонецЕсли;
Иначе
Соединение = Новый HTTPСоединение(АдресКлассификатора.АдресСервера,,,,, 20);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Charset", "UTF-8");
Ответ = Соединение.Получить(
Новый HTTPЗапрос(АдресКлассификатора.АдресРесурса, Заголовки));
Если Ответ.КодСостояния = 200 Тогда
ДанныеКлассификатора = Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;
КонецЕсли;
Если ДанныеКлассификатора = Неопределено Тогда
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Электронная подпись.Обновление классификатора ошибок'",
ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,,,
НСтр("ru = 'Не удалось обновить классификатор ошибок криптографии.'"));
Возврат;
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
Если ТипЗнч(ДанныеКлассификатора) = Тип("Строка") Тогда
ЧтениеJSON.УстановитьСтроку(ДанныеКлассификатора);
Иначе
ЧтениеJSON.ОткрытьПоток(ДанныеКлассификатора.ОткрытьПотокДляЧтения());
КонецЕсли;
КлассификаторОшибок = ПрочитатьJSON(ЧтениеJSON,, "LastChangeDate");
ЧтениеJSON.Закрыть();
ПредставлениеКлассификатора = ПредставлениеКлассификатораДляХранения();
Для Каждого ИзвестнаяОшибка Из КлассификаторОшибок.Classifier Цикл
НоваяОшибка = ПредставлениеКлассификатора.Добавить();
НоваяОшибка.Ссылка = ИзвестнаяОшибка.Anchor;
НоваяОшибка.Причина = ИзвестнаяОшибка.Reason;
НоваяОшибка.Решение = ИзвестнаяОшибка.Solution;
НоваяОшибка.ТекстОшибки = ИзвестнаяОшибка.ErrorText;
НоваяОшибка.СпособУстранения = ИзвестнаяОшибка.RepairMethods;
КонецЦикла;
Константы.КлассификаторОшибокКриптографии.Установить(
Новый ХранилищеЗначения(ПредставлениеКлассификатора, Новый СжатиеДанных(9)));
Константы.ДатаПоследнегоОбновленияКлассификатораОшибок.Установить(
ТекущаяУниверсальнаяДата());
КонецПроцедуры
#КонецОбласти
#Область ДиагностикаЭлектроннойПодписи
Процедура ДополнитьТехническойИнформациейОСервере(ТехническаяИнформация) Экспорт
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере()
Или ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере() Тогда
ТехническаяИнформация = ТехническаяИнформация + Символы.ПС
+ НСтр("ru = 'Электронная подпись на сервере не используется.'");
Иначе
ТехническаяИнформация = ТехническаяИнформация
+ Символы.ПС + ТехническаяИнформацияОКомпьютере()
+ Символы.ПС + ТехническаяИнформацияОПрограммах();
КонецЕсли;
ТехническаяИнформация = ТехническаяИнформация
+ Символы.ПС + ТехническаяИнформацияОВерсияхПодсистем()
+ Символы.ПС + НСтр("ru = 'Режим работы информационной базы'") + " - "
+ Формат(ОбщегоНазначения.ИнформационнаяБазаФайловая(), НСтр("ru = 'БЛ=Клиент-серверный; БИ=Файловый'"))
+ Символы.ПС + НСтр("ru = 'Расширения:'") + Символы.ПС + ТехническаяИнформацияОРасширениях();
КонецПроцедуры
Функция ТехническаяИнформацияОКомпьютере()
Возврат НСтр("ru = 'Сервер:'") + Символы.ПС
+ ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностическаяИнформацияОКомпьютере();
КонецФункции
Функция ТехническаяИнформацияОПрограммах()
ИспользуемыеПрограммы = ЭлектроннаяПодписьСлужебныйВызовСервера.ИспользуемыеПрограммы();
ДиагностическаяИнформация = НСтр("ru = 'Программы на сервере:'") + Символы.ПС;
Для Каждого Программа Из ИспользуемыеПрограммы Цикл
ОписаниеОшибки = "";
МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии(
"", Ложь, ОписаниеОшибки, Программа.Ссылка);
ДиагностическаяИнформация = ДиагностическаяИнформация
+ Программа.Представление + " - "
+ ?(ТипЗнч(МенеджерКриптографии) = Тип("МенеджерКриптографии"),
"OK", НСтр("ru = 'Ошибка'") + " : " + ОписаниеОшибки) + Символы.ПС;
КонецЦикла;
Возврат ДиагностическаяИнформация;
КонецФункции
Функция ТехническаяИнформацияОВерсияхПодсистем()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВерсииПодсистем.ИмяПодсистемы КАК ИмяПодсистемы,
| ВерсииПодсистем.Версия КАК Версия
|ИЗ
| РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем";
ВерсииПодсистем = Запрос.Выполнить().Выбрать();
ДиагностическаяИнформация = НСтр("ru = 'Версии подсистем'") + Символы.ПС;
Пока ВерсииПодсистем.Следующий() Цикл
ДиагностическаяИнформация = ДиагностическаяИнформация
+ ВерсииПодсистем.ИмяПодсистемы + " - "
+ ВерсииПодсистем.Версия + Символы.ПС;
КонецЦикла;
Возврат ДиагностическаяИнформация;
КонецФункции
Функция ТехническаяИнформацияОРасширениях()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ПредставлениеРасширений = "";
Расширения = РасширенияКонфигурации.Получить();
Для Каждого Расширение Из Расширения Цикл
ПредставлениеРасширений = ПредставлениеРасширений
+ Расширение.Имя + " - " + Расширение.Синоним + " - "
+ Формат(Расширение.Активно, НСтр("ru = 'БЛ=Включено; БИ=Отключено'")) + Символы.ПС;
КонецЦикла;
Возврат ПредставлениеРасширений;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -30,7 +30,10 @@
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("ПолучениеСертификатов", Ложь, Ошибка);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("ПолучениеСертификатов", ПараметрыСоздания);
Ошибка = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии <> Неопределено Тогда
МассивСертификатов = МенеджерКриптографии.ПолучитьХранилищеСертификатов(
@@ -41,6 +44,7 @@
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса(), ПараметрыДобавленияСвойств);
КонецЕсли;
КонецЕсли;
Если ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
@@ -183,9 +187,12 @@
// Только для внутреннего использования.
Функция ВыполнитьНаСторонеСервера(Знач Параметры, АдресРезультата, ОперацияНачалась, ОшибкаНаСервере) Экспорт
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Параметры.Операция,
Ложь, ОшибкаНаСервере, Параметры.СертификатПрограмма);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Параметры.СертификатПрограмма;
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Параметры.Операция, ПараметрыСоздания);
ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
Если МенеджерКриптографии = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
@@ -583,4 +590,94 @@
КонецФункции
#Область ДиагностикаЭлектроннойПодписи
Функция ИспользуемыеПрограммы() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПрограммыЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка,
| ПрограммыЭлектроннойПодписиИШифрования.Представление КАК Представление
|ИЗ
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования
|ГДЕ
| НЕ ПрограммыЭлектроннойПодписиИШифрования.ПометкаУдаления
| И НЕ ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса";
Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
КонецФункции
Функция АдресАрхиваТехническойИнформации(СопроводительныйТекст, ДополнительныеФайлы = Неопределено) Экспорт
ЭлектроннаяПодписьСлужебный.ДополнитьТехническойИнформациейОСервере(СопроводительныйТекст);
АрхивИнформации = Новый ЗаписьZipФайла();
ВременныеФайлы = Новый Массив;
ВременныеФайлы.Добавить(ПолучитьИмяВременногоФайла("txt"));
ТекстСостояния = Новый ТекстовыйДокумент;
ТекстСостояния.УстановитьТекст(СопроводительныйТекст);
ВременныйКаталог = ФайловаяСистема.СоздатьВременныйКаталог();
Если ДополнительныеФайлы <> Неопределено Тогда
Если ТипЗнч(ДополнительныеФайлы) = Тип("Массив") Тогда
Для Каждого ДополнительныйФайл Из ДополнительныеФайлы Цикл
ДобавитьФайлВАрхив(АрхивИнформации, ДополнительныйФайл,
ТекстСостояния, ВременныйКаталог, ВременныеФайлы);
КонецЦикла;
Иначе
ДобавитьФайлВАрхив(АрхивИнформации, ДополнительныеФайлы,
ТекстСостояния, ВременныйКаталог, ВременныеФайлы);
КонецЕсли;
КонецЕсли;
ТекстСостояния.Записать(ВременныеФайлы[0]);
АрхивИнформации.Добавить(ВременныеФайлы[0]);
АдресАрхива = ПоместитьВоВременноеХранилище(АрхивИнформации.ПолучитьДвоичныеДанные());
Для Каждого ВременныйФайл Из ВременныеФайлы Цикл
ФайловаяСистема.УдалитьВременныйФайл(ВременныйФайл);
КонецЦикла;
ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог);
Возврат АдресАрхива;
КонецФункции
Процедура ДобавитьФайлВАрхив(Архив, ИнформацияОФайле, ТекстСостояния, ВременныйКаталог, ВременныеФайлы)
Разделитель = ПолучитьРазделительПути();
ВременныйФайл = ВременныйКаталог
+ ?(СтрЗаканчиваетсяНа(ВременныйКаталог, Разделитель), "", Разделитель)
+ ИнформацияОФайле.Имя;
ВременныеФайлы.Добавить(ВременныйФайл);
Если ТипЗнч(ИнформацияОФайле.Данные) = Тип("Строка") Тогда
Если ЭтоАдресВременногоХранилища(ИнформацияОФайле.Данные) Тогда
ДанныеФайла = ПолучитьИзВременногоХранилища(ИнформацияОФайле.Данные);
Иначе
ТекстСостояния.ДобавитьСтроку(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось добавить %1. Данные файла не являются двоичными данными или адресом во временном хранилище.'"),
ИнформацияОФайле.Имя));
КонецЕсли;
Иначе
ДанныеФайла = ИнформацияОФайле.Данные;
КонецЕсли;
ИнформацияОФайле.Данные.Записать(ВременныйФайл);
Архив.Добавить(ВременныйФайл);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -471,9 +471,15 @@
Если ТипЗнч(Программа) = Тип("МенеджерКриптографии") Тогда
ПолучитьСертификатПоОтпечаткуПослеСозданияМенеджераКриптографии(Программа, Контекст);
Иначе
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку;
ПараметрыСоздания.Программа = Программа;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПолучитьСертификатПоОтпечаткуПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПолучениеСертификатов", ПоказатьОшибку, Программа);
"ПолучениеСертификатов", ПараметрыСоздания);
КонецЕсли;
КонецПроцедуры
@@ -674,11 +680,20 @@
Контекст.Вставить("НаДату", НаДату);
Контекст.Вставить("ПроверятьНаСервере",
ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере());
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись));
Если МенеджерКриптографии = Неопределено Тогда
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку
И Не Контекст.ПроверятьНаСервере
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПроверитьПодписьПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПроверкаПодписи", ПоказатьОшибку И Не Контекст.ПроверятьНаСервере И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса());
"ПроверкаПодписи", ПараметрыСоздания);
Иначе
ПроверитьПодписьПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст);
КонецЕсли;
@@ -979,13 +994,45 @@
// Продолжение процедуры ПроверитьСертификат.
Процедура ПроверитьСертификатНаКлиенте(Контекст)
Если ТипЗнч(Контекст.Сертификат) = Тип("СертификатКриптографии") Тогда
Контекст.Сертификат.НачатьВыгрузку(Новый ОписаниеОповещения(
"ПроверитьСертификатПослеОпределенияАлгоритмаПодписания", ЭтотОбъект, Контекст));
Иначе
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Контекст.Сертификат));
ПродолжитьПроверкуСертификатаНаКлиенте(Контекст);
КонецЕсли;
КонецПроцедуры
// Продолжение процедуры ПроверитьСертификат.
Процедура ПроверитьСертификатПослеОпределенияАлгоритмаПодписания(ДанныеСертификата, Контекст) Экспорт
Контекст.Вставить("АлгоритмПодписи",
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Контекст.Сертификат));
ПродолжитьПроверкуСертификатаНаКлиенте(Контекст);
КонецПроцедуры
// Продолжение процедуры ПроверитьСертификат.
Процедура ПродолжитьПроверкуСертификатаНаКлиенте(Контекст)
Если Контекст.МенеджерКриптографии = Неопределено Тогда
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Контекст.ПоказатьОшибку
И Контекст.ОписаниеОшибкиНаСервере = Неопределено
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПроверитьСертификатПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПроверкаСертификата",
Контекст.ПоказатьОшибку
И Контекст.ОписаниеОшибкиНаСервере = Неопределено
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса());
"ПроверкаСертификата", ПараметрыСоздания);
Иначе
Если Контекст.МенеджерКриптографии = "СервисКриптографии" Тогда
ПроверитьСертификатВМоделиСервиса(Контекст);
@@ -1151,6 +1198,37 @@
КонецПроцедуры
// Возвращает дополнительные параметры создания менеджера криптографии.
//
// Возвращаемое значение:
// Структура - с полями:
// * ПоказатьОшибку - Булево - если Истина, тогда будет открыта форма ОшибкаОбращенияКПрограмме
// из которой можно перейти к списку установленных программ
// в форму персональных настроек на страницу "Установленные программы",
// в которой можно увидеть почему программу не удалось задействовать,
// а также открыть инструкцию по установке.
// - Неопределено - вернуть все ошибки обращения к программам (см. выше).
//
// * Программа - Неопределено - возвращает менеджер криптографии первой
// программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии.
// * ИнтерактивныйРежим - Булево - если Истина, тогда менеджер криптографии будет создан
// в режиме использования интерактивного режима криптографии
// (установка свойства ПарольДоступаКЗакрытомуКлючу будет запрещена).
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
//
Функция ПараметрыСозданияМенеджераКриптографии() Экспорт
ПараметрыСозданияМенеджераКриптографии = Новый Структура;
ПараметрыСозданияМенеджераКриптографии.Вставить("ПоказатьОшибку", Ложь);
ПараметрыСозданияМенеджераКриптографии.Вставить("Программа", Неопределено);
ПараметрыСозданияМенеджераКриптографии.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыСозданияМенеджераКриптографии.Вставить("АлгоритмПодписи", "");
Возврат ПараметрыСозданияМенеджераКриптографии;
КонецФункции
// Создает и возвращает менеджер криптографии (на клиенте) для указанной программы.
//
@@ -1175,30 +1253,25 @@
// Операция - Строка - если не пустая, то должна содержать одну из строк, которые определяют
// операцию для вставки в описание ошибки: Подписание, ПроверкаПодписи, Шифрование,
// Расшифровка, ПроверкаСертификата, ПолучениеСертификатов.
//
// ПоказатьОшибку - Булево - если Истина, тогда будет открыта форма ОшибкаОбращенияКПрограмме
// из которой можно перейти к списку установленных программ
// в форму персональных настроек на страницу "Установленные программы",
// в которой можно увидеть почему программу не удалось задействовать,
// а также открыть инструкцию по установке.
// - Неопределено - вернуть все ошибки обращения к программам (см. выше).
//
// Программа - Неопределено - возвращает менеджер криптографии первой
// программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии.
// ИнтерактивныйРежим - Булево - если Истина, тогда менеджер криптографии будет создан
// в режиме использования интерактивного режима криптографии
// (установка свойства ПарольДоступаКЗакрытомуКлючу будет запрещена).
//
Процедура СоздатьМенеджерКриптографии(Оповещение, Операция, ПоказатьОшибку = Истина, Программа = Неопределено, ИнтерактивныйРежим = Ложь) Экспорт
// ПараметрыСозданияМенеджераКриптографии - см. ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии.
Процедура СоздатьМенеджерКриптографии(Оповещение, Операция, ПараметрыСозданияМенеджераКриптографии = Неопределено) Экспорт
Если ПараметрыСозданияМенеджераКриптографии = Неопределено Тогда
ПараметрыСозданияМенеджераКриптографии = ПараметрыСозданияМенеджераКриптографии();
КонецЕсли;
Контекст = Новый Структура;
Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("Операция", Операция);
Контекст.Вставить("ПоказатьОшибку", ПоказатьОшибку);
Контекст.Вставить("Программа", Программа);
Контекст.Вставить("ИнтерактивныйРежим", ИнтерактивныйРежим);
Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("Программа",
ПараметрыСозданияМенеджераКриптографии.Программа);
Контекст.Вставить("ПоказатьОшибку",
ПараметрыСозданияМенеджераКриптографии.ПоказатьОшибку);
Контекст.Вставить("АлгоритмПодписи",
ПараметрыСозданияМенеджераКриптографии.АлгоритмПодписи);
Контекст.Вставить("ИнтерактивныйРежим",
ПараметрыСозданияМенеджераКриптографии.ИнтерактивныйРежим);
НачатьПодключениеРасширенияРаботыСКриптографией(Новый ОписаниеОповещения(
"СоздатьМенеджерКриптографииПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст));
@@ -1278,7 +1351,8 @@
СвойстваОшибки.Вставить("Ошибки", Новый Массив);
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Контекст.Программа, СвойстваОшибки.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм);
Контекст.Программа, СвойстваОшибки.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм,
Контекст.АлгоритмПодписи);
Контекст.Вставить("Менеджер", Неопределено);
@@ -1608,9 +1682,12 @@
Контекст.Вставить("ТолькоОтпечатки", ТолькоОтпечатки);
Контекст.Вставить("Результат", Результат);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = ПоказатьОшибку;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПолучитьСвойстваСертификатовНаКлиентеПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПолучениеСертификатов", ПоказатьОшибку);
"ПолучениеСертификатов", ПараметрыСоздания);
КонецПроцедуры
@@ -2367,11 +2444,19 @@
Если Контекст.Подключено Тогда
Описание = Новый ОписаниеПередаваемогоФайла(СоставИмениФайлаПодписи.Имя, Контекст.ОписаниеПодписи.АдресПодписи);
Контекст.ПолучаемыеФайлы.Добавить(Описание);
СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи(Неопределено, Контекст);
Иначе
// Сохранение Файла из базы данных на диск.
ПолучитьФайл(Контекст.ОписаниеПодписи.АдресПодписи, СоставИмениФайлаПодписи.Имя);
ФайловаяСистемаКлиент.СохранитьФайл(
Новый ОписаниеОповещения("СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи", ЭтотОбъект, Контекст),
Контекст.ОписаниеПодписи.АдресПодписи, СоставИмениФайлаПодписи.Имя);
КонецЕсли;
КонецПроцедуры
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
Процедура СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи(Результат, Контекст) Экспорт
Если Контекст.СохранятьСертификатВместеСПодписью Тогда
СохранитьДанныеСертификатаВместеСПодписьюЦиклНачало(Контекст);
Иначе
@@ -2441,11 +2526,19 @@
Если Контекст.Подключено Тогда
Описание = Новый ОписаниеПередаваемогоФайла(СоставИмениФайлаСертификата.Имя, Контекст.ОписаниеПодписи.АдресСертификата);
Контекст.ПолучаемыеФайлы.Добавить(Описание);
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
Иначе
// Сохранение Файла из базы данных на диск.
ПолучитьФайл(Контекст.ОписаниеПодписи.АдресСертификата, СоставИмениФайлаСертификата.Имя);
ФайловаяСистемаКлиент.СохранитьФайл(
Новый ОписаниеОповещения("СохранитьДанныеСертификатаВместеСПодписьюЦиклПослеСохраненияСертификата", ЭтотОбъект, Контекст),
Контекст.ОписаниеПодписи.АдресСертификата, СоставИмениФайлаСертификата.Имя);
КонецЕсли;
КонецПроцедуры
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
Процедура СохранитьДанныеСертификатаВместеСПодписьюЦиклПослеСохраненияСертификата(Результат, Контекст) Экспорт
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
КонецПроцедуры
@@ -2703,9 +2796,12 @@
Контекст.ОшибкаНаСервере = Форма.МенеджерКриптографииНаСервереОписаниеОшибки;
КонецЕсли;
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПродолжитьОткрытиеНачалоПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПолучениеСертификатов", Неопределено);
"ПолучениеСертификатов", ПараметрыСоздания);
КонецПроцедуры
@@ -2733,9 +2829,12 @@
Контекст = Новый Структура;
Контекст.Вставить("Оповещение", Оповещение);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Ложь;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПолучитьОтпечаткиСертификатовНаКлиентеПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПолучениеСертификатов", Ложь);
"ПолучениеСертификатов", ПараметрыСоздания);
КонецПроцедуры
@@ -2829,8 +2928,7 @@
Элементы = Форма.Элементы;
Если Элементы.Найти("Страницы") = Неопределено
Или Элементы.Найти("СтраницаПояснениеУсиленногоПароля") = Неопределено
Или Элементы.Найти("СтраницаЗапоминаниеПароля") = Неопределено Тогда
Или Элементы.Найти("СтраницаПояснениеУсиленногоПароля") = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -2849,17 +2947,20 @@
|который нужно будет ввести после получения.'");
ИначеЕсли ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча Тогда
ЭлементПароль.Доступность = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаПояснениеУсиленногоПароля;
Элементы.ПояснениеУсиленногоПароля.Подсказка =
НСтр("ru = 'Пароль запрашивает программа электронной подписи, а не программа 1С:Предприятие,
|так как для выбранного сертификата указана усиленная защита закрытого ключа.'");
Иначе
Если ДополнительныеПараметры.ПарольУстановленПрограммно Тогда
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаПояснениеУстановленногоПароля;
ПояснениеПароля = ДополнительныеПараметры.ПояснениеПароля;
Элементы.ПояснениеУстановленногоПароля.Заголовок = ПояснениеПароля.ТекстПояснения;
Элементы.ПояснениеУстановленногоПароля.Гиперссылка = ПояснениеПароля.ПояснениеГиперссылка;
@@ -2867,10 +2968,18 @@
ЭлементПояснениеУстановленногоПароляРасширеннаяПодсказка.Заголовок = ПояснениеПароля.ТекстПодсказки;
СвойстваПароля.ОбработкаПоясненияПароля = ПояснениеПароля.ОбработкаДействия;
ЭлементПароль.Доступность = Истина;
Иначе
ЭлементПароль.Доступность = Не ДополнительныеПараметры.ПарольВПамяти;
Если Элементы.Найти("СтраницаЗапоминаниеПароля") = Неопределено Тогда
Элементы.Страницы.Видимость = Ложь;
Иначе
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаЗапоминаниеПароля;
ЭлементПароль.Доступность = Не ДополнительныеПараметры.ПарольВПамяти;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ДополнительныеПараметры.Вставить("ПарольУказан",
@@ -2997,9 +3106,16 @@
Контекст.Вставить("МенеджерКриптографии", "СервисКриптографии");
ВыполнитьНаСторонеВМоделиСервиса(Null, Контекст);
Иначе
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.Программа = Контекст.Форма.СертификатПрограмма;
ПараметрыСоздания.ИнтерактивныйРежим = Контекст.Форма.СертификатУсиленнаяЗащитаЗакрытогоКлюча;
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ВыполнитьНаСторонеПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
Null, Неопределено, Контекст.Форма.СертификатПрограмма, Контекст.Форма.СертификатУсиленнаяЗащитаЗакрытогоКлюча);
Операция, ПараметрыСоздания);
КонецЕсли;
Иначе
ВыполнитьНаСторонеЦиклЗапуск(Контекст);
@@ -4113,14 +4229,14 @@
КонецПроцедуры
Процедура Подписание_ПослеВыполненияCMSSign(SignatureValue, Параметры, Контекст) Экспорт
Процедура Подписание_ПослеВыполненияCMSSign(АтрибутSignatureValue, Параметры, Контекст) Экспорт
Если Не ЗначениеЗаполнено(SignatureValue) Тогда
Если Не ЗначениеЗаполнено(АтрибутSignatureValue) Тогда
НачатьПолучениеТекстаОшибки(НСтр("ru = 'При выполнении метода CMSSign произошла ошибка:'"), Контекст);
Возврат;
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, SignatureValue);
ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, АтрибутSignatureValue);
КонецПроцедуры
@@ -4268,14 +4384,14 @@
КонецПроцедуры
Процедура Подписание_ПослеВыполненияHash_ПодписываемыйТег(DigestValue, Параметры, Контекст) Экспорт
Процедура Подписание_ПослеВыполненияHash_ПодписываемыйТег(АтрибутDigestValue, Параметры, Контекст) Экспорт
Если DigestValue = Неопределено Тогда
Если АтрибутDigestValue = Неопределено Тогда
НачатьПолучениеТекстаОшибки(НСтр("ru = 'При выполнении метода Hash произошла ошибка:'"), Контекст);
Возврат;
КонецЕсли;
Контекст.КонвертSOAP = СтрЗаменить(Контекст.КонвертSOAP, "%DigestValue%", DigestValue);
Контекст.КонвертSOAP = СтрЗаменить(Контекст.КонвертSOAP, "%DigestValue%", АтрибутDigestValue);
Попытка
@@ -4333,14 +4449,14 @@
КонецПроцедуры
Процедура Подписание_ПослеВыполненияSign(SignatureValue, Параметры, Контекст) Экспорт
Процедура Подписание_ПослеВыполненияSign(АтрибутSignatureValue, Параметры, Контекст) Экспорт
Если SignatureValue = Неопределено Тогда
Если АтрибутSignatureValue = Неопределено Тогда
НачатьПолучениеТекстаОшибки(НСтр("ru = 'При выполнении метода Sign произошла ошибка:'"), Контекст);
Возврат;
КонецЕсли;
КонвертSOAP = СтрЗаменить(Контекст.КонвертSOAP, "%SignatureValue%", SignatureValue);
КонвертSOAP = СтрЗаменить(Контекст.КонвертSOAP, "%SignatureValue%", АтрибутSignatureValue);
ВыполнитьОбработкуОповещения(Контекст.ОповещенияПриЗавершении.Успех, КонвертSOAP);
КонецПроцедуры
@@ -4437,7 +4553,7 @@
Возврат;
КонецЕсли;
SignatureValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "SignatureValue");
АтрибутSignatureValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "SignatureValue");
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "wsse:BinarySecurityToken");
Попытка
@@ -4449,7 +4565,7 @@
Контекст.ОбъектКомпоненты.НачатьВызовVerifySign(
ОписаниеОповещения,
КаноникализированныйТекстXMLSignedInfo,
SignatureValue,
АтрибутSignatureValue,
СертификатКриптографииBase64,
Контекст.ТипКриптопровайдера);
@@ -4567,9 +4683,9 @@
Возврат;
КонецЕсли;
DigestValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "DigestValue");
АтрибутDigestValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "DigestValue");
ПодписьВерна = (DigestValue = HashValue);
ПодписьВерна = (АтрибутDigestValue = HashValue);
Если Не ПодписьВерна Тогда
@@ -5130,7 +5246,15 @@
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", "");
Контекст.ОшибкаНаКлиенте.Вставить("Ошибки", Новый Массив);
Контекст.Вставить("ОписанияПрограмм", ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм);
Если Не Контекст.Свойство("АлгоритмПодписи") Тогда
Контекст.Вставить("АлгоритмПодписи", "");
КонецЕсли;
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
Неопределено, Контекст.ОшибкаНаКлиенте.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм,
Контекст.АлгоритмПодписи);
Контекст.Вставить("ОписанияПрограмм", ОписанияПрограмм);
Контекст.Вставить("ОписаниеПрограммы", Неопределено);
Контекст.Вставить("Индекс", -1);
@@ -5153,9 +5277,15 @@
Контекст.Индекс = Контекст.Индекс + 1;
Контекст.ОписаниеПрограммы = Контекст.ОписанияПрограмм[Контекст.Индекс];
СоздатьМенеджерКриптографии(Новый ОписаниеОповещения("ДобавитьСертификатЦиклПослеСозданияМенеджераКриптографии",
ЭтотОбъект, Контекст), "", Неопределено, Контекст.ОписаниеПрограммы.Ссылка,
Контекст.ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.Программа = Контекст.ОписаниеПрограммы.Ссылка;
ПараметрыСоздания.ИнтерактивныйРежим = Контекст.ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча;
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
СоздатьМенеджерКриптографии(
Новый ОписаниеОповещения("ДобавитьСертификатЦиклПослеСозданияМенеджераКриптографии",ЭтотОбъект, Контекст),
"", ПараметрыСоздания);
КонецПроцедуры
@@ -5218,19 +5348,23 @@
Процедура ДобавитьСертификатЦиклПослеОшибкиШифрования(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
СтандартнаяОбработка = Ложь;
ПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку шифрования по причине:
|%2'"),
Контекст.ОписаниеПрограммы.Наименование,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
ТекущаяОшибка.Вставить("Инструкция", Истина);
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
Контекст.ОшибкаНаКлиенте.Ошибки.Добавить(ТекущаяОшибка);
Контекст.ОшибкаНаКлиенте.ОписаниеОшибки = Контекст.ОшибкаНаКлиенте.ОписаниеОшибки + Символы.ПС + Символы.ПС
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку шифрования с помощью программы %1 по причине:
|%2'"), Контекст.ОписаниеПрограммы.Наименование, ПредставлениеОшибки);
Контекст.ОшибкаНаКлиенте.ОписаниеОшибки = Контекст.ОшибкаНаКлиенте.ОписаниеОшибки
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
ДобавитьСертификатЦиклНачало(Контекст);
@@ -5369,8 +5503,15 @@
//
Процедура ЗаполнитьОшибкуПодписания(Ошибка, ОписаниеОшибки, ОписаниеПрограммы, ПредставлениеОшибки, ПустыеДанные)
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку подписания по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
Если Не ПустыеДанные Тогда
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
@@ -5379,11 +5520,8 @@
Ошибка.Ошибки.Добавить(ТекущаяОшибка);
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку подписания с помощью программы %1 по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
КонецПроцедуры
@@ -5393,21 +5531,152 @@
//
Процедура ЗаполнитьОшибкуРасшифровки(Ошибка, ОписаниеОшибки, ОписаниеПрограммы, ПредставлениеОшибки)
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1:
|Не удалось пройти проверку расшифровки по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
ТекущаяОшибка = Новый Структура;
ТекущаяОшибка.Вставить("Описание", ПредставлениеОшибки);
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
ТекущаяОшибка.Вставить("Инструкция", Истина);
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
Ошибка.Ошибки.Добавить(ТекущаяОшибка);
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки + Символы.ПС + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось пройти проверку расшифровки с помощью программы %1 по причине:
|%2'"),
ОписаниеПрограммы.Наименование,
ПредставлениеОшибки);
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
КонецПроцедуры
#КонецОбласти
#Область ДиагностикаЭлектроннойПодписи
// Формирует архив, содержащий техническую информацию, и предлагает сохранить его на диск.
//
// Параметры:
// Причина - Строка - причина сбора технической информации.
// ОбработчикЗавершения - ОписаниеОповещения, Неопределено - содержит описание процедуры,
// которая будет вызвана после сохранения архива на диск со следующими параметрами:
// * АрхивСохранен - Булево - результат сохранения архива на диск.
// * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта
// ОписаниеОповещения.
// ДополнительныеФайлы - Структура, Массив - дополнительные данные, которые необходимо поместить
// в архив, или массив таких данных. Поля структуры:
// * Имя - Строка - имя файла с расширением.
// * Данные - ДвоичныеДанные, Строка - данные файла или адрес данных во временном хранилище.
//
Процедура СформироватьТехническуюИнформацию(Причина,
ОбработчикЗавершения = Неопределено,
ДополнительныеФайлы = Неопределено) Экспорт
СопроводительныйТекст = НСтр("ru = 'Причина'")
+ ":" + Символы.ПС + Причина + Символы.ПС + НСтр("ru = 'Информация о клиентском компьютере:'")
+ Символы.ПС + ДиагностическаяИнформацияОКомпьютере()
+ Символы.ПС;
Контекст = Новый Структура;
Контекст.Вставить("ДополнительныеФайлы", ДополнительныеФайлы);
Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения);
Контекст.Вставить("СопроводительныйТекст", СопроводительныйТекст);
ДиагностическаяИнформацияОПрограммах(
Новый ОписаниеОповещения("ПослеСбораТехническойИнформации", ЭтотОбъект, Контекст));
КонецПроцедуры
Функция ДиагностическаяИнформацияОКомпьютере()
Возврат НСтр("ru = 'Клиент:'") + Символы.ПС
+ ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностическаяИнформацияОКомпьютере();
КонецФункции
Функция ДиагностическаяИнформацияОПрограммах(Оповещение)
Заголовок = НСтр("ru = 'Программы на клиенте:'") + Символы.ПС;
ИспользуемыеПрограммы = ЭлектроннаяПодписьСлужебныйВызовСервера.ИспользуемыеПрограммы();
Если ИспользуемыеПрограммы.Количество() = 0 Тогда
ВыполнитьОбработкуОповещения(Оповещение, Заголовок + НСтр("ru = 'Не используется'"));
КонецЕсли;
Контекст = Новый Структура;
Контекст.Вставить("Индекс", 0);
Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("ИспользуемыеПрограммы", ИспользуемыеПрограммы);
Контекст.Вставить("ДиагностическаяИнформация", Заголовок);
ИнформацияОПрограммахЦиклНачало(Контекст);
КонецФункции
Функция ИнформацияОПрограммахЦиклНачало(Контекст)
Оповещение = Новый ОписаниеОповещения(
"ИнформацияОПрограммахПослеСозданияМенеджераКриптографии",
ЭтотОбъект, Контекст);
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Ложь;
ПараметрыСоздания.Программа = Контекст.ИспользуемыеПрограммы[Контекст.Индекс].Ссылка;
СоздатьМенеджерКриптографии(Оповещение, "", ПараметрыСоздания);
КонецФункции
Процедура ИнформацияОПрограммахПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт
Контекст.ДиагностическаяИнформация = Контекст.ДиагностическаяИнформация
+ Контекст.ИспользуемыеПрограммы[Контекст.Индекс].Представление + " - "
+ ?(ТипЗнч(МенеджерКриптографии) = Тип("Строка"), МенеджерКриптографии, "OK")
+ Символы.ПС;
Если Контекст.Индекс = Контекст.ИспользуемыеПрограммы.Количество() - 1 Тогда
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.ДиагностическаяИнформация);
Возврат;
КонецЕсли;
Контекст.Индекс = Контекст.Индекс + 1;
ИнформацияОПрограммахЦиклНачало(Контекст);
КонецПроцедуры
Процедура ПослеСбораТехническойИнформации(ИнформацияОПрограммах, Контекст) Экспорт
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + ИнформацияОПрограммах;
ФайловаяСистемаКлиент.СохранитьФайл(Новый ОписаниеОповещения(
"СформироватьТехническуюИнформациюПослеСохраненияФайла", ЭтотОбъект, Контекст.ОбработчикЗавершения),
ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
Контекст.СопроводительныйТекст, Контекст.ДополнительныеФайлы), "service_info.zip");
КонецПроцедуры
Процедура СформироватьТехническуюИнформациюПослеСохраненияФайла(СохраненныеФайлы, ОповещениеОЗавершении) Экспорт
Если ОповещениеОЗавершении <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, СохраненныеФайлы <> Неопределено);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Процедура ПоказатьРезультатПроверкиСертификата(Сертификат, Результат, ВладелецФормы,
Заголовок = "", ОбъединятьРезультаты = "НеОбъединять", ОбработкаЗавершения = Неопределено) Экспорт
СерверныеПараметры = Новый Структура;
СерверныеПараметры.Вставить("ЗаголовокФормы", Заголовок);
СерверныеПараметры.Вставить("ПроверкаПриВыборе");
СерверныеПараметры.Вставить("ПараметрыДополнительныхПроверок");
СерверныеПараметры.Вставить("Сертификат", Сертификат);
СерверныеПараметры.Вставить("РезультатПроверки", Результат);
СерверныеПараметры.Вставить("ОбъединятьРезультаты", ОбъединятьРезультаты);
ФормаПередачаПараметров().ОткрытьНовуюФорму("ПроверкаСертификата",
СерверныеПараметры, Новый Структура, ОбработкаЗавершения, ВладелецФормы);
КонецПроцедуры
#КонецОбласти
@@ -64,23 +64,54 @@
КонецФункции
// Только для внутреннего использования.
Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм) Экспорт
Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм, АлгоритмПодписи = "") Экспорт
Если Программа <> Неопределено Тогда
ПрограммаНеНайдена = Истина;
Для каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
Если ОписаниеПрограммы.Ссылка = Программа Тогда
ПрограммаНеНайдена = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПрограммаНеНайдена Тогда
МенеджерКриптографииДобавитьОшибку(Ошибки, Программа,
НСтр("ru = 'Не предусмотрена для использования.'"), Истина);
Возврат Неопределено;
КонецЕсли;
ОписанияПрограмм = Новый Массив;
ОписанияПрограмм.Добавить(ОписаниеПрограммы);
ИначеЕсли Не ПустаяСтрока(АлгоритмПодписи) Тогда
Если СтрНайти(АлгоритмПодписи, ",") > 0 Тогда
ВозможныеАлгоритмы = СтрРазделить(АлгоритмПодписи, ",", Ложь);
Для СчетчикАлгоритмов = 0 По ВозможныеАлгоритмы.Количество() - 1 Цикл
ВозможныеАлгоритмы[СчетчикАлгоритмов] = СокрЛП(ВозможныеАлгоритмы[СчетчикАлгоритмов]);
КонецЦикла;
Иначе
ВозможныеАлгоритмы = Новый Массив;
ВозможныеАлгоритмы.Добавить(СокрЛП(АлгоритмПодписи));
КонецЕсли;
ПрограммыСУказаннымАлгоритмом = Новый Массив;
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
Если ВозможныеАлгоритмы.Найти(ОписаниеПрограммы.АлгоритмПодписи) <> Неопределено Тогда
ПрограммыСУказаннымАлгоритмом.Добавить(ОписаниеПрограммы);
КонецЕсли;
КонецЦикла;
Возврат ПрограммыСУказаннымАлгоритмом;
КонецЕсли;
Возврат ОписанияПрограмм;
@@ -984,4 +1015,177 @@
КонецФункции
// Возвращает информацию об используемом компьютере.
//
// Возвращаемое значение:
// Строка - Информация о компьютере.
//
Функция ДиагностическаяИнформацияОКомпьютере() Экспорт
СисИнфо = Новый СистемнаяИнформация;
Возврат НСтр("ru = 'Операционная система:'") + СисИнфо.ВерсияОС
+ Символы.ПС + НСтр("ru = 'Версия приложения:'") + СисИнфо.ВерсияПриложения
+ Символы.ПС + НСтр("ru = 'Тип платформы:'") + СисИнфо.ТипПлатформы;
КонецФункции
#Область АлгоритмыПодписи
Функция АлгоритмСформированнойПодписи(ДанныеПодписи) Экспорт
Возврат АлгоритмПодписи(ДанныеПодписи, Ложь);
КонецФункции
Функция АлгоритмПодписиСертификата(ДанныеСертификата) Экспорт
Возврат АлгоритмПодписи(ДанныеСертификата, Истина);
КонецФункции
Функция АлгоритмПодписи(Данные, ЭтоДанныеСертификата = Ложь)
Если ТипЗнч(Данные) = Тип("Строка")
И ЭтоАдресВременногоХранилища(Данные) Тогда
ЧтениеДанных = Новый ЧтениеДанных(
ПолучитьИзВременногоХранилища(Данные));
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
ЧтениеДанных = Новый ЧтениеДанных(Данные);
Иначе
Возврат "";
КонецЕсли;
Попытка
Если ЭтоДанныеСертификата Тогда
ПропуститьНачалоБлока(ЧтениеДанных, 3);
ПропуститьБлок(ЧтениеДанных, 2);
ПропуститьНачалоБлока(ЧтениеДанных, 1);
Иначе
ПропуститьНачалоБлока(ЧтениеДанных, 1);
ПропуститьБлок(ЧтениеДанных, 1);
ПропуститьНачалоБлока(ЧтениеДанных, 2);
ПропуститьБлок(ЧтениеДанных, 3);
ПропуститьНачалоБлока(ЧтениеДанных, 3);
ПропуститьБлок(ЧтениеДанных, 2);
ПропуститьНачалоБлока(ЧтениеДанных, 1);
КонецЕсли;
ЧтениеДанных.ПрочитатьБайт();
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
Идентификатор = Новый Массив;
БайтSID1 = ЧтениеДанных.ПрочитатьБайт();
Если БайтSID1 < 40 Тогда
SID1 = 0;
ИначеЕсли БайтSID1 < 80 Тогда
SID1 = 1;
Иначе
SID1 = 2;
КонецЕсли;
Идентификатор.Добавить(Формат(SID1, "ЧН=0"));
Идентификатор.Добавить(Формат(БайтSID1 - SID1 * 40, "ЧН=0"));
СоставноеЗначение = Новый Массив;
Для Индекс = 1 По РазмерБлока - 1 Цикл
ТекущийБайт = ЧтениеДанных.ПрочитатьБайт();
Если ТекущийБайт <= 128 Тогда
Если СоставноеЗначение.Количество() > 0 Тогда
СоставноеЗначение.Добавить(ТекущийБайт);
ЭлементИдентификатора = 0;
РазмерСоставногоЗначения = СоставноеЗначение.Количество() - 1;
Для СоставнаяЧасть = 0 По РазмерСоставногоЗначения Цикл
ЭлементИдентификатора = ЭлементИдентификатора
+ СоставноеЗначение[СоставнаяЧасть]
* Pow(128, (РазмерСоставногоЗначения - СоставнаяЧасть));
КонецЦикла;
Идентификатор.Добавить(Формат(ЭлементИдентификатора, "ЧН=0; ЧГ="));
СоставноеЗначение.Очистить();
Иначе
Идентификатор.Добавить(Формат(ТекущийБайт, "ЧН=0"));
КонецЕсли;
Иначе
СоставноеЗначение.Добавить(ТекущийБайт - 128);
КонецЕсли;
КонецЦикла;
OIDАлгоритмаПодписи = СтрСоединить(Идентификатор, ".");
ЧтениеДанных.Закрыть();
Исключение
Возврат "";
КонецПопытки;
ПредставлениеАлгоритма = ИдентификаторыАлгоритмовПодписи().Получить(OIDАлгоритмаПодписи);
Возврат ?(ПредставлениеАлгоритма = Неопределено, "", ПредставлениеАлгоритма);
КонецФункции
Процедура ПропуститьНачалоБлока(ЧтениеДанных, КоличествоИтераций)
Для СчетчикПоследовательностей = 1 По КоличествоИтераций Цикл
ЧтениеДанных.ПрочитатьБайт();
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
Если РазмерБлока > 128 Тогда
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(РазмерБлока - 128);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПропуститьБлок(ЧтениеДанных,КоличествоИтераций)
Для СчетчикДанных = 1 По КоличествоИтераций Цикл
ЧтениеДанных.ПрочитатьБайт();
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
Если РазмерБлока <= 128 Тогда
ДлинаБлокаДанных = РазмерБлока;
Иначе
Буфер = ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(РазмерБлока - 128);
ДлинаБлокаДанных = 0;
РазмерБуфера = Буфер.Размер - 1;
Для ТекущийБайт = 0 По РазмерБуфера Цикл
ДлинаБлокаДанных = ДлинаБлокаДанных
+ Буфер[ТекущийБайт] * Pow(16, 2*(РазмерБуфера - ТекущийБайт));
КонецЦикла;
КонецЕсли;
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(ДлинаБлокаДанных);
КонецЦикла;
КонецПроцедуры
Функция ИдентификаторыАлгоритмовПодписи()
ИдентификаторыАлгоритмов = Новый Соответствие;
ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.4", "GOST R 34.11-94");
ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.3", "GOST R 34.10-2001");
ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.2", "GR 34.10-2012 256, GOST 34.10-2012 256");
ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.3", "GR 34.10-2012 512, GOST 34.10-2012 512");
Возврат ИдентификаторыАлгоритмов;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -116,4 +116,10 @@
КонецФункции
Функция КлассификаторОшибокКриптографии() Экспорт
Возврат ЭлектроннаяПодписьСлужебный.КлассификаторОшибокКриптографии();
КонецФункции
#КонецОбласти
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c98250c5-b389-4695-b6fa-ac9ea412c1d1">
<name>ЖелтыйШар</name>
<synonym>
<key>ru</key>
<value>Желтый шар</value>
</synonym>
</mdclass:CommonPicture>
Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d29d2f01-b391-435e-ae51-a68d72a61398">
<name>ЗеленыйШар</name>
<synonym>
<key>ru</key>
<value>Зеленый шар</value>
</synonym>
</mdclass:CommonPicture>
Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="97911176-0822-4e4c-9190-f73b9a22828a">
<name>КрасныйШар</name>
<synonym>
<key>ru</key>
<value>Красный шар</value>
</synonym>
</mdclass:CommonPicture>
Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1185a76c-23c8-41a2-87b0-6486e9572e6a">
<name>СерыйШар</name>
<synonym>
<key>ru</key>
<value>Серый шар</value>
</synonym>
</mdclass:CommonPicture>
+16 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="676daec5-8da1-40a3-87a0-831e86c03e02">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0b82fef9-3c11-455e-b65c-64f154fd30f0">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="d91970df-1d3c-440b-b5a9-8c01c8cb79fa"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="396455d0-9368-4274-8a91-cccf82109772"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5358c603-5a8c-41fa-86f5-b1f4672c63c8"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="16cc1acf-fbf9-40cd-8bf3-e4c31b12c735"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e50690fa-0c25-418a-916e-ae6b65407955"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="d7e2acfd-9135-4fb9-b276-5b8609765306"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="17e07544-150f-4f14-badc-bcbd75f06c3c"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="1a176249-604b-4aa5-99fe-33f753f7a7e1"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="01aa29c5-8cd2-4a24-a640-b96303ded7f2"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="c518549a-f112-4117-a112-31f7d82f3fa9"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="6a54a9e2-7551-4919-a93c-05215ab171f2"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="63c384a1-9ac2-44ac-8e67-18b63866f5b8"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="cae05f0c-7f10-4c4b-bef0-4b6df14abbc2"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="a8727f43-a912-4c4e-89d3-2b98fa7a0548"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.2.306</version>
<version>3.1.2.312</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -196,6 +196,7 @@
<commonPictures>CommonPicture.ДокументПроведенКоннекторНиз</commonPictures>
<commonPictures>CommonPicture.ДополнительныеРеквизитыСведения</commonPictures>
<commonPictures>CommonPicture.ДополнительныеСведения</commonPictures>
<commonPictures>CommonPicture.ЖелтыйШар</commonPictures>
<commonPictures>CommonPicture.ЗавершитьРаботу</commonPictures>
<commonPictures>CommonPicture.ЗавершитьРедактированиеМакета</commonPictures>
<commonPictures>CommonPicture.ЗакончитьРедактированиеФайла</commonPictures>
@@ -206,6 +207,7 @@
<commonPictures>CommonPicture.ЗаставкаВнешнейОперации</commonPictures>
<commonPictures>CommonPicture.Зашифрован</commonPictures>
<commonPictures>CommonPicture.ЗаявлениеНаВыпускСертификатаКлюча</commonPictures>
<commonPictures>CommonPicture.ЗеленыйШар</commonPictures>
<commonPictures>CommonPicture.ЗнакСтоп</commonPictures>
<commonPictures>CommonPicture.ЗнакСтопЧБ</commonPictures>
<commonPictures>CommonPicture.ЗначокЗаставкиВнешнейОперации</commonPictures>
@@ -252,6 +254,7 @@
<commonPictures>CommonPicture.КонтактнаяИнформация</commonPictures>
<commonPictures>CommonPicture.КонтактнаяИнформацияНеактуально</commonPictures>
<commonPictures>CommonPicture.КонтактнаяИнформацияПерейтиПоСсылке</commonPictures>
<commonPictures>CommonPicture.КрасныйШар</commonPictures>
<commonPictures>CommonPicture.КурсивноеНачертание</commonPictures>
<commonPictures>CommonPicture.Максимум</commonPictures>
<commonPictures>CommonPicture.МенюДополнительныеФункции</commonPictures>
@@ -340,6 +343,7 @@
<commonPictures>CommonPicture.РедактироватьФайл</commonPictures>
<commonPictures>CommonPicture.РежимИспользованияПриложенияВСервисеЛокально</commonPictures>
<commonPictures>CommonPicture.СертификатКлюча</commonPictures>
<commonPictures>CommonPicture.СерыйШар</commonPictures>
<commonPictures>CommonPicture.СинхронизацияДанных</commonPictures>
<commonPictures>CommonPicture.СинхронизацияДанныхАнализДанных48</commonPictures>
<commonPictures>CommonPicture.СинхронизацияДанныхВыгрузить</commonPictures>
@@ -1387,6 +1391,7 @@
<constants>Constant.ГлавныйУзел</constants>
<constants>Constant.ДанныеДляОтложенногоОбновления</constants>
<constants>Constant.ДатаОбновленияПовторноИспользуемыхЗначенийМРО</constants>
<constants>Constant.ДатаПоследнегоОбновленияКлассификатораОшибок</constants>
<constants>Constant.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC</constants>
<constants>Constant.ДатаУведомленияОНовыхЗадачах</constants>
<constants>Constant.ДетализироватьОбновлениеИБВЖурналеРегистрации</constants>
@@ -1445,6 +1450,7 @@
<constants>Constant.ИсточникДанныхАдресногоКлассификатора</constants>
<constants>Constant.КаталогСообщенийОбменаДаннымиДляLinux</constants>
<constants>Constant.КаталогСообщенийОбменаДаннымиДляWindows</constants>
<constants>Constant.КлассификаторОшибокКриптографии</constants>
<constants>Constant.КоличествоЗамеровВПакетеЭкспорта</constants>
<constants>Constant.КоличествоПотоковОбновленияДоступа</constants>
<constants>Constant.КоличествоПотоковОбновленияИнформационнойБазы</constants>
@@ -1570,6 +1576,7 @@
<commonForms>CommonForm.ПриоритетОбновленияВОбластяхДанных</commonForms>
<commonForms>CommonForm.ПустойРабочийСтол</commonForms>
<commonForms>CommonForm.Расширения</commonForms>
<commonForms>CommonForm.РасширенноеПредставлениеОшибки</commonForms>
<commonForms>CommonForm.РегиональныеНастройки</commonForms>
<commonForms>CommonForm.РедактированиеГиперссылки</commonForms>
<commonForms>CommonForm.РедактированиеДополнительныхСведений</commonForms>
@@ -1 +1 @@
{6,1,1,83ce52c7-597d-4c21-9ef9-eff8c1bb7788,1,c28670dc-8b30-4618-a3d8-516b2b971f40,"3.1.2.306","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5916,1,0,676daec5-8da1-40a3-87a0-831e86c03e02,676daec5-8da1-40a3-87a0-831e86c03e02,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
{6,1,1,0072e637-1399-4bc6-9119-a36868ba3bc5,1,870ad238-7c3e-4ec3-9a43-588e6a54ff08,"3.1.2.312","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5923,1,0,0b82fef9-3c11-455e-b65c-64f154fd30f0,0b82fef9-3c11-455e-b65c-64f154fd30f0,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Constant xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8947286f-ba4a-44e7-b805-2f096028dc4f">
<producedTypes>
<managerType typeId="a011effc-36bf-4586-bcfb-1d478bcd27b2" valueTypeId="a98d7b5c-7e03-408b-8e40-037f84ce52c1"/>
<valueManagerType typeId="3fae557a-0c9c-47e8-ab9c-ee0f47f5ba31" valueTypeId="f3d4ced3-e66d-4cb9-852c-d5446b5fb672"/>
<valueKeyType typeId="2bb6477b-2480-4730-b55e-03ec3f4125fd" valueTypeId="78fe548b-c033-4708-8915-521981d2dd75"/>
</producedTypes>
<name>ДатаПоследнегоОбновленияКлассификатораОшибок</name>
<synonym>
<key>ru</key>
<value>Дата последнего обновления классификатора ошибок</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<useStandardCommands>true</useStandardCommands>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataLockControlMode>Managed</dataLockControlMode>
</mdclass:Constant>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Constant xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="52f3e20c-1cf7-4284-a083-6539782f4bc3">
<producedTypes>
<managerType typeId="197d901c-cc49-4219-ac31-059df6a8f69a" valueTypeId="f0252b86-765a-4558-9e34-b11ede2414ee"/>
<valueManagerType typeId="25d74e5d-8fb2-4b63-94b9-95afbb8db990" valueTypeId="570f67e0-4fe1-43cb-b2a1-22d253b6d6ed"/>
<valueKeyType typeId="5270f0d3-86fe-4d3c-aa10-f377bdc84bc7" valueTypeId="73de01ed-6a9f-4436-ac95-7844c37c583b"/>
</producedTypes>
<name>КлассификаторОшибокКриптографии</name>
<synonym>
<key>ru</key>
<value>Классификатор ошибок криптографии</value>
</synonym>
<type>
<types>ValueStorage</types>
</type>
<useStandardCommands>true</useStandardCommands>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataLockControlMode>Managed</dataLockControlMode>
</mdclass:Constant>
@@ -493,9 +493,15 @@
Если Объект.Программа = ПрограммаОблачногоСервиса Тогда
СоздатьЗапросВОблачныйСервис();
Иначе
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.ИнтерактивныйРежим = Истина;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПечатьЗаявленияПослеСозданияМенеджераКриптографии", ЭтотОбъект),
"", Неопределено, , Истина);
"", ПараметрыСоздания);
КонецЕсли;
КонецЕсли;
@@ -2580,9 +2586,14 @@
Контекст.ПерваяДобавленнаяПрограмма = Контекст.Строка.Ссылка;
КонецЕсли;
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Контекст.Строка.Ссылка;
ПараметрыСоздания.ПоказатьОшибку = Ложь;
ПараметрыСоздания.ИнтерактивныйРежим = Истина;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(
Новый ОписаниеОповещения("ЗаполнитьПрограммуЦиклПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"", Ложь, Контекст.Строка.Ссылка, Истина);
"", ПараметрыСоздания);
КонецПроцедуры
@@ -2646,9 +2657,13 @@
Контекст.Вставить("ПоказатьОшибку", ПоказатьОшибку);
Контекст.Вставить("Оповещение", Оповещение);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Объект.Программа;
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(
Новый ОписаниеОповещения("ПослеВыбораПрограммыПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"", Неопределено, Объект.Программа);
"", ПараметрыСоздания);
КонецПроцедуры
@@ -3602,7 +3617,8 @@
КонецЕсли;
СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке,
НСтр("ru = 'Не удалось получить открытую часть ключа по причине:'"));
НСтр("ru = 'Не удалось получить открытую часть ключа по причине:
|%1'"));
КонецПроцедуры
@@ -3674,19 +3690,24 @@
КонецЕсли;
СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке,
НСтр("ru = 'Не удалось выполнить операцию по причине:'"));
НСтр("ru = 'Не удалось выполнить операцию по причине:
|%1
|
|Возможно, операция отменена или завершилась неудачей в программе электронной подписи.
|Повторите попытку.'"));
КонецПроцедуры
&НаКлиенте
Процедура СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке = Неопределено, ЗаголовокОшибки = "")
Процедура СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке = Неопределено, ЗаголовокОшибки = "%1")
Если ИнформацияОбОшибке <> Неопределено Тогда
Контекст.ЗапросСоздан = Ложь;
Ошибка = Новый Структура;
Ошибка.Вставить("ПоказатьИнструкцию", Истина);
Ошибка.Вставить("ОписаниеОшибки", ЗаголовокОшибки
+ Символы.ПС + ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке));
Ошибка.Вставить("ОписаниеОшибки",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ЗаголовокОшибки, ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке)));
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание запроса на сертификат'"), "", Ошибка,
@@ -3734,7 +3755,8 @@
СтандартнаяОбработка = Ложь;
СоздатьКлючИЗапросНаСертификатЗавершение(Контекст, ИнформацияОбОшибке,
НСтр("ru = 'Не удалось удалить файл запроса на сертификат на компьютере по причине:'"));
НСтр("ru = 'Не удалось удалить файл запроса на сертификат на компьютере по причине:
|%1'"));
КонецПроцедуры
@@ -4181,8 +4203,12 @@
ОповещениеПослеСозданияМенеджера = Новый ОписаниеОповещения(
"УстановитьСертификатПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст);
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ПараметрыСоздания.ИнтерактивныйРежим = Истина;
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(ОповещениеПослеСозданияМенеджера,
"", Неопределено, , Истина);
"", ПараметрыСоздания);
КонецПроцедуры
@@ -136,6 +136,13 @@
Элементы.БИПГруппаПроверкаКонтрагентов.Видимость = Ложь;
Элементы.БИПГруппаСПАРКРиски.Видимость = Ложь;
Элементы.БИПГруппаИнтеграцияСКоннект.Видимость = Ложь;
Элементы.БИПГруппаИнтеграцияСПлатежнымиСистемами.Видимость = Ложь;
КонецЕсли;
// Дополнительная проверка необходимо, т.к. программа может содержать версию БИП
// ниже чем 2.4.1.51. Проверка будет удалена при переходе на новую редакцию БСП.
Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтеграцияСКоннект") Тогда
Элементы.БИПГруппаИнтеграцияСКоннект.Видимость = Ложь;
КонецЕсли;
НастройкиПрограммыПереопределяемый.ИнтернетПоддержкаИСервисыПриСозданииНаСервере(ЭтотОбъект);
@@ -5544,6 +5544,174 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаОшибкаЗагрузкиСообщенияДляСопоставления</name>
<id>1006</id>
<items xsi:type="form:Decoration">
<name>Декорация5</name>
<id>1016</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация5РасширеннаяПодсказка</name>
<id>1018</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация5КонтекстноеМеню</name>
<id>1017</id>
<autoFill>true</autoFill>
</contextMenu>
<width>2</width>
<autoMaxWidth>true</autoMaxWidth>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение</picture>
</picture>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Группа1</name>
<id>1014</id>
<items xsi:type="form:Decoration">
<name>ДекорацияУдалитьСообщениеДляСопоставления</name>
<id>1011</id>
<title>
<key>ru</key>
<value>При загрузке сообщения для сопоставления возникла ошибка.
Рекомендуется повторно выгрузить данные из приложения &quot;%1&quot; и запустить синхронизацию в этой программе.
Также, можно удалить сообщение для сопоставления. В этом случае синхронизация будет работать в обычном режиме.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияУдалитьСообщениеДляСопоставленияРасширеннаяПодсказка</name>
<id>1013</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияУдалитьСообщениеДляСопоставленияКонтекстноеМеню</name>
<id>1012</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<width>60</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<textColor xsi:type="core:ColorRef">
<color>Style.ПоясняющийТекст</color>
</textColor>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>УдалитьСообщениеДляСопоставления</name>
<id>1008</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>1010</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>УдалитьСообщениеДляСопоставленияКонтекстноеМеню</name>
<id>1009</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>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Группа1РасширеннаяПодсказка</name>
<id>1015</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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа ошибка загрузки сообщения для сопоставления</value>
</title>
<extendedTooltip>
<name>ГруппаОшибкаЗагрузкиСообщенияДляСопоставленияРасширеннаяПодсказка</name>
<id>1007</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>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ИнформационнаяНадписьНастройкиРасписания</name>
<id>337</id>
@@ -7838,6 +8006,41 @@
<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>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОбновитьИнформациюСопоставленияПолностью</name>
<title>
@@ -104,6 +104,12 @@
УстановитьЗаголовокФормы();
Элементы.ДекорацияУдалитьСообщениеДляСопоставления.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При загрузке сообщения для сопоставления возникла ошибка.
|Рекомендуется повторно выгрузить данные из приложения ""%1"" и запустить синхронизацию в этой программе.
|Также, можно удалить сообщение для сопоставления. В этом случае синхронизация будет работать в обычном режиме.'"),
НаименованиеКорреспондента);
ИнициализироватьПомощникНастройкиРасписания(ЭтоЗапускИзДругогоПриложения);
Если РежимДополненияВыгрузки Тогда
@@ -146,12 +152,13 @@
Если ПолученоСообщениеДляСопоставленияДанных Тогда
Если (ЗакончитьСопоставлениеДанных И Не ПропуститьПолучениеДанных)
Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято") Тогда
Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято")
Или УдалитьСообщениеДляСопоставления Тогда
УдалитьСообщениеДляСопоставленияДанных(Объект.УзелИнформационнойБазы);
КонецЕсли;
КонецЕсли;
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена);
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена, ИдентификаторВременногоКаталогаДляОбмена);
Если ЗначениеЗаполнено(ПараметрыПовторногоОткрытияФормы)
И ПараметрыПовторногоОткрытияФормы.Свойство("НоваяНастройкаСинхронизацииДанных") Тогда
@@ -1607,13 +1614,16 @@
КонецПроцедуры
&НаСервереБезКонтекста
Процедура УдалитьВременныйКаталогСообщенийОбмена(ИмяВременногоКаталога)
Процедура УдалитьВременныйКаталогСообщенийОбмена(ИмяВременногоКаталога, ИдентификаторКаталога)
Если Не ПустаяСтрока(ИмяВременногоКаталога) Тогда
Попытка
УдалитьФайлы(ИмяВременногоКаталога);
ИмяВременногоКаталога = "";
Если Не ПустаяСтрока(ИдентификаторКаталога) Тогда
ОбменДаннымиСервер.ПолучитьФайлИзХранилища(ИдентификаторКаталога);
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -1748,6 +1758,8 @@
Элементы.ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных.Заголовок = ОбменДаннымиКлиент.ЗаголовкиГиперссылокЗагрузкиДанных()[РезультатЗагрузкиДанных];
КонецЕсли;
Элементы.ГруппаОшибкаЗагрузкиСообщенияДляСопоставления.Видимость = ПолученоСообщениеДляСопоставленияДанных И (РезультатЗагрузкиДанных = "Ошибка");
Элементы.ГруппаВыгрузкиДанных.Видимость = ОтправитьДанные;
Элементы.СтраницыСтатусаВыгрузкиДанных.ТекущаяСтраница = Элементы[ОбменДаннымиКлиент.СтраницыСтатусаВыгрузкиДанных()[РезультатВыгрузкиДанных]];
@@ -2098,6 +2110,7 @@
ПараметрыМетода.Вставить("WSПароль", Неопределено);
ПараметрыМетода.Вставить("ПолученоСообщениеДляСопоставленияДанных", ПолученоСообщениеДляСопоставленияДанных);
ПараметрыМетода.Вставить("ИдентификаторВременногоКаталогаДляОбмена", "");
ПараметрыЗадания = ПараметрыФоновогоЗадания();
ПараметрыЗадания.ВыполняемыйМетод = "Обработки.ПомощникИнтерактивногоОбменаДанными.ПолучитьСообщениеОбменаВоВременныйКаталог";
@@ -2449,7 +2462,7 @@
Если ПропуститьПолучениеДанных Тогда
ПропуститьСтраницу = Истина;
Если Не ПолученоСообщениеДляСопоставленияДанных Тогда
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена);
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена, ИдентификаторВременногоКаталогаДляОбмена);
КонецЕсли;
Иначе
ИнициализироватьПеременныеОбработки();
@@ -2463,7 +2476,7 @@
Функция Подключаемый_ЗагрузкаДанных_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее)
Если ПропуститьПолучениеДанных Тогда
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена);
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена, ИдентификаторВременногоКаталогаДляОбмена);
Возврат Неопределено;
КонецЕсли;
@@ -2869,7 +2882,7 @@
Если ДлительнаяОперация И Не ЗначениеЗаполнено(СообщениеОбОшибке) Тогда
ПодключитьОбработчикОжидания("ОбработчикОжиданияДлительнойОперации", 5, Истина);
Иначе
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена);
УдалитьВременныйКаталогСообщенийОбмена(Объект.ИмяВременногоКаталогаСообщенийОбмена, ИдентификаторВременногоКаталогаДляОбмена);
ПодключитьОбработчикОжидания("ВыполнитьПереходДалее", 0.1, Истина);
КонецЕсли;
@@ -54,7 +54,8 @@
ИдентификаторФайлаПакетаДанных = Файл.ПолучитьВремяИзменения();
ИмяВременногоКаталогаДляОбмена = ОбменДаннымиСервер.СоздатьВременныйКаталогСообщенийОбмена();
ИдентификаторКаталогаДляОбмена = "";
ИмяВременногоКаталогаДляОбмена = ОбменДаннымиСервер.СоздатьВременныйКаталогСообщенийОбмена(ИдентификаторКаталогаДляОбмена);
ИмяВременногоФайлаДляОбмена = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(
ИмяВременногоКаталогаДляОбмена, ОбменДаннымиСервер.УникальноеИмяФайлаСообщенияОбмена());
@@ -64,6 +65,8 @@
СтруктураДанных.ИдентификаторФайлаПакетаДанных = ИдентификаторФайлаПакетаДанных;
СтруктураДанных.ИмяФайлаСообщенияОбмена = ИмяВременногоФайлаДляОбмена;
Параметры.ИдентификаторВременногоКаталогаДляОбмена = Строка(ИдентификаторКаталогаДляОбмена);
КонецЕсли;
КонецЕсли;
@@ -706,6 +706,12 @@
Если ЭтоКлиент Тогда
Если Не ПустаяСтрока(АдресФайлаПравилВХранилище)
И ЭтоАдресВременногоХранилища(АдресФайлаПравилВХранилище) Тогда
УдалитьИзВременногоХранилища(АдресФайлаПравилВХранилище);
АдресФайлаПравилВХранилище = "";
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ПрочитатьПравилаОбменаЗавершение", ЭтотОбъект);
НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаПравилВХранилище, , , УникальныйИдентификатор);
@@ -20,6 +20,7 @@
<types>ConstantValueManager.ПараметрыЦентраМониторинга</types>
<types>ConstantValueManager.КаталогСообщенийОбменаДаннымиДляLinux</types>
<types>ConstantValueManager.СоздаватьПодкаталогиСИменамиВладельцев</types>
<types>ConstantValueManager.КлассификаторОшибокКриптографии</types>
<types>ConstantValueManager.ОсновнойЯзык</types>
<types>ConstantValueManager.ИспользоватьПолнотекстовыйПоиск</types>
<types>ConstantValueManager.КоличествоПотоковОбновленияИнформационнойБазы</types>
@@ -29,6 +30,7 @@
<types>ConstantValueManager.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC</types>
<types>ConstantValueManager.ДополнительныйЯзык2</types>
<types>CatalogObject.ПоставляемыеДополнительныеОтчетыИОбработки</types>
<types>ConstantValueManager.ДатаПоследнегоОбновленияКлассификатораОшибок</types>
<types>ConstantValueManager.ИзвлекатьТекстыФайловНаСервере</types>
<types>ConstantValueManager.ПрофильБезопасностиИнформационнойБазы</types>
<types>ConstantValueManager.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском</types>
@@ -81,6 +81,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right>
@@ -1790,6 +1877,25 @@
<value>true</value>
</right>
</object>
<object>
<name>Constant.КлассификаторОшибокКриптографии</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.СписокРасширенийФайловOpenDocument</name>
<right>
@@ -2098,93 +2204,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.МаксимальныйРазмерФайла</name>
<right>
@@ -2713,6 +2732,25 @@
<value>true</value>
</right>
</object>
<object>
<name>Constant.ДатаПоследнегоОбновленияКлассификатораОшибок</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.НеразделенныеПользователи</name>
<right>
@@ -938,6 +938,13 @@
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.РасширенноеПредставлениеОшибки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ОтложенноеОбновлениеЗавершеноУспешно</name>
<right>
@@ -2412,15 +2419,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -2513,10 +2520,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -2588,6 +2597,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -2611,15 +2622,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -2763,10 +2774,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -2838,6 +2851,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -2129,15 +2129,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -2230,10 +2230,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -2305,6 +2307,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -2328,15 +2332,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -2480,10 +2484,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -2555,6 +2561,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -1459,15 +1459,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -1560,10 +1560,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -1635,6 +1637,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -1658,15 +1662,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -1810,10 +1814,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -1885,6 +1891,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -106,15 +106,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -258,10 +258,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -333,6 +335,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
</Rights>
@@ -227,15 +227,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -328,10 +328,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -403,6 +405,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -100,15 +100,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -201,10 +201,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -276,6 +278,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
</Rights>
@@ -188,15 +188,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -289,10 +289,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -364,6 +366,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
</Rights>
@@ -210,15 +210,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -311,10 +311,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -386,6 +388,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -75,15 +75,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -227,10 +227,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -302,6 +304,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
</Rights>
@@ -3,19 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>InformationRegister.УдалитьХранимыеФайлыВерсий</name>
<right>
<name>Read</name>
<value>false</value>
<restrictionByCondition>
<condition>#ПоЗначениямИНаборамРасширенный("РегистрСведений.УдалитьХранимыеФайлыВерсий", "", "",
"",
"",
"Объект","Т.ВерсияФайла.Владелец.ВладелецФайла","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","")</condition>
</restrictionByCondition>
</right>
</object>
<object>
<name>Catalog.Файлы.Command.ВерсииФайла</name>
<right>
@@ -250,15 +237,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -351,10 +338,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -426,6 +415,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -3,19 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>InformationRegister.УдалитьХранимыеФайлыВерсий</name>
<right>
<name>Read</name>
<value>false</value>
<restrictionByCondition>
<condition>#ПоЗначениямИНаборамРасширенный("РегистрСведений.УдалитьХранимыеФайлыВерсий", "", "",
"",
"",
"Объект","Т.ВерсияФайла.Владелец.ВладелецФайла","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","")</condition>
</restrictionByCondition>
</right>
</object>
<object>
<name>Catalog.Файлы.Command.ВерсииФайла</name>
<right>
@@ -250,15 +237,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -351,10 +338,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -426,6 +415,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -14,13 +14,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -52,6 +45,13 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -123,15 +123,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -224,10 +224,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -299,6 +301,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
</Rights>
@@ -100,15 +100,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -201,10 +201,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -276,6 +278,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -194,15 +194,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -295,10 +295,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -370,6 +372,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -75,15 +75,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -227,10 +227,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -302,6 +304,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -154,15 +154,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -255,10 +255,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -330,6 +332,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -353,15 +357,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -505,10 +509,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -580,6 +586,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -227,6 +227,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right>
@@ -2410,6 +2449,49 @@
<value>false</value>
</right>
</object>
<object>
<name>Constant.КлассификаторОшибокКриптографии</name>
<right>
<name>Read</name>
<value>false</value>
</right>
<right>
<name>Update</name>
<value>false</value>
</right>
<right>
<name>View</name>
<value>false</value>
</right>
<right>
<name>Edit</name>
<value>false</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>false</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ТелефонныйЗвонокПрисоединенныеФайлы</name>
<right>
@@ -2935,45 +3017,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Document.СообщениеSMS</name>
<right>
@@ -3730,6 +3773,49 @@
<value>false</value>
</right>
</object>
<object>
<name>Constant.ДатаПоследнегоОбновленияКлассификатораОшибок</name>
<right>
<name>Read</name>
<value>false</value>
</right>
<right>
<name>Update</name>
<value>false</value>
</right>
<right>
<name>View</name>
<value>false</value>
</right>
<right>
<name>Edit</name>
<value>false</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>false</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ЗакладкиВзаимодействий</name>
<right>
@@ -85,15 +85,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -186,10 +186,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -261,6 +263,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -58,15 +58,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -210,10 +210,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -285,6 +287,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -175,15 +175,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -276,10 +276,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -351,6 +353,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -145,15 +145,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -246,10 +246,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -321,6 +323,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -94,15 +94,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -246,10 +246,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -321,6 +323,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -54,15 +54,15 @@
// Информационная база заблокирована для обновления.
ГДЕ ЛОЖЬ
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра6,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 6 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда
Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
// У пользователя отключены все виды доступа или
// ограничение на уровне записей не используется.
ГДЕ ИСТИНА
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы) #Тогда
#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
// У пользователя отключено ограничение для текущей таблицы.
ГДЕ ИСТИНА
@@ -155,10 +155,12 @@
#КонецЕсли
)
)
#КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса;") #Тогда
#Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
#Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
И ( СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
#Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда
И ИСТИНА В (ИСТИНА
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
@@ -230,6 +232,8 @@
)
#КонецЕсли
#КонецЕсли
#КонецЕсли
</condition>
</restrictionTemplate>
<restrictionTemplate>
@@ -49,5 +49,12 @@
<content>CommonModule.ЭлектроннаяПодписьЛокализацияКлиентСервер</content>
<content>CommonModule.ЗаявлениеНаСертификатПереопределяемый</content>
<content>StyleItem.ЗаявлениеНаВыпускСертификатаЗаголовокКлючевогоПоляШрифт</content>
<content>CommonPicture.ЗеленыйШар</content>
<content>CommonPicture.КрасныйШар</content>
<content>CommonPicture.СерыйШар</content>
<content>CommonPicture.ЖелтыйШар</content>
<content>Constant.КлассификаторОшибокКриптографии</content>
<content>Constant.ДатаПоследнегоОбновленияКлассификатораОшибок</content>
<content>CommonForm.РасширенноеПредставлениеОшибки</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>