3_1_6_209

This commit is contained in:
Компания 1С committed 2022-04-28 13:25:00 +03:00
1 parent f54d3317c8
commit 84cf7f3c95
130 files changed
+4223 -2443

No files matched your search

@@ -1734,11 +1734,13 @@
Свойства.ИмяРасширения, Свойства.ИдентификаторРасширения, Свойства.ХешСуммаРасширения);
Если ОбъектМетаданных = Неопределено Тогда
Если КлючОбъектаМетаданных = Тип("Неопределено") Тогда
// Если объект метаданных без ключа, то его можно найти только по полному имени.
ОбъектМетаданных = МетаданныеНайтиПоПолномуИмени(Свойства.ПолноеИмя);
Если ОбъектМетаданных = Неопределено И ОбъектыРасширений Тогда
ОбъектМетаданных = МетаданныеРасширенияНайтиПоПолномуИмени(Свойства);
КонецЕсли;
КонецЕсли;
Иначе
// Если объект метаданных удалялся с целью реструктуризации, тогда
// старый идентификатор нужно использовать для нового объекта метаданных,
@@ -1843,8 +1845,7 @@
КонецЕсли;
Если НРег(РасширениеОбъекта.УникальныйИдентификатор) = НРег(Сред(Свойства.ИдентификаторРасширения, 3))
Или НРег(РасширениеОбъекта.Имя) = НРег(Сред(Свойства.ИмяРасширения, 3))
И Base64Строка(РасширениеОбъекта.ХешСумма) = Сред(Свойства.ХешСуммаРасширения, 3) Тогда
Или НРег(РасширениеОбъекта.Имя) = НРег(Сред(Свойства.ИмяРасширения, 3)) Тогда
Возврат ОбъектМетаданных;
КонецЕсли;
@@ -2006,11 +2007,8 @@
ОбъектыРасширений = ЭтоОбъектРасширений(Свойства.Ссылка);
Если ЭтоДубль Тогда
Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда
КлючОбъектаМетаданныхДубля = Новый ХранилищеЗначения(Неопределено);
Иначе
КлючОбъектаМетаданныхДубля = Неопределено;
КонецЕсли;
КлючОбъектаМетаданных = ?(ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения"),
Свойства.КлючОбъектаМетаданных.Получить(), Свойства.КлючОбъектаМетаданных);
КонецЕсли;
Если НЕ Свойства.ПометкаУдаления
@@ -2027,7 +2025,7 @@
ИЛИ Свойства.ЗначениеПустойСсылки <> Неопределено
ИЛИ Свойства.ИмяПредопределенныхДанных <> ""
ИЛИ ЭтоДубль
И XMLСтрока(Свойства.КлючОбъектаМетаданных) <> XMLСтрока(КлючОбъектаМетаданныхДубля) Тогда
И КлючОбъектаМетаданных <> Неопределено Тогда
Если НЕ Свойства.ПометкаУдаления Или Лев(Свойства.ПолноеИмя, 1) <> "?" Тогда
ЕстьУдаленные = Истина;
@@ -2051,7 +2049,11 @@
КонецЕсли;
Если ЭтоДубль Тогда
Свойства.КлючОбъектаМетаданных = КлючОбъектаМетаданныхДубля;
Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда
Свойства.КлючОбъектаМетаданных = Новый ХранилищеЗначения(Неопределено);
Иначе
Свойства.КлючОбъектаМетаданных = Неопределено;
КонецЕсли;
КонецЕсли;
СвойстваОбновлены = Истина;
КонецЕсли;
@@ -2299,9 +2301,7 @@
Если НРег(РасширениеОбъекта.УникальныйИдентификатор) = НРег(ИдентификаторРасширения)
Или НРег(РасширениеОбъекта.УникальныйИдентификатор) = НРег(Сред(ИдентификаторРасширения, 3))
Или НРег(РасширениеОбъекта.Имя) = НРег(ИмяРасширения)
И Base64Строка(РасширениеОбъекта.ХешСумма) = ХешСуммаРасширения
Или НРег(РасширениеОбъекта.Имя) = НРег(Сред(ИмяРасширения, 3))
И Base64Строка(РасширениеОбъекта.ХешСумма) = Сред(ХешСуммаРасширения, 3) Тогда
Или НРег(РасширениеОбъекта.Имя) = НРег(Сред(ИмяРасширения, 3)) Тогда
Возврат ОбъектМетаданных;
КонецЕсли;
@@ -7,10 +7,6 @@
<items xsi:type="form:FormField">
<name>Сертификат</name>
<id>1</id>
<title>
<key>ru</key>
<value>Заканчивается срок действия для сертификата</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -19,7 +15,7 @@
<dataPath xsi:type="form:DataPath">
<segments>Сертификат</segments>
</dataPath>
<titleLocation>Top</titleLocation>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>СертификатExtendedTooltip</name>
<id>16</id>
@@ -35,79 +31,26 @@
<id>2</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<type>LabelField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<extInfo xsi:type="form:LabelFieldExtInfo">
<width>50</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<dropListButton>false</dropListButton>
<choiceButton>true</choiceButton>
<choiceButtonRepresentation>ShowInInputField</choiceButtonRepresentation>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СертификатДействителенДо</name>
<id>5</id>
<title>
<key>ru</key>
<value>Дата окончания действия</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Сертификат.ДействителенДо</segments>
</dataPath>
<extendedTooltip>
<name>СертификатДействителенДоРасширеннаяПодсказка</name>
<id>17</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СертификатДействителенДоКонтекстноеМеню</name>
<id>6</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
<hyperlink>true</hyperlink>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Совет</name>
<id>10</id>
<name>ДекорацияСертификат</name>
<id>33</id>
<title>
<key>ru</key>
<value>Необходимо получить новый сертификат</value>
<value>Заканчивается срок действия сертификата</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -115,8 +58,8 @@
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СоветРасширеннаяПодсказка</name>
<id>18</id>
<name>ДекорацияСертификатРасширеннаяПодсказка</name>
<id>35</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -125,16 +68,94 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СоветКонтекстноеМеню</name>
<id>11</id>
<name>ДекорацияСертификатКонтекстноеМеню</name>
<id>34</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияПричина</name>
<id>36</id>
<title>
<key>ru</key>
<value>Причина</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПричинаРасширеннаяПодсказка</name>
<id>38</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПричинаКонтекстноеМеню</name>
<id>37</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<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>39</id>
<title>
<key>ru</key>
<value>Решение</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<contextMenu>
<name>ДекорацияРешениеКонтекстноеМеню</name>
<id>40</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ДекорацияРешениеОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаОкончаниеСрокаДействия</name>
<id>31</id>
<items xsi:type="form:Decoration">
<name>ДекорацияПеревыпущен</name>
<id>28</id>
@@ -173,6 +194,36 @@
</handlers>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Окончание срока действия</value>
</title>
<extendedTooltip>
<name>ГруппаОкончаниеСрокаДействияРасширеннаяПодсказка</name>
<id>32</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>БольшеНеНапоминать</name>
<id>7</id>
@@ -211,35 +262,11 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаПеревыпустить</name>
<id>23</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПеревыпуститьРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Перевыпустить</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Закрыть</name>
<id>9</id>
@@ -260,13 +287,14 @@
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</commandName>
<buttonImportance>Normal</buttonImportance>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign>
<horizontalAlign>Right</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
@@ -348,41 +376,6 @@
<itemValueType/>
</extInfo>
</attributes>
<formCommands>
<name>ОткрытьСертификат</name>
<title>
<key>ru</key>
<value>Открыть сертификат</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Открыть сертификат</value>
</toolTip>
<use>
<common>true</common>
</use>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>Перевыпустить</name>
<title>
<key>ru</key>
<value>Перевыпустить...</value>
</title>
<id>2</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Перевыпустить</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>Сертификат</name>
<valueType>
@@ -390,6 +383,10 @@
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ДополнительныеДанныеПроверки</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -12,21 +12,66 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Сертификат = Параметры.Сертификат;
ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно;
Элементы.ФормаПеревыпустить.Видимость = ЗаявлениеНаВыпускСертификатаДоступно
Если ЗаявлениеНаВыпускСертификатаДоступно И ЗначениеЗаполнено(Сертификат) Тогда
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(
Сертификат);
КонецЕсли;
ЕстьПеревыпущенные = ВыпущенныеСертификаты.Количество() > 0;
Элементы.ДекорацияПеревыпущен.Видимость = ЕстьПеревыпущенные;
ЗаявлениеНаВыпускСертификатаДоступно = ЗаявлениеНаВыпускСертификатаДоступно
И ПравоДоступа("Редактирование", Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования);
Если ЗаявлениеНаВыпускСертификатаДоступно Тогда
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(Сертификат);
ДополнительныеДанныеПроверки = Параметры.ДополнительныеДанныеПроверки; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки) И ТипЗнч(ДополнительныеДанныеПроверки) = Тип("Структура") Тогда
Элементы.ДекорацияСертификат.Заголовок = ДополнительныеДанныеПроверки.ТекстОшибки;
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки.Причина) Тогда
Элементы.ДекорацияПричина.Заголовок = ДополнительныеДанныеПроверки.Причина;
Элементы.ДекорацияПричина.Видимость = Истина;
КонецЕсли;
ЕстьПеревыпущенные = ВыпущенныеСертификаты.Количество() > 0;
Элементы.Закрыть.КнопкаПоУмолчанию = ЕстьПеревыпущенные;
Элементы.ДекорацияПеревыпущен.Видимость = ЕстьПеревыпущенные;
Элементы.Совет.Видимость = Не ЕстьПеревыпущенные;
Если Не ЕстьПеревыпущенные Тогда
Если ДополнительныеДанныеПроверки.ВозможенПеревыпуск И Не ЗаявлениеНаВыпускСертификатаДоступно Тогда
Элементы.ДекорацияРешение.Заголовок = Решение();
Элементы.ДекорацияРешение.Видимость = Истина;
Иначе
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки.Решение) Тогда
Элементы.ДекорацияРешение.Заголовок = ДополнительныеДанныеПроверки.Решение;
Элементы.ДекорацияРешение.Видимость = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(Сертификат) Тогда
ДействителенДо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДействителенДо")
+ ЭлектроннаяПодписьСлужебный.ДобавкаВремени();
Элементы.ДекорацияСертификат.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 закончится срок действия сертификата'"), ДействителенДо);
Если Не ЕстьПеревыпущенные Тогда
Если ЗаявлениеНаВыпускСертификатаДоступно Тогда
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"),
"ПодатьЗаявлениеНаСертификат");
Иначе
Решение = Решение();
КонецЕсли;
Элементы.ДекорацияРешение.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Решение);
Элементы.ДекорацияРешение.Видимость = Истина;
КонецЕсли;
Иначе
Элементы.ДекорацияСертификат.Заголовок = НСтр("ru = 'Не заполнен параметр Сертификат при открытии формы.'");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -63,22 +108,19 @@
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Перевыпустить(Команда)
Процедура ДекорацияРешениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("СоздатьЗаявление", Истина);
ПараметрыСоздания.Вставить("СертификатОснование", Сертификат);
ЭлектроннаяПодписьСлужебныйКлиент.ДобавитьСертификат(ПараметрыСоздания);
ДополнительныеДанные = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеДанныеДляКлассификатораОшибок();
ДополнительныеДанные.Сертификат = Сертификат;
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьНавигационнуюСсылкуКлассификатора(
Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка, ДополнительныеДанные);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
@@ -91,4 +133,19 @@
КонецПроцедуры
&НаСервере
Функция Решение()
Если ЭлектроннаяПодпись.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль(
"ЭлектроннаяПодписьКлиентСерверЛокализация");
Возврат СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
МодульЭлектроннаяПодписьКлиентСерверЛокализация.СсылкаНаСтатьюОбУдостоверяющихЦентрах());
Иначе
Возврат НСтр("ru = 'Получите новый сертификат.'");
КонецЕсли;
КонецФункции
#КонецОбласти
@@ -235,6 +235,107 @@
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаОтозван</name>
<id>483</id>
<items xsi:type="form:Decoration">
<name>ДекорацияОтозван</name>
<id>480</id>
<title>
<key>ru</key>
<value>Декорация отозван</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияОтозванРасширеннаяПодсказка</name>
<id>482</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияОтозванКонтекстноеМеню</name>
<id>481</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<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>485</id>
<title>
<key>ru</key>
<value>Сертификат помечен в программе как отозванный. Выберите другой сертификат.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияОтозванНадписьРасширеннаяПодсказка</name>
<id>487</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияОтозванНадписьКонтекстноеМеню</name>
<id>486</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа отозван</value>
</title>
<extendedTooltip>
<name>ГруппаОтозванРасширеннаяПодсказка</name>
<id>484</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПароль</name>
<id>454</id>
@@ -1267,6 +1368,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>СертификатОтозван</name>
<id>25</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Подписать</name>
<title>
@@ -505,6 +505,7 @@
КонецЕсли;
ЭлектроннаяПодписьСлужебный.СертификатПриИзмененииНаСервере(ЭтотОбъект, ОтпечаткиСертификатовНаКлиенте);
Элементы.ГруппаОтозван.Видимость = СертификатОтозван;
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
@@ -548,6 +549,14 @@
Возврат;
КонецЕсли;
Если СертификатОтозван Тогда
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
НСтр("ru = 'Сертификат помечен в программе как отозванный.
|Выберите другой сертификат.'"));
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
Возврат;
КонецЕсли;
ВыбранныйСертификат = Новый Структура;
ВыбранныйСертификат.Вставить("Ссылка", Сертификат);
ВыбранныйСертификат.Вставить("Отпечаток", СертификатОтпечаток);
@@ -706,9 +715,14 @@
КонецЕсли;
Если ОповеститьОбОкончанииСрокаДействия Тогда
ПараметрыФормы = Новый Структура("Сертификат", Сертификат);
ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ОповещениеОбОкончанииСрокаДействия",
ПараметрыФормы);
ПараметрыОткрытияФормы = Новый Структура("Сертификат", Сертификат);
ДействиеПриНажатии = Новый ОписаниеОповещения("ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата",
ЭлектроннаяПодписьСлужебныйКлиент, ПараметрыОткрытияФормы);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Необходима замена сертификата'"), ДействиеПриНажатии, Сертификат,
БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное,
Сертификат);
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
@@ -743,7 +757,7 @@
КонецЕсли;
ОписаниеДанных.ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
ОшибкаНаКлиенте, ОшибкаНаСервере, НСтр("ru = 'Не удалось подписать данные по причине:'"));
ОшибкаНаКлиенте, ОшибкаНаСервере, НСтр("ru = 'Не удалось подписать документы по причине:'"));
Если Открыта() Тогда
Закрыть(Ложь);
@@ -764,7 +778,7 @@
ДополнительныеПараметры.Вставить("Сертификат", Сертификат);
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Не удалось подписать данные'"), "",
НСтр("ru = 'Не удалось подписать документы'"), "",
ОшибкаНаКлиенте, ОшибкаНаСервере, ДополнительныеПараметры, ОбработкаПослеПредупреждения);
ВыполнитьОбработкуОповещения(Оповещение, Ложь);
@@ -5121,6 +5121,41 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>Отозван</name>
<id>26</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДополнительныеДанныеПроверокНаКлиенте</name>
<id>27</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДополнительныеДанныеПроверокНаСервере</name>
<id>28</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Проверить</name>
<title>
@@ -44,6 +44,10 @@
ПроверкаВыполнена = Истина;
ПроверкиНаКлиенте = Параметры.РезультатПроверки.ПроверкиНаКлиенте;
ПроверкиНаСервере = Параметры.РезультатПроверки.ПроверкиНаСервере;
ДополнительныеДанныеПроверокНаСервере = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
Параметры.РезультатПроверки, "ДополнительныеДанныеПроверокНаСервере", Новый Структура);
ДополнительныеДанныеПроверокНаКлиенте = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
Параметры.РезультатПроверки, "ДополнительныеДанныеПроверокНаКлиенте", Новый Структура);
КонецЕсли;
Проверки = Новый ТаблицаЗначений;
@@ -123,7 +127,9 @@
КонецЕсли;
СвойстваСертификата = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сертификат,
"ДанныеСертификата, Программа, ВводитьПарольВПрограммеЭлектроннойПодписи, Отпечаток");
"ДанныеСертификата, Программа, ВводитьПарольВПрограммеЭлектроннойПодписи, Отпечаток, Отозван");
Отозван = СвойстваСертификата.Отозван;
Программа = СвойстваСертификата.Программа;
АдресСертификата = ПоместитьВоВременноеХранилище(
@@ -192,6 +198,11 @@
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") И Источник = Сертификат Тогда
ОбновитьДанныеСертификата();
Возврат;
КонецЕсли;
// При изменении настроек использования.
Если ВРег(ИмяСобытия) <> ВРег("Запись_НаборКонстант") Тогда
Возврат;
@@ -212,7 +223,8 @@
&НаКлиенте
Процедура Подключаемый_НадписьНажатие(Элемент)
ИмяОшибки = Лев(Элемент.Имя, СтрДлина(Элемент.Имя) - СтрДлина("Надпись")) + "Ошибка";
ИмяЭлемента = Лев(Элемент.Имя, СтрДлина(Элемент.Имя) - СтрДлина("Надпись"));
ИмяОшибки = ИмяЭлемента + "Ошибка";
ПараметрыПредупреждения = Новый Структура;
ПараметрыПредупреждения.Вставить("ЗаголовокПредупреждения",
@@ -223,7 +235,7 @@
?(ОперацииНаСервере Или ЕстьВстроенныйКриптопровайдер Или ЕстьУчетнаяЗаписьСервиса,
ПроверкиНаСервере[ИмяОшибки], ""));
ПараметрыПредупреждения.Вставить("ДополнительныеДанные", ДополнительныеДанные());
ПараметрыПредупреждения.Вставить("ДополнительныеДанные", ДополнительныеДанные(ИмяЭлемента));
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
ПараметрыПредупреждения, ЭтотОбъект);
@@ -448,6 +460,8 @@
ПарольПринят = Ложь;
ПроверкиНаКлиенте = Новый Структура;
ПроверкиНаСервере = Новый Структура;
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
// Очистка предыдущих результатов проверки.
Если СтандартныеПроверки Тогда
@@ -548,6 +562,8 @@
Результат.Вставить("ПроверкиПройдены", Ложь);
Результат.Вставить("ПроверкиНаКлиенте", ПроверкиНаКлиенте);
Результат.Вставить("ПроверкиНаСервере", ПроверкиНаСервере);
Результат.Вставить("ДополнительныеДанныеПроверокНаКлиенте", ДополнительныеДанныеПроверокНаКлиенте);
Результат.Вставить("ДополнительныеДанныеПроверокНаСервере", ДополнительныеДанныеПроверокНаСервере);
КлиентскиеПараметры.Вставить("Результат", Результат);
@@ -786,6 +802,7 @@
Если ТипЗнч(Результат) = Тип("МенеджерКриптографии") Тогда
ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата();
ДополнительныеПараметрыПроверок.ВыполнятьПроверкуУдостоверяющегоЦентра = Ложь;
ДополнительныеПараметрыПроверок.ОбъединитьОшибкиДанныхСертификата = Ложь;
ДополнительныеПараметрыПроверок.ПроверитьВСервисеПослеОшибки = Ложь;
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Новый ОписаниеОповещения(
@@ -888,8 +905,11 @@
Контекст.МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = СвойстваПароля.Значение;
КонецЕсли;
ОписаниеОшибки = "";
ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Ложь, ОписаниеОшибки);
// Подписание.
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина Тогда
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Контекст.МенеджерКриптографии.НачатьПодписывание(Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеПодписания", ЭтотОбъект, Контекст,
"ПроверитьНаСторонеКлиентаПослеОшибкиПодписания", ЭтотОбъект),
@@ -921,8 +941,11 @@
Возврат;
КонецЕсли;
ОписаниеОшибки = "";
ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Истина, ОписаниеОшибки);
// Подписание.
Если ПроверкиНаСервере.НаличиеСертификата = Истина Тогда
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент");
МодульСервисКриптографииКлиент.Подписать(Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеПодписанияВМоделиСервиса", ЭтотОбъект, Контекст,
@@ -1375,8 +1398,11 @@
Возврат;
КонецЕсли;
ОписаниеОшибки = "";
ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Истина, ОписаниеОшибки);
// Подписание.
Если ПроверкиНаСервере.НаличиеСертификата = Истина Тогда
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
@@ -1595,8 +1621,12 @@
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
Если Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
ЭлектроннаяПодпись.ПроверитьСертификат(МенеджерКриптографии, СертификатКриптографии, ОписаниеОшибки);
ДополнительныеПараметрыПроверкиСертификата =
ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата();
ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра = Ложь;
ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(МенеджерКриптографии, СертификатКриптографии, ОписаниеОшибки,,ДополнительныеПараметрыПроверкиСертификата);
КонецЕсли;
УстановитьЭлемент(ЭтотОбъект, "ДанныеСертификата", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
// Наличие программы.
@@ -1628,7 +1658,21 @@
// Подписание.
ОписаниеОшибки = "";
Если ПроверкиНаСервере.НаличиеСертификата = Истина Тогда
Если Отозван Тогда
ОписаниеОшибки = ЭлектроннаяПодписьСлужебный.ОшибкаСертификатПомеченКакОтозванный();
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
Иначе
РезультатПроверкиУЦ = ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии);
Если Не РезультатПроверкиУЦ.Действует Тогда
ОписаниеОшибки = РезультатПроверкиУЦ.Предупреждение.ТекстОшибки;
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, РезультатПроверкиУЦ.Предупреждение, Истина,
ОбъединятьРезультаты);
КонецЕсли;
КонецЕсли;
Если ПроверкиНаСервере.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
ДанныеПодписи = ПроверитьПодписаниеНаСервере(МенеджерКриптографии, ДанныеСертификата, СертификатКриптографии, ОписаниеОшибки);
КонецЕсли;
@@ -1811,30 +1855,30 @@
Процедура ОбновитьВидимостьНаСервере()
ОперацииНаСервере = (ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
Или ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере())
И ОбъединятьРезультаты <> "ОбъединятьПоИ"
И ОбъединятьРезультаты <> "ОбъединятьПоИли";
Или ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере());
ПроверятьЭлектронныеПодписиНаСервере = Константы.ПроверятьЭлектронныеПодписиНаСервере.Получить();
ПроверкаВСервисе = (ЭтоВстроенныйКриптопровайдер Или ЭтоУчетнаяЗаписьСервиса
Или ПроверятьЭлектронныеПодписиНаСервере И (ЕстьУчетнаяЗаписьСервиса Или ЕстьВстроенныйКриптопровайдер))
И ОбъединятьРезультаты <> "ОбъединятьПоИ"
И ОбъединятьРезультаты <> "ОбъединятьПоИли";
Или ПроверятьЭлектронныеПодписиНаСервере И (ЕстьУчетнаяЗаписьСервиса Или ЕстьВстроенныйКриптопровайдер));
ВидимостьПроверкиНаСервере = ОперацииНаСервере Или ПроверкаВСервисе;
ВидимостьКолонкиНаСервере = ВидимостьПроверкиНаСервере И ОбъединятьРезультаты <> "ОбъединятьПоИ" И ОбъединятьРезультаты <> "ОбъединятьПоИли";
Элементы.ГруппаШапка.Видимость = ВидимостьПроверкиНаСервере;
Для Каждого Проверка Из СтандартныеПроверки() Цикл
Элементы[Проверка + "НаСервереКартинка"].Видимость = ВидимостьПроверкиНаСервере;
Элементы[Проверка + "ОшибкаКлиентКартинка"].Видимость = ВидимостьПроверкиНаСервере;
Элементы[Проверка + "НаСервереКартинка"].Видимость = ВидимостьКолонкиНаСервере;
КонецЦикла;
Для каждого Проверка Из ДополнительныеПроверки Цикл
Элементы[Проверка.Имя + "НаСервереКартинка"].Видимость = ВидимостьПроверкиНаСервере;
Элементы[Проверка.Имя + "ОшибкаКлиентКартинка"].Видимость = ВидимостьПроверкиНаСервере;
Элементы[Проверка.Имя + "НаСервереКартинка"].Видимость = ВидимостьКолонкиНаСервере;
КонецЦикла;
Элементы.ПроверкиНаСервереКартинка.Видимость = ВидимостьПроверкиНаСервере;
Элементы.ПроверкиНаКлиентеКартинка.Видимость = ОбъединятьРезультаты <> "ОбъединятьПоИ"
И ОбъединятьРезультаты <> "ОбъединятьПоИли";
Элементы.ПроверкиНаСервереКартинка.Видимость = ВидимостьКолонкиНаСервере;
Элементы.ПроверкиНаКлиентеКартинка.Видимость = ВидимостьКолонкиНаСервере;
КонецПроцедуры
@@ -1842,6 +1886,8 @@
Процедура ВывестиРезультатПроверки(Проверка, НаСервере = Ложь)
РезультатыПроверок = ЭтотОбъект[?(НаСервере, "ПроверкиНаСервере", "ПроверкиНаКлиенте")];
ДополнительныеДанныеПроверок = ЭтотОбъект[?(НаСервере, "ДополнительныеДанныеПроверокНаСервере", "ДополнительныеДанныеПроверокНаКлиенте")];
Если РезультатыПроверок <> Неопределено Тогда
РезультатПроверки = РезультатыПроверок[Проверка];
@@ -1852,8 +1898,15 @@
ОшибкиПриПроверке = ?(РезультатыПроверок.Свойство(Проверка + "Ошибка"),
РезультатыПроверок[Проверка + "Ошибка"], "");
Если ДополнительныеДанныеПроверок.Свойство(Проверка) Тогда
Структура = ДополнительныеДанныеПроверок[Проверка];
Структура.Вставить("ТекстОшибки", ОшибкиПриПроверке);
УстановитьЭлемент(ЭтотОбъект, Проверка, НаСервере,
Структура, Не РезультатПроверки, ОбъединятьРезультаты);
Иначе
УстановитьЭлемент(ЭтотОбъект, Проверка, НаСервере,
ОшибкиПриПроверке, Не РезультатПроверки, ОбъединятьРезультаты);
КонецЕсли;
КонецЕсли;
@@ -1871,6 +1924,7 @@
Или ОбъединятьРезультаты = "ОбъединятьПоИли" Тогда
ЭлементКартинка = Форма.Элементы[НачалоЭлемента + "НаКлиентеКартинка"]; // ДекорацияФормы
Иначе
ЭлементКартинка = Форма.Элементы[НачалоЭлемента
+ ?(НаСервере, "НаСервереКартинка", "НаКлиентеКартинка")]; // ДекорацияФормы
@@ -1886,6 +1940,16 @@
ЗначениеПроверкиВторогоКонтекста = ПроверкиВторогоКонтекста[НачалоЭлемента];
КонецЕсли;
ПредупреждениеПослеПроверкиУЦ = Неопределено;
Если ТипЗнч(ОписаниеОшибки) = Тип("Структура") Тогда
ПредупреждениеПослеПроверкиУЦ = ОписаниеОшибки;
ОписаниеОшибки = ПредупреждениеПослеПроверкиУЦ.ТекстОшибки;
ДополнительныеДанныеПроверок = Форма[?(НаСервере, "ДополнительныеДанныеПроверокНаСервере", "ДополнительныеДанныеПроверокНаКлиенте")];
ДополнительныеДанныеПроверок.Вставить(НачалоЭлемента,
Новый Структура("Причина, Решение", ПредупреждениеПослеПроверкиУЦ.Причина, ПредупреждениеПослеПроверкиУЦ.Решение));
Форма[?(НаСервере, "ДополнительныеДанныеПроверокНаСервере", "ДополнительныеДанныеПроверокНаКлиенте")] = ДополнительныеДанныеПроверок;
КонецЕсли;
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
ЗначениеПроверки = Ложь;
@@ -1909,6 +1973,7 @@
ЭлементНадписьОшибка = Форма.Элементы[НачалоЭлемента + ?(НаСервере, "ОшибкаСервер", "ОшибкаКлиент") + "Надпись"]; // ДекорацияФормы, РасширениеДекорацииФормыДляНадписи
ЭлементНадписьОшибка.Заголовок = ОписаниеОшибки;
Если ПредупреждениеПослеПроверкиУЦ = Неопределено Тогда
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки);
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
@@ -1917,7 +1982,13 @@
Если ЭтоИзвестнаяОшибка Тогда
Форма.Элементы[ИмяНадписиРешение].Заголовок = ОписаниеИзвестнойОшибки.Решение;
КонецЕсли;
Иначе
ИмяНадписиРешение = НачалоЭлемента + ?(НаСервере, "РешениеСерверНадпись", "РешениеКлиентНадпись");
Форма.Элементы[ИмяНадписиРешение].Видимость = Истина;
Форма.Элементы[ИмяНадписиРешение].Заголовок = ПредупреждениеПослеПроверкиУЦ.Решение;
КонецЕсли;
КонецЕсли;
Иначе
ГруппаОшибка = Форма.Элементы[НачалоЭлемента + ?(НаСервере, "ОшибкаСервер", "ОшибкаКлиент")];
@@ -2106,16 +2177,58 @@
КонецФункции
&НаКлиенте
Функция ДополнительныеДанные()
Функция ДополнительныеДанные(ИмяОшибки = Неопределено)
Если ЗначениеЗаполнено(Сертификат) Тогда
ДополнительныеДанные = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеДанныеДляКлассификатораОшибок();
ДополнительныеДанные.Сертификат = Сертификат;
Возврат ДополнительныеДанные;
Если ИмяОшибки <> Неопределено Тогда
ДополнительныеДанные.ДополнительныеДанныеПроверокНаКлиенте =
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанныеПроверокНаКлиенте, ИмяОшибки, Неопределено);
ДополнительныеДанные.ДополнительныеДанныеПроверокНаСервере =
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанныеПроверокНаСервере, ИмяОшибки, Неопределено);
КонецЕсли;
Возврат Неопределено;
Возврат ДополнительныеДанные;
КонецФункции
&НаКлиенте
Процедура ДополнительнаяПроверкаНаВозможностьПодписания(СертификатКриптографии, СторонаВыполнения, ОписаниеОшибки)
Если Отозван Тогда
ОшибкаСертификатПомеченКакОтозванный = ОшибкаСертификатПомеченКакОтозванный();
ОписаниеОшибки = ОшибкаСертификатПомеченКакОтозванный.ТекстОшибки;
УстановитьЭлемент(ЭтотОбъект, "Подписание", СторонаВыполнения, ОшибкаСертификатПомеченКакОтозванный, Истина, ОбъединятьРезультаты);
Иначе
РезультатПроверкиУдостоверяющегоЦентраСертификата = ЭлектроннаяПодписьСлужебныйКлиент.РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии);
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
ОписаниеОшибки = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
УстановитьЭлемент(ЭтотОбъект, "Подписание", СторонаВыполнения, РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение, Истина,
ОбъединятьРезультаты);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ОшибкаСертификатПомеченКакОтозванный()
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаСертификатПомеченКакОтозванный()
КонецФункции
&НаСервере
Процедура ОбновитьДанныеСертификата()
СвойстваСертификата = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сертификат,
"Программа, ВводитьПарольВПрограммеЭлектроннойПодписи, Отозван");
Отозван = СвойстваСертификата.Отозван;
Программа = СвойстваСертификата.Программа;
СертификатВводитьПарольВПрограммеЭлектроннойПодписи = СвойстваСертификата.ВводитьПарольВПрограммеЭлектроннойПодписи;
КонецПроцедуры
#КонецОбласти
@@ -1,5 +1,112 @@
<?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>310</id>
<items xsi:type="form:Decoration">
<name>ПредупреждениеКартинка</name>
<id>315</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПредупреждениеКартинкаРасширеннаяПодсказка</name>
<id>317</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПредупреждениеКартинкаКонтекстноеМеню</name>
<id>316</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<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>312</id>
<title>
<key>ru</key>
<value>Предупреждение</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПредупреждениеРасширеннаяПодсказка</name>
<id>314</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПредупреждениеКонтекстноеМеню</name>
<id>313</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<maxWidth>84</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ПредупреждениеОбработкаНавигационнойСсылки</name>
</handlers>
<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>311</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<backColor xsi:type="core:ColorRef">
<color>Style.ЦветФонаВнимание</color>
</backColor>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>СостояниеСертификатаГруппа</name>
<id>276</id>
@@ -207,6 +207,15 @@
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ДополнительныеПараметры = Новый Структура("Сертификат", Объект.Ссылка);
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьНавигационнуюСсылкуКлассификатора(
Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -274,11 +283,15 @@
&НаКлиенте
Процедура СертификатОтозван(Команда)
Объект.Отозван = Не Объект.Отозван;
Элементы.ФормаСертификатОтозван.Пометка = Объект.Отозван;
Если Объект.Отозван Тогда
ПоказатьПредупреждение(, НСтр("ru = 'После записи отменить отзыв будет невозможно.'"));
Если Не Объект.Отозван Тогда
ОписаниеСледующее = Новый ОписаниеОповещения("ПослеОтветаНаВопросСертификатОтозван", ЭтотОбъект);
ПоказатьВопрос(ОписаниеСледующее, НСтр("ru = 'Сертификат будет помечен как отозванный, его нельзя будет использовать для подписи в программе.
|Рекомендуется устанавливать этот признак, когда подано, но еще не исполнено заявление на отзыв сертификата.
|Продолжить?'"), РежимДиалогаВопрос.ДаНет);
Иначе
ОписаниеСледующее = Новый ОписаниеОповещения("ПослеОтветаНаВопросСертификатОтозван", ЭтотОбъект);
ПоказатьВопрос(ОписаниеСледующее, НСтр("ru = 'Если сертификат отозван в удостоверяющем центре, сделать подпись таким сертификатом будет невозможно, даже если снять отметку в программе.
|Продолжить?'"), РежимДиалогаВопрос.ДаНет);
КонецЕсли;
КонецПроцедуры
@@ -345,17 +358,22 @@
Объект.Ссылка, "ДанныеСертификата").Получить();
Если ТипЗнч(ДвоичныеДанныеСертификата) = Тип("ДвоичныеДанные") Тогда
Сертификат = Новый СертификатКриптографии(ДвоичныеДанныеСертификата);
Если ЗначениеЗаполнено(АдресСертификата) Тогда
ПоместитьВоВременноеХранилище(ДвоичныеДанныеСертификата, АдресСертификата);
Иначе
АдресСертификата = ПоместитьВоВременноеХранилище(ДвоичныеДанныеСертификата, УникальныйИдентификатор);
КонецЕсли;
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОписаниеДанныхСертификата(ОписаниеДанныхСертификата,
ЭлектроннаяПодпись.СвойстваСертификата(Сертификат));
ОбновитьВидимостьПредупреждения(Сертификат);
Иначе
АдресСертификата = "";
Элементы.ПоказатьДанныеСертификата.Доступность = Ложь;
Элементы.ПредупреждениеГруппа.Видимость = Ложь;
Элементы.ФормаПроверитьСертификат.Доступность = ЗначениеЗаполнено(ДвоичныеДанныеСертификата);
Элементы.ФормаСохранитьДанныеСертификатаВФайл.Доступность = Ложь;
Элементы.АвтоПоляИзДанныхСертификата.Видимость = Истина;
@@ -367,9 +385,6 @@
КонецЕсли;
Элементы.ФормаСертификатОтозван.Пометка = Объект.Отозван;
Если Объект.Отозван Тогда
Элементы.ФормаСертификатОтозван.Доступность = Ложь;
КонецЕсли;
Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
ЭтоАвтор = Объект.Добавил = Пользователи.ТекущийПользователь();
@@ -536,6 +551,56 @@
КонецПроцедуры
&НаСервере
Процедура ОбновитьВидимостьПредупреждения(Знач СертификатКриптографии = Неопределено)
Если Объект.Отозван Тогда
Элементы.ПредупреждениеГруппа.Видимость = Истина;
Элементы.Предупреждение.Заголовок = НСтр("ru='Сертификат помечен в программе как отозванный'");
ИначеЕсли Объект.ДействителенДо > ТекущаяДатаСеанса() Тогда
Если ЗначениеЗаполнено(АдресСертификата) Тогда
Если СертификатКриптографии = Неопределено Тогда
СертификатКриптографии = Новый СертификатКриптографии(ПолучитьИзВременногоХранилища(АдресСертификата));
КонецЕсли;
РезультатПроверкиУдостоверяющегоЦентраСертификата = ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии);
ДанныеПредупреждения = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение;
Если РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует
И Не ЗначениеЗаполнено(ДанныеПредупреждения.ТекстОшибки) Тогда
Элементы.ПредупреждениеГруппа.Видимость = Ложь;
Иначе
Элементы.ПредупреждениеГруппа.Видимость = Истина;
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(ДанныеПредупреждения.ТекстОшибки);
Если ЗначениеЗаполнено(ДанныеПредупреждения.Причина) Тогда
МассивСтрок.Добавить(Символы.ПС);
МассивСтрок.Добавить(ДанныеПредупреждения.Причина);
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеПредупреждения.Решение) Тогда
МассивСтрок.Добавить(Символы.ПС);
МассивСтрок.Добавить(ДанныеПредупреждения.Решение);
КонецЕсли;
Элементы.Предупреждение.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок);
КонецЕсли;
Иначе
Элементы.ПредупреждениеГруппа.Видимость = Ложь;
КонецЕсли;
Иначе
Элементы.ПредупреждениеГруппа.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОформитьСписокПользователей()
@@ -617,6 +682,19 @@
КонецПроцедуры
&НаКлиенте
Процедура ПослеОтветаНаВопросСертификатОтозван(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Объект.Отозван = Не Объект.Отозван;
Элементы.ФормаСертификатОтозван.Пометка = Объект.Отозван;
ОбновитьВидимостьПредупреждения();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСписокПользователей(РежимПросмотра)
@@ -3,27 +3,43 @@
<p>Список можно открыть соответствующей командой в разделе <strong>Администрирование - Органайзер</strong>. </p>
<p>В списке выводится:</p>
<ul><li><strong>Наименование</strong> учетной записи;
</li><li><strong>Имя пользователя</strong> - указывается имя отправителя писем, оно может отличаться от имени <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> в программе;
</li><li><strong>Адрес электронной почты </strong>учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>. </li></ul><p>Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.</p>
</li>
<li><strong>Имя пользователя</strong> - указывается имя отправителя писем, оно может отличаться от имени <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> в программе;
</li>
<li><strong>Адрес электронной почты </strong>учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>. </li></ul><p>Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.</p>
<h3>Системная учетная запись электронной почты</h3>
<ul><li>Программа поставляется с предопределенной учетной записью - системной учетной записью электронной почты. Она используется по умолчанию для рассылки различных уведомлений из программы, например, для автоматической отправки сообщений администратору по завершению обновления программы. Перед использованием этих возможностей необходимо <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настроить</a> системную учетную запись.
</li><li>Настройка системной учетной записи производится по соответствующей команде в разделе <strong>Администрирование - Органайзер</strong>. Также можно <img src="StdPicture.Change"></img><strong>Изменить</strong> ее в списке.</li></ul><h3>Ввод учетной записи электронной почты</h3>
</li>
<li>Настройка системной учетной записи производится по соответствующей команде в разделе <strong>Администрирование - Органайзер</strong>. Также можно <img src="StdPicture.Change"></img><strong>Изменить</strong> ее в списке.</li></ul><h3>Ввод учетной записи электронной почты</h3>
<ul><li>При попытке сохранения программа проверяет введенные учетные записи электронной почты (пытается отослать пробное сообщение). Учетные записи, не прошедшие проверку, не сохраняются.
</li><li>Нажмите <strong>Создать</strong>, введите необходимые поля:
</li>
<li>Нажмите <strong>Создать</strong>, введите необходимые поля:
<ul><li>Укажите <strong>Адрес почты</strong> учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>;
</li><li>Введите <strong>Пароль</strong> учетной записи;
</li><li>Установите с помощью флажков, как <strong>Использовать учетную запись</strong>:
<ul><li><strong>Для отправки почты</strong>;
</li><li><strong>Для получения почты</strong>;</li></ul></li><li>Укажите, <strong>Для кого учетная запись</strong>:
<ul><li><strong>Для всех</strong>;
</li><li><strong>Только для меня</strong>.</li></ul></li><li>Укажите <strong>Имя отправителя</strong> (Ваше имя или название организации);
</li><li>С помощью переключателя определите способ создания учетной записи:
<ul><li><strong>Определить параметры подключения автоматически</strong> (рекомендуется);
<ul><li>Нажмите <strong>Создать</strong>. Программа предпримет попытку автоматической настройки и проверки учетной записи. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. </li></ul></li><li><strong>Настроить параметры подключения вручную</strong>;</li></ul></li><li>
<p>Нажмите <strong>Далее</strong> для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.</p></li></ul></li></ul><h3>Настройка учетной записи электронной почты</h3>
</li>
<li>С помощью переключателя выберите способ авторизации:</li>
<ul><li><b>Ввести пароль</b>, в этом случае укажите в поле справа <strong>Пароль</strong> учетной записи;
</li>
<li><b>Авторизоваться на почтовом сервисе</b>, в этом случае программа выводит инструкцию авторизации, которая зависит от почтового сервиса. Следуйте инструкции программы.</li>
<ul><li>На почтовом сервисе потребуется указать данные о приложении, например, <b>callback URL</b>, который программа формирует автоматически.</li>
<li>Воспользовавшись указаниями почтового сервиса, зарегистрируйте приложение, получите данные для авторизации и заполните нужные поля, например: </li>
<ul><ul><ul><li><b>ID приложения</b>;</li>
<li><b>пароль приложения (client secret)</b>.</li></ul></ul></ul></ul></ul><li>Установите с помощью флажков, как <strong>Почта будет использоваться</strong>:
<ul><li><strong>Для отправки писем</strong>;
</li>
<li><strong>Для получения писем</strong>;</li></ul></li>
<li>Укажите с помощью переключателя, кем будет использоваться почта:
<ul><li><strong>Всеми пользователями (общая почта)</strong></li>
<li><strong>Только мной</strong>.</li></ul></li>
<li>Укажите <strong>Имя отправителя</strong> (Ваше имя или название организации);
</li></ul></li>
<li>Нажмите <strong>Создать</strong>. Программа предпримет попытку автоматической настройки и проверки учетной записи. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. </li>
<li>Если автоматически настроить почту не удалось, нажмите <b>На</b><strong>строить вручную</strong>.</li>
<ul><li>
<p>Нажмите <strong>Далее</strong> для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.</p></li></ul></ul><h3>Настройка учетной записи электронной почты</h3>
<ul><li>Нажмите <img src="StdPicture.Change" width="16" height="16"></img> <strong>Изменить</strong>, с помощью программы произведите необходимые <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настройки</a>.</li></ul><h3>Проверка учетной записи электронной почты</h3>
<ul><li>
<div>Выделите учетную запись в списке, нажмите <strong>Еще - Проверить учетную запись</strong> для проверки введенных параметров учетной записи. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты).</div>
</li><li>
</li>
<li>
<div>Если в учетной записи не прописан пароль, программа его запрашивает. При необходимости введите пароль.</div></li></ul><h3>См. также: </h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
@@ -154,6 +154,10 @@
<metadata>Catalog.КлючевыеОперации</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>Constant.АккредитованныеУдостоверяющиеЦентры</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>Constant.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса</metadata>
<use>DontUse</use>
@@ -3059,6 +3059,9 @@
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Сертификаты.Отозван</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>Сертификаты.Ссылка</segments>
</notDefaultUseAlwaysAttributes>
@@ -1,35 +1,48 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
<p>Открывается по команде <strong>Настройки электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
<p>Открывается по команде <strong>Программы и сертификаты электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
<p>Для электронной подписи и шифрования требуется установить специальную стороннюю программу (криптопровайдер).</p>
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в программе.</p>
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
<p>В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.</p>
<h3>Сертификаты</h3>
<ul><li>Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата.
</li><li>Можно установить отбор только своих сертификатов в поле <strong>Показать</strong>. По умолчанию показываются все сертификаты.
</li><li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
</li><li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных.
</li><li>Также с помощью кнопки <strong>Добавить</strong> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
</li><li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Программы</h3>
</li>
<li>Можно установить отбор только своих сертификатов в поле <strong>Показать</strong>. По умолчанию показываются все сертификаты.
</li>
<li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
</li>
<li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных.
</li>
<li>Также с помощью кнопки <strong>Добавить</strong> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
</li>
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Программы</h3>
<ul><li>Содержит список программ, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ).
</li><li>Эти программы не обязательно должны быть установлены на всех компьютерах. Более того, установка более одной программы на одном компьютере может вызвать конфликты между ними.
</li><li>После запуска в списке уже присутствуют две записи о программах, наиболее распространенных в России - ViPNet CSP и КриптоПро CSP.
</li><li>Можно добавить записи о других программах (поставляются готовые настройки для Microsoft Enhanced CSP, ViPNet CSP, КриптоПро CSP, ЛИССИ CSP, Сигнал-КОМ CSP).
</li><li>Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
</li><li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно.<span lang="RU">
</span></li><li>Linux: <strong>Путь к программе (&lt;Имя программы, соответствующей выделенной строке в списке&gt;)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
<li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с программами электронной подписи и шифрования</a>. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.
</li><li><strong>Проверять подписи и сертификаты на сервере</strong> - этот флажок виден только для серверных баз. Если его установить, тогда проверка электронной подписи и сертификата будет происходить на сервере, что позволяет не устанавливать программу на каждом компьютере, гдетребуется только такие операции.
<ul><li>В записи о программе можно перейти к списку <strong>Пути к программе на серверах Linux</strong> - в котором нужно указать пути для тех компьютеров, на которых сервер 1С:Предприятия работает под управлением ОС Linux.</li></ul></li></ul><h3>Дополнительно</h3>
</li>
<li>Эти программы не обязательно должны быть установлены на всех компьютерах. Более того, установка более одной программы на одном компьютере может вызвать конфликты между ними.
</li>
<li>После запуска в списке уже присутствуют две записи о программах, наиболее распространенных в России - ViPNet CSP и КриптоПро CSP.
</li>
<li>Можно добавить записи о других программах (поставляются готовые настройки для Microsoft Enhanced CSP, ViPNet CSP, КриптоПро CSP, ЛИССИ CSP, Сигнал-КОМ CSP).
</li>
<li>Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
</li>
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно.<span lang="RU">
</span></li>
<li>Linux: <strong>Путь к программе (&lt;Имя программы, соответствующей выделенной строке в списке&gt;)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
<ul><li>В записи о программе можно перейти к списку <strong>Пути к программе на серверах Linux</strong> - в котором нужно указать пути для тех компьютеров, на которых сервер 1С:Предприятия работает под управлением ОС Linux.</li></ul><li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с программами электронной подписи и шифрования</a>. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><h3>Дополнительно</h3>
<ul><li>Задайте <strong>Расширение для зашифрованных файлов</strong> при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>).
</li><li>
</li>
<li>
<div>Напишите <strong>Расширение для файлов подписи</strong> (по умолчанию <strong>.p7s</strong>).</div>
</li><li>
</li>
<li>
<div>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение программы при выполнении команды <strong>Сохранить вместе с электронной подписью</strong>: </div>
<ul><li>
<div><strong>Сохранять все подписи</strong> - все подписи сохраняются; </div>
</li><li>
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li><li>
</li>
<li>
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li>
<li>
<div>Включите флажок <strong>Сохранять сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью.</div></li></ul><h3>См. также:</h3>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
@@ -673,6 +673,22 @@
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ПрограммыНаименование");
ЭлементОформляемогоПоля.Использование = Истина;
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.ТекстЗапрещеннойЯчейкиЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сертификаты.Отозван");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("Сертификаты");
ЭлементОформляемогоПоля.Использование = Истина;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
@@ -11,6 +11,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ДополнительныеДанные = Параметры.ДополнительныеДанные;
ЭлектроннаяПодписьСлужебный.УстановитьЗаголовокОшибки(ЭтотОбъект,
Параметры.ЗаголовокПредупреждения);
@@ -44,8 +46,6 @@
ОписаниеОшибки = Параметры.ОписаниеОшибки;
КонецЕсли;
ДополнительныеДанные = Параметры.ДополнительныеДанные;
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
КонецПроцедуры
@@ -167,7 +167,23 @@
ЭлементОшибка.Видимость = Не ПустаяСтрока(ТекстОшибки);
Если Не ПустаяСтрока(ТекстОшибки) Тогда
ЕстьПричинаИРешение = Неопределено;
Если ТипЗнч(ДополнительныеДанные) = Тип("Структура") Тогда
ЕстьПричинаИРешение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные,
"ДополнительныеДанныеПроверок" + ?(ОшибкаНаСервере, "НаСервере", "НаКлиенте"), Неопределено); // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
КонецЕсли;
Если ЗначениеЗаполнено(ЕстьПричинаИРешение) Тогда
ОшибкаПоКлассификатору = Новый Структура;
ОшибкаПоКлассификатору.Вставить("Ссылка", "");
Причина = ЕстьПричинаИРешение.Причина; // Строка
ОшибкаПоКлассификатору.Вставить("Причина", ФорматированнаяСтрока(Причина));
ОшибкаПоКлассификатору.Вставить("Решение", ФорматированнаяСтрока(ЕстьПричинаИРешение.Решение));
ОшибкаПоКлассификатору.Вставить("СпособУстранения", "");
Иначе
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки);
КонецЕсли;
ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено;
ГруппаПричиныИРешения.Видимость = ЭтоИзвестнаяОшибка;
@@ -175,10 +191,22 @@
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементИнструкция.Имя, "Заголовок", НСтр("ru = 'Подробнее'"));
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.Причина) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементПричиныТекст.Имя, "Заголовок", ОшибкаПоКлассификатору.Причина);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементПричиныТекст.Имя, "Видимость", Ложь);
КонецЕсли;
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.Решение) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементРешенияТекст.Имя, "Заголовок", ОшибкаПоКлассификатору.Решение);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементРешенияТекст.Имя, "Видимость", Ложь);
КонецЕсли;
Если ОшибкаНаСервере Тогда
ЯкорьОшибкиСервер = ОшибкаПоКлассификатору.Ссылка;
@@ -230,4 +258,15 @@
Возврат Неопределено;
КонецФункции
&НаСервере
Функция ФорматированнаяСтрока(Знач Строка)
Если ТипЗнч(Строка) = Тип("Строка") Тогда
Строка = СтроковыеФункции.ФорматированнаяСтрока(Строка);
КонецЕсли;
Возврат Строка;
КонецФункции
#КонецОбласти
@@ -337,6 +337,7 @@
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
@@ -345,6 +346,7 @@
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<dropListButton>false</dropListButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
@@ -5021,7 +5021,7 @@
КонецЦикла;
Для Каждого Элемент Из ВыбранныеЗначения Цикл
ОтчетыКлиентСервер.ДобавитьУникальноеЗначениеВСписок(Список, Элемент.Значение, Неопределено, Истина);
ОтчетыКлиентСервер.ДобавитьУникальноеЗначениеВСписок(Список, Элемент.Значение, Элемент.Представление, Истина);
КонецЦикла;
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
@@ -3541,21 +3541,16 @@
Процедура ДобавитьФормулу(Настройки, КоллекцияПолей, ОписаниеФормулы) Экспорт
ПутьКДанным = Неопределено;
Если ТипЗнч(ОписаниеФормулы) = Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
ПутьКДанным = ОписаниеФормулы.ПутьКДанным;
ОписаниеФормулы = ОписаниеФормулыПоОбразцу(ОписаниеФормулы);
КонецЕсли;
Если ТипЗнч(ОписаниеФормулы) <> Тип("Структура")
Или Не ОписаниеФормулы.Свойство("Формула") Тогда
ЭтоПользовательскоеПолеВыражениеКомпоновкиДанных = ТипЗнч(ОписаниеФормулы) = Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных");
Если Не ЭтоПользовательскоеПолеВыражениеКомпоновкиДанных И (ТипЗнч(ОписаниеФормулы) <> Тип("Структура")
Или Не ОписаниеФормулы.Свойство("Формула")) Тогда
Возврат;
КонецЕсли;
Если ЭтоПользовательскоеПолеВыражениеКомпоновкиДанных Тогда
ПутьКДанным = ОписаниеФормулы.ПутьКДанным;
ОписаниеФормулы = ОписаниеФормулыПоОбразцу(ОписаниеФормулы);
КонецЕсли;
Формулы = Настройки.ПользовательскиеПоля.Элементы;
Если ЗначениеЗаполнено(ПутьКДанным) Тогда
@@ -2057,11 +2057,6 @@
МодульИнтеграцияПодсистемБИП.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
МодульЭлектроннаяПодписьСлужебный.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.
@@ -207,7 +207,6 @@
КонецЦикла;
Возврат;
КонецЕсли;
Если Не ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()) Тогда
@@ -3894,6 +3894,8 @@
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
НомерОбластиДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
УстановитьПривилегированныйРежим(Истина);
Если МодульРаботаВМоделиСервиса.СтатусОбластиДанных(НомерОбластиДанных) <> Перечисления["СтатусыОбластейДанных"]["Используется"] Тогда
ТекстИсключения = НСтр("ru = 'Синхронизация невозможна, потому что область данных отмечена как не рабочая.
@@ -3911,6 +3913,8 @@
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
КонецЕсли;
@@ -3808,8 +3808,8 @@
ОбновлениеИнформационнойБазыСлужебный.ОтменитьВыполнениеВсехПотоков(Группы);
// Повторная регистрация данных.
Запрос = Новый Запрос;
Запрос.Текст =
ЗапросВременных = Новый Запрос;
ЗапросВременных.Текст =
"ВЫБРАТЬ
| ОбновлениеИнформационнойБазы.Ссылка КАК Ссылка
|ИЗ
@@ -3825,7 +3825,7 @@
Попытка
Блокировка.Заблокировать();
ВременныеОчереди = Запрос.Выполнить().Выгрузить();
ВременныеОчереди = ЗапросВременных.Выполнить().Выгрузить();
Для Каждого ВременнаяОчередь Из ВременныеОчереди Цикл
ПланыОбмена.УдалитьРегистрациюИзменений(ВременнаяОчередь.Ссылка);
КонецЦикла;
@@ -3886,14 +3886,12 @@
КонецЕсли;
Если ТипЗнч(Отбор) = Тип("Массив") Тогда
// При передаче отбора по подсистемам незавершенные обработчики добавляются заново.
КонецЕсли;
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьСведенияОБлокируемыхОбъектах(СведенияОБлокируемыхОбъектах);
ОбновлениеИнформационнойБазыСлужебный.ЗаполнитьДанныеДляПараллельногоОтложенногоОбновления(ПараметрыРегистрации);
// Повторное получение временных очередей, если они были добавлены.
ВременныеОчереди = ЗапросВременных.Выполнить().Выгрузить();
// Перенос очередей.
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировки = БлокировкаДанных.Добавить("ПланОбмена.ОбновлениеИнформационнойБазы");
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.6.198";
Описание.Версия = "3.1.6.209";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -6627,19 +6627,32 @@
ИмяКлючевогоРеквизита = ИмяКлючевогоРеквизита(НаборДанныхДляЗаполнения.НастройкиПредопределенныхЭлементов);
ЗначениеКлючаОбъекта = ЗаполняемыйЭлемент[ИмяКлючевогоРеквизита];
МенеджерОбъекта = НаборДанныхДляЗаполнения.МенеджерОбъекта;
Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда
Если Не НаборДанныхДляЗаполнения.НастройкиПредопределенныхЭлементов.ЕстьКолонкаИмяПредопределенныхДанных Тогда
Возврат;
КонецЕсли;
ИмяКлючевогоРеквизита = "ИмяПредопределенныхДанных";
ЗначениеКлючаОбъекта = ЗаполняемыйЭлемент[ИмяКлючевогоРеквизита];
Если Не ЗначениеЗаполнено(ЗначениеКлючаОбъекта) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
МенеджерОбъекта = НаборДанныхДляЗаполнения.МенеджерОбъекта;
СтрокаТаблицы = НаборДанныхДляЗаполнения.ПредопределенныеДанные.Найти(ЗначениеКлючаОбъекта, ИмяКлючевогоРеквизита);
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
КромеРеквизитов = НаборДанныхДляЗаполнения.РеквизитыИсключения;
Если НаборДанныхДляЗаполнения.ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа Тогда
КромеРеквизитов = НаборДанныхДляЗаполнения.РеквизитыИсключения
+ ?(ПустаяСтрока(НаборДанныхДляЗаполнения.РеквизитыИсключения), "", ",") + СтрСоединить(НаборДанныхДляЗаполнения.РеквизитыСЭлементами, ",");
КонецЕсли;
@@ -6652,6 +6665,29 @@
ЗаполнитьЗначенияСвойств(ЗаполняемыйЭлемент, СтрокаТаблицы,, КромеРеквизитов);
КонецЕсли;
Если НаборДанныхДляЗаполнения.ПоддерживаетсяИерархия И ЗначениеЗаполнено(СтрокаТаблицы.Родитель) Тогда
Если ИмяКлючевогоРеквизита = "Ссылка" Тогда
Если ТипЗнч(СтрокаТаблицы.Родитель) = Тип("Строка") Тогда
ЗаполняемыйЭлемент.Родитель = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаТаблицы.Родитель));
ИначеЕсли ТипЗнч(СтрокаТаблицы.Родитель) = Тип("УникальныйИдентификатор") Тогда
ЗаполняемыйЭлемент.Родитель = МенеджерОбъекта.ПолучитьСсылку(СтрокаТаблицы.Родитель);
Иначе
ЗаполняемыйЭлемент.Родитель = СтрокаТаблицы.Родитель;
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаТаблицы.Родитель) = Тип("Строка") Тогда
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(ЗаполняемыйЭлемент));
СуществующиеЭлементы = СуществующиеПоставляемыеЭлементы(НаборДанныхДляЗаполнения.ПредопределенныеДанные,
НаборДанныхДляЗаполнения.НастройкиПредопределенныхЭлементов, МенеджерОбъекта, МетаданныеОбъекта);
ЗаполняемыйЭлемент.Родитель = СуществующиеЭлементы[СтрокаТаблицы.Родитель];
Иначе
ЗаполняемыйЭлемент.Родитель = СтрокаТаблицы.Родитель;
КонецЕсли;
КонецЕсли;
Если НЕ (НаборДанныхДляЗаполнения.ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда
Для Каждого ИмяТабличнойЧасти Из НаборДанныхДляЗаполнения.ТабличныеЧасти Цикл
ЗаполняемыйЭлемент[ИмяТабличнойЧасти].Загрузить(СтрокаТаблицы[ИмяТабличнойЧасти]);
@@ -8722,9 +8758,11 @@
|ГДЕ
| НЕ ОбновлениеИнформационнойБазы.ЭтотУзел";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Узел);
Выгрузка = Запрос.Выполнить().Выгрузить();
УзлыОбмена = Выгрузка.ВыгрузитьКолонку("Узел");
Для Каждого ЭлементСостава Из Метаданные.ПланыОбмена.ОбновлениеИнформационнойБазы.Состав Цикл
ПланыОбмена.УдалитьРегистрациюИзменений(УзлыОбмена, ЭлементСостава.Метаданные);
КонецЦикла;
КонецЕсли;
@@ -2628,6 +2628,7 @@
Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
Группа.ОтображатьЗаголовок = Ложь;
Группа.Отображение = ОтображениеОбычнойГруппы.Нет;
Группа.Поведение = ПоведениеОбычнойГруппы.Обычное;
Группа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
Если ЭтоОсновнаяФорма(Форма) И Не ВыводитьЗаголовкиНастроек(Форма) Тогда
@@ -2682,9 +2682,9 @@
КодПоселения = "1";
ИначеЕсли СтрСравнить(ТипПоселения, "с.п.") = 0 Тогда
КодПоселения = "2";
ИначеЕсли СтрСравнить(ТипПоселения, "меж.тер.'") = 0 Тогда
ИначеЕсли СтрСравнить(ТипПоселения, "меж.тер.") = 0 Тогда
КодПоселения = "3";
ИначеЕсли СтрСравнить(ТипПоселения, "вн.р-н'") = 0 Тогда
ИначеЕсли СтрСравнить(ТипПоселения, "вн.р-н") = 0 Тогда
КодПоселения = "4";
КонецЕсли;
// АПК: 1297-вкл
@@ -53,39 +53,24 @@
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Если ФайлОбъект.ПометкаУдаления Тогда
РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение);
Возврат Неопределено;
КонецЕсли;
Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
Результат = ХранилищеФайлаИзИнформационнойБазы(ФайлОбъект.Ссылка);
Если Результат <> Неопределено Тогда
Возврат Результат.Получить();
Результат = Результат.Получить();
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
// Запись в журнал регистрации.
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Двоичные данные файла отсутствуют в регистре %1.
|Файл: ""%2"".'"),
"ДвоичныеДанныеФайлов",
ПолучитьНавигационнуюСсылку(ПрисоединенныйФайл));
КритичностьОшибки = ?(ВызыватьИсключение, УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Предупреждение);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Открытие файла'", ОбщегоНазначения.КодОсновногоЯзыка()),
КритичностьОшибки,
Метаданные.Справочники[ПрисоединенныйФайл.Метаданные().Имя],
ПрисоединенныйФайл,
СообщениеОбОшибке);
Если Не ВызыватьИсключение Тогда
РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение);
Возврат Неопределено;
КонецЕсли;
ПредставлениеВладельцаФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Присоединен к %1 : %2'"),
Строка(ТипЗнч(ФайлОбъект.ВладелецФайла)),
ФайлОбъект.ВладелецФайла);
ВызватьИсключение РаботаСФайламиСлужебный.ОшибкаФайлНеНайденВХранилищеФайлов(
ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ФайлОбъект.Наименование, ФайлОбъект.Расширение), Ложь,
ПредставлениеВладельцаФайла);
Иначе
Возврат РаботаСФайламиВТомахСлужебный.ДанныеФайла(ПрисоединенныйФайл, ВызыватьИсключение);
КонецЕсли;
@@ -50,36 +50,9 @@
Попытка
Возврат Новый ДвоичныеДанные(ПолноеИмяФайлаВТоме(СвойстваФайла));
Исключение
Если Не ВызыватьИсключение Тогда
ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл);
РаботаСФайламиСлужебный.СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение);
Возврат Неопределено;
КонецЕсли;
СообщениеОбОшибке = ТекстОшибкиПриПолученииФайла(ИнформацияОбОшибке(), ПрисоединенныйФайл);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Получение файла из тома'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
Метаданные.Справочники[ПрисоединенныйФайл.Метаданные().Имя],
ПрисоединенныйФайл,
СообщениеОбОшибке);
ПредставлениеВладельцаФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Присоединен к %1 : %2'"),
Строка(ТипЗнч(СвойстваФайла.ВладелецФайла)),
СвойстваФайла.ВладелецФайла);
ТекстОшибки = НСтр("ru = 'Не удалось открыть файл:
|%1
|который присоединен к:
|%2
|по причине: двоичные данные файла были удалены. Возможно, файл очищен как ненужный или удален антивирусной программой.
|Обратитесь к администратору.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстОшибки,
СвойстваФайла.Наименование + "." + СвойстваФайла.Расширение,
ПредставлениеВладельцаФайла);
КонецПопытки;
КонецФункции
@@ -1019,7 +992,7 @@
КонецФункции
// Длина файлов в запросе ограничена:
// Имя метаданного (80) + дата (6) + подтом для исключения повторения (6 символов) + имя файла (150).
// Имя метаданного (80) + дата (6) + подкаталог для исключения повторения (6 символов) + имя файла (150).
// Итого: 242.
//
Функция ЗапросПроверкиСуществованияФайлов(Знач ТаблицаФайлы)
@@ -1816,26 +1789,6 @@
КонецФункции
// Возвращает текст сообщения об ошибке, добавляя к нему ссылку на элемент
// справочника хранимого файла.
//
Функция ТекстОшибкиПриПолученииФайла(Знач ИнформацияОбОшибке, Знач Файл)
СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
Если Файл <> Неопределено Тогда
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Ссылка на файл: ""%2"".'"),
СообщениеОбОшибке,
ПолучитьНавигационнуюСсылку(Файл) );
КонецЕсли;
Возврат СообщениеОбОшибке;
КонецФункции
// Возвращает тип хранения добавляемого файла в зависимости от его расширения и размера.
//
// Параметры:
@@ -797,7 +797,7 @@
ЕстьТекущаяВерсия = ЗначениеЗаполнено(ТекущаяВерсия);
КонецЕсли;
Если ЕстьТекущаяВерсия Тогда // С возможностью хранить версии
ИменаРеквизитов = "Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу";
ИменаРеквизитов = "Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу,ПометкаУдаления";
Если МетаданныеОбъектаФайла.Иерархический Тогда
ИменаРеквизитов = ИменаРеквизитов + "," + "ЭтоГруппа";
КонецЕсли;
@@ -807,7 +807,7 @@
ФайлОбъект.Вставить("ЭтоГруппа", Ложь);
КонецЕсли;
Иначе // Без возможности хранить версии
ИменаРеквизитов = "Ссылка,ТипХраненияФайла,ВладелецФайла,Наименование,Расширение,Том,ПутьКФайлу";
ИменаРеквизитов = "Ссылка,ТипХраненияФайла,ВладелецФайла,Наименование,Расширение,Том,ПутьКФайлу,ПометкаУдаления";
Если МетаданныеОбъектаФайла.Иерархический Тогда
ИменаРеквизитов = ИменаРеквизитов + "," + "ЭтоГруппа";
КонецЕсли;
@@ -819,7 +819,7 @@
// Это справочник версий файлов.
ИначеЕсли ОбщегоНазначения.ЕстьРеквизитОбъекта("РодительскаяВерсия", МетаданныеОбъектаФайла) Тогда
ФайлОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл,
"Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу,Владелец");
"Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу,Владелец,ПометкаУдаления");
ФайлОбъект.Вставить("ВладелецФайла",
ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлОбъект.Владелец, "ВладелецФайла"));
ФайлОбъект.Удалить("Владелец");
@@ -4034,35 +4034,48 @@
// Возвращаемое значение:
// Строка
//
Функция ОшибкаФайлНеНайденВХранилищеФайлов(ИмяФайла, ПоискВТоме = Истина, ВладелецФайла = "") Экспорт
Функция ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект)
Если ПоискВТоме Тогда
ИмяФайла = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ФайлОбъект.Наименование, ФайлОбъект.Расширение);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось открыть файл:
|%1
|который присоединен к:
|%2
|
|Данные файла были удалены. Возможно, файл очищен как ненужный или удален антивирусной программой.'"),
ИмяФайла,
ВладелецФайла);
|%2'"),
ИмяФайла, ОбщегоНазначения.ПредметСтрокой(ФайлОбъект.ВладелецФайла));
Если ФайлОбъект.ПометкаУдаления Тогда
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'Файл помечен на удаление и очищен как ненужный.'");
ИначеЕсли ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный или удален антивирусной программой.'");
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось открыть файл:
|%1
|который присоединен к:
|%2
|
|Данные файла были удалены. Возможно, файл очищен как ненужный.'"),
ИмяФайла,
ВладелецФайла);
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'Данные файла недоступны, т.к. возможно файл был очищен как ненужный.'");
КонецЕсли;
Возврат ТекстОшибки;
КонецФункции
// Параметры:
// ФайлОбъект - ОпределяемыйТип.ПрисоединенныйФайлОбъект
// ВызыватьИсключение - Булево
//
Процедура СообщитьОбОшибкеФайлНеНайден(ФайлОбъект, ВызыватьИсключение) Экспорт
СообщениеОбОшибке = ОшибкаФайлНеНайденВХранилищеФайлов(ФайлОбъект);
КритичностьОшибки = ?(ВызыватьИсключение, УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Предупреждение);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Открытие файла'", ОбщегоНазначения.КодОсновногоЯзыка()),
КритичностьОшибки, ФайлОбъект.Ссылка.Метаданные(), ФайлОбъект.Ссылка, СообщениеОбОшибке);
Если ВызыватьИсключение Тогда
ВызватьИсключение СообщениеОбОшибке;
КонецЕсли;
КонецПроцедуры
// Возвращает номер по нарастанию. Предыдущее значение берется из регистра сведений НомераОтсканированныхФайлов.
// Параметры:
// Владелец - ЛюбаяСсылка - владелец файла.
@@ -48,12 +48,19 @@
//
Процедура НачальныеНастройкиФормы(ИмяФормы) Экспорт
РежимСовместимости = СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
СуффиксКлючаНастроек = "НастройкиОкна";
Иначе
СуффиксКлючаНастроек = "НастройкиОкнаТонкогоКлиента";
КонецЕсли;
Если СтрНайти(ИмяФормы, ".") = 0 Тогда
ПутьФормы = "Обработка.УправлениеПодключениемDSS.Форма." + ИмяФормы + "/НастройкиФормы";
ПутьОкна = "Обработка.УправлениеПодключениемDSS.Форма." + ИмяФормы + "/НастройкиОкна";
ПутьОкна = "Обработка.УправлениеПодключениемDSS.Форма." + ИмяФормы + СуффиксКлючаНастроек;
Иначе
ПутьФормы = ИмяФормы + "/НастройкиФормы";
ПутьОкна = ИмяФормы + "/НастройкиОкна";
ПутьОкна = ИмяФормы + СуффиксКлючаНастроек;
КонецЕсли;
ОбщегоНазначения.ХранилищеСистемныхНастроекУдалить(ПутьФормы, "", ИмяПользователя());
@@ -1410,13 +1410,19 @@
ГраницаУстаревания = НачалоДня - 2*24*60*60;
Ключи = ХранилищеСистемныхНастроек.Загрузить(КлючОбъектаХранения);
РежимСовместимости = ВерсияРежимаСовместимости();
Если ТипЗнч(Ключи) = Тип("Соответствие") Тогда
ИменаНастроек = Новый Массив;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
ИменаНастроек.Добавить("/НастройкиОкна");
ИменаНастроек.Добавить("/Такси/НастройкиОкна");
Иначе
ИменаНастроек.Добавить("/НастройкиОкнаТонкогоКлиента");
ИменаНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента");
КонецЕсли;
ИменаНастроек.Добавить("/НастройкиОкнаВебКлиента");
ИменаНастроек.Добавить("/НастройкиОкнаМобильногоКлиента");
ИменаНастроек.Добавить("/Такси/НастройкиОкна");
ИменаНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
ИменаНастроек.Добавить("/Такси/НастройкиОкнаМобильногоКлиента");
Для Каждого КлючИЗначение Из Ключи Цикл
@@ -1464,6 +1470,13 @@
Отбор = Новый Структура("Пользователь", ИмяПользователя);
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
КлючПоискаРусский = "НастройкиОкна";
КлючПоискаАнглийский = "WindowSettings";
Иначе
КлючПоискаРусский = "НастройкиОкнаТонкогоКлиента";
КлючПоискаАнглийский = "ThinClientWindowSettings";
КонецЕсли;
Пока Истина Цикл
Попытка
ЕстьСледующей = Выборка.Следующий();
@@ -1488,8 +1501,8 @@
Продолжить;
КонецЕсли;
ПоследняяЧастьКлюча = ЧастиКлючаОбъекта[ЧастиКлючаОбъекта.ВГраница()];
Если СтрНайти(ПоследняяЧастьКлюча, "НастройкиОкна") > 0
Или СтрНайти(ПоследняяЧастьКлюча, "WindowSettings") > 0 Тогда
Если СтрНайти(ПоследняяЧастьКлюча, КлючПоискаРусский) > 0
Или СтрНайти(ПоследняяЧастьКлюча, КлючПоискаАнглийский) > 0 Тогда
ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, "", ИмяПользователя);
КонецЕсли;
КонецЦикла;
@@ -3115,52 +3128,24 @@
ВерсияПлатформы = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения);
Если ТекущийРежим = Режимы.НеИспользовать Тогда
ПоддерживаемыеВерсииПлатформы = СтрРазделить("8.3.14, 8.3.15, 8.3.16, 8.3.17", ", ", Ложь);
ПоддерживаемыеВерсииПлатформы = СтрРазделить("8.3.14, 8.3.15, 8.3.16, 8.3.17, 8.3.18, 8.3.19, 8.3.20, 8.3.21", ", ", Ложь);
Если ПоддерживаемыеВерсииПлатформы.Найти(ВерсияПлатформы) <> Неопределено Тогда
НеПоддерживаемаяВерсияПлатформы = "";
Иначе
НеПоддерживаемаяВерсияПлатформы = ВерсияПлатформы;
КонецЕсли;
ИначеЕсли ТекущийРежим = Режимы.Версия8_1 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.1"
ИначеЕсли ТекущийРежим = Режимы.Версия8_2_13 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.2.13"
ИначеЕсли ТекущийРежим = Режимы.Версия8_2_16 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.2.16";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_1 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.1";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_2 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.2";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_3 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.3";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_4 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.4";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_5 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.5";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_6 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.6";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_7 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.7";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_8 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.8";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_9 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.9";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_10 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.10";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_11 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.11";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_12 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.12";
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_13 Тогда
НеПоддерживаемаяВерсияПлатформы = "8.3.13";
Иначе
ТекущийРежимСтрокой = Строка(ТекущийРежим);
Если СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_14")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_15")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_16")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_17") Тогда
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_17")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_18")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_19")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_20")
Или СтрЗаканчиваетсяНа(ТекущийРежимСтрокой, "8_3_21") Тогда
НеПоддерживаемаяВерсияПлатформы = "";
Иначе
@@ -3758,15 +3743,27 @@
Возврат;
КонецЕсли;
РежимСовместимости = ВерсияРежимаСовместимости();
ТипыНастроек = Новый Массив;
// Русский вариант.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
ТипыНастроек.Добавить("/НастройкиОкна");
ТипыНастроек.Добавить("/Такси/НастройкиОкна");
Иначе
ТипыНастроек.Добавить("/НастройкиОкнаТонкогоКлиента");
ТипыНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента");
КонецЕсли;
ТипыНастроек.Добавить("/НастройкиОкнаВебКлиента");
ТипыНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
// Английский вариант.
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
ТипыНастроек.Добавить("/WindowSettings");
ТипыНастроек.Добавить("/Taxi/WindowSettings");
Иначе
ТипыНастроек.Добавить("/ThinClientWindowSettings");
ТипыНастроек.Добавить("/Taxi/ThinClientWindowSettings");
КонецЕсли;
ТипыНастроек.Добавить("/WebClientWindowSettings");
ТипыНастроек.Добавить("/Taxi/WebClientWindowSettings");
@@ -308,24 +308,40 @@
ВремяЖизниБлокировки = ВремяЖизниБлокировки();
ВремяСнятияБлокировки = ТекущаяДатаСеанса() - ВремяЖизниБлокировки;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
НачалоКонтроляУдаленияПомеченных = ТекущаяДатаСеанса();
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000
| УдаляемыеОбъекты.ИдентификаторСеанса КАК ИдентификаторСеанса,
| УдаляемыеОбъекты.ВремяБлокировки КАК ВремяБлокировки
|ИЗ
| РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты";
| РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты
|ГДЕ
| &Условие
|
|УПОРЯДОЧИТЬ ПО
| ВремяБлокировки";
УсловиеПоВремени = "УдаляемыеОбъекты.ВремяБлокировки > &ВремяБлокировки";
ТекстЗапросаСУсловием = СтрЗаменить(ТекстЗапроса, "&Условие", УсловиеПоВремени);
Запрос.УстановитьПараметр("ВремяСнятияБлокировки", ВремяСнятияБлокировки);
РезультатЗапроса = Запрос.Выполнить();
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условие", "ИСТИНА");
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ОбработанныеСеансы = Новый Массив;
Пока РезультатЗапроса.Количество() > 0 Цикл
Для Каждого ВыборкаДетальныеЗаписи Из РезультатЗапроса Цикл
Если ОбработанныеСеансы.Найти(ВыборкаДетальныеЗаписи.ИдентификаторСеанса) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Попытка
Если ВыборкаДетальныеЗаписи.ВремяБлокировки <= ВремяСнятияБлокировки
ИЛИ ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ВыборкаДетальныеЗаписи.ИдентификаторСеанса) = Неопределено Тогда
СнятьБлокировкуИспользованияУдаляемыхОбъектов(ВыборкаДетальныеЗаписи.ИдентификаторСеанса);
ОбработанныеСеансы.Добавить(ВыборкаДетальныеЗаписи.ИдентификаторСеанса);
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации(
@@ -335,6 +351,19 @@
+ Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЦикла;
Если ВыборкаДетальныеЗаписи.ВремяБлокировки > НачалоКонтроляУдаленияПомеченных Тогда
// Если параллельно работает удаление помеченных и дошли до новых записей, то прерываем выполнение.
Прервать;
КонецЕсли;
ОбработанныеСеансы = Новый Массив;
Запрос.Текст = ТекстЗапросаСУсловием;
Запрос.УстановитьПараметр("ВремяБлокировки", ВыборкаДетальныеЗаписи.ВремяБлокировки);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
КонецЦикла;
КонецПроцедуры
// Возвращает максимальное количество секунд, в течение которого должен быть установлен
@@ -1509,107 +1509,7 @@
//
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено) Экспорт
ВызыватьИсключение = ОписаниеОшибки = Null;
МенеджерКриптографииДляПроверки = МенеджерКриптографии;
СертификатДляПроверки = Сертификат;
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
СертификатДляПроверки = ПолучитьИзВременногоХранилища(Сертификат);
КонецЕсли;
Если ТипЗнч(СертификатДляПроверки) = Тип("ДвоичныеДанные") Тогда
ДанныеСертификата = СертификатДляПроверки;
СертификатДляПроверки = Новый СертификатКриптографии(СертификатДляПроверки);
Иначе
ДанныеСертификата = СертификатДляПроверки.Выгрузить();
КонецЕсли;
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
ИспользоватьЭлектроннуюПодписьВМоделиСервиса =
ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса;
Если ТипЗнч(ДанныеСертификата) = Тип("ДвоичныеДанные") Тогда
ПараметрыСоздания.АлгоритмПодписи =
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
КонецЕсли;
МенеджерКриптографииДляПроверки = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(
"ПроверкаСертификата", ПараметрыСоздания);
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
РежимыПроверкиСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата(
ЗначениеЗаполнено(НаДату));
Если МенеджерКриптографииДляПроверки = Неопределено
Или МенеджерКриптографииДляПроверки = "СервисКриптографии" Тогда
МодульСервисКриптографии = ОбщегоНазначения.ОбщийМодуль("СервисКриптографии");
ПараметрыПроверки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПроверкиСертификатаВСервисе(
ОбщиеНастройки(), РежимыПроверкиСертификата);
Попытка
Если ПараметрыПроверки <> Неопределено Тогда
// АПК:287-выкл - №640 - допустимо вызывать несуществующую процедуру БТС,
// так как проверяется версия БТС 2.0.3, начиная с которой процедура существует.
Результат = МодульСервисКриптографии.ПроверитьСертификатСПараметрами(ДанныеСертификата, ПараметрыПроверки);
// АПК:287-вкл
Иначе
Результат = МодульСервисКриптографии.ПроверитьСертификат(ДанныеСертификата);
КонецЕсли;
Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если ВызыватьИсключение Тогда
ВызватьИсключение;
КонецЕсли;
Возврат Ложь;
КонецПопытки;
Если Не Результат Тогда
ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаСертификатНедействителен();
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
Иначе
Попытка
МенеджерКриптографииДляПроверки.ПроверитьСертификат(СертификатДляПроверки, РежимыПроверкиСертификата);
Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если ВызыватьИсключение Тогда
ВызватьИсключение;
КонецЕсли;
Возврат Ложь;
КонецПопытки;
КонецЕсли;
ОшибкаПросрочки = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатПросрочен(СертификатДляПроверки,
НаДату, ЭлектроннаяПодписьСлужебный.ДобавкаВремени());
Если ЗначениеЗаполнено(ОшибкаПросрочки) Тогда
ОписаниеОшибки = ОшибкаПросрочки;
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
Если ВызыватьИсключение Тогда
ОписаниеОшибки = Null;
Иначе
ОписаниеОшибки = "";
КонецЕсли;
Возврат Истина;
Возврат ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки, НаДату);
КонецФункции
@@ -239,6 +239,298 @@
КонецПроцедуры
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры) Экспорт
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
НайденПериодДействия = Неопределено;
НайденаДатаОкончанияДействия = Неопределено;
МассивПолейПоиска = СтрРазделить(ПоляПоиска, ",");
Государственный = Ложь;
Для Каждого ПолеПоиска Из МассивПолейПоиска Цикл
ПодготовленноеПолеПоиска = ПодготовитьПолеПоиска(ПолеПоиска);
Если НайденПериодДействия = Неопределено Тогда
НайденПериодДействия = АккредитованныеУдостоверяющиеЦентры.ПериодыДействия.Получить(ПодготовленноеПолеПоиска);
КонецЕсли;
Если НайденаДатаОкончанияДействия = Неопределено Тогда
НайденаДатаОкончанияДействия = АккредитованныеУдостоверяющиеЦентры.ДатыОкончанияДействия.Получить(ПодготовленноеПолеПоиска);
КонецЕсли;
Если Не Государственный И АккредитованныеУдостоверяющиеЦентры.ГосударственныеУЦ.Получить(ПодготовленноеПолеПоиска) <> Неопределено Тогда
Государственный = Истина;
КонецЕсли;
КонецЦикла;
Если НайденПериодДействия = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Государственный", Государственный);
Результат.Вставить("ПериодыДействия", НайденПериодДействия);
Результат.Вставить("ДатаОкончанияДействия", НайденаДатаОкончанияДействия);
Результат.Вставить("ДатаПроверкиОбновления", АккредитованныеУдостоверяющиеЦентры.ДатаПроверкиОбновления);
Возврат Результат;
КонецФункции
Функция ПодготовитьПолеПоиска(Знач ПолеПоиска) Экспорт
ПолеПоиска = ВРег(ПолеПоиска);
ПолеПоиска = СтрЗаменить(ПолеПоиска, """", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "«", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "»", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "“", "");
ПолеПоиска = СтрЗаменить(ПолеПоиска, "”", "");
Возврат ПолеПоиска;
КонецФункции
Функция КонтекстПроверкиУдостоверяющегоЦентраСертификата() Экспорт
Структура = Новый Структура;
Структура.Вставить("ДанныеУдостоверяющегоЦентра");
Структура.Вставить("НаименованиеУдостоверяющегоЦентра", "");
Структура.Вставить("ДобавкаВремени");
Структура.Вставить("НаДату");
Структура.Вставить("ЭтоПроверкаПодписи", Ложь);
Возврат Структура;
КонецФункции
Функция ДанныеДляПроверкиУдостоверяющегоЦентра(Сертификат) Экспорт
Результат = Новый Структура("ПоляПоиска, НаименованиеУдостоверяющегоЦентра");
СвойстваИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваИздателяСертификата(Сертификат);
Результат.НаименованиеУдостоверяющегоЦентра = СвойстваИздателя.ОбщееИмя;
ПоляПоиска = Новый Массив;
Если СвойстваИздателя.Свойство("ОГРН") И ЗначениеЗаполнено(СвойстваИздателя.ОГРН) Тогда
ПоляПоиска.Добавить(СвойстваИздателя.ОГРН);
КонецЕсли;
Если ЗначениеЗаполнено(СвойстваИздателя.ОбщееИмя) Тогда
ПоляПоиска.Добавить(СвойстваИздателя.ОбщееИмя);
КонецЕсли;
Если ПоляПоиска.Количество() > 0 Тогда
Результат.ПоляПоиска = СтрСоединить(ПоляПоиска, ",");
КонецЕсли;
Возврат Результат;
КонецФункции
// Только для внутреннего использования.
// Возвращаемое значение:
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
//
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, КонтекстПроверки) Экспорт
ДанныеУдостоверяющегоЦентра = КонтекстПроверки.ДанныеУдостоверяющегоЦентра;
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
РезультатПроверкиУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
РезультатПроверкиУдостоверяющегоЦентра.НайденВСпискеУдостоверяющихЦентров = Истина;
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный;
НаДату = КонтекстПроверки.НаДату;
ДатаДляСравнения = НаДату + КонтекстПроверки.ДобавкаВремени;
Количество = ДанныеУдостоверяющегоЦентра.ПериодыДействия.Количество();
Для НомерСКонца = 1 По Количество Цикл
ПериодДействия = ДанныеУдостоверяющегоЦентра.ПериодыДействия[Количество - НомерСКонца];
Если ДатаДляСравнения < ПериодДействия.ДатаС Тогда
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(ПериодДействия.ДатаПо) Или ДатаДляСравнения <= ПериодДействия.ДатаПо Тогда
РезультатПроверкиУдостоверяющегоЦентра.Действует = Истина;
Прервать;
КонецЕсли;
Если ДатаДляСравнения > ПериодДействия.ДатаПо Тогда
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
ДатаПрекращенияАккредитацииУЦ = ПериодДействия.ДатаПо;
Прервать;
КонецЕсли;
КонецЦикла;
СвойстваСубъекта = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСубъектаСертификата(Сертификат);
ЭтоИННФизЛица = ЗначениеЗаполнено(СвойстваСубъекта.ИНН) И ЭтоИННФизЛица(СвойстваСубъекта.ИНН);
ЭтоЮридическоеЛицо = ЗначениеЗаполнено(СвойстваСубъекта.ИННЮЛ) Или Не ЭтоИННФизЛица;
ЭтоИндивидуальныйПредприниматель = ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП);
ЭтоФизическоеЛицо = Не ЭтоЮридическоеЛицо И Не ЭтоИндивидуальныйПредприниматель;
ДатаПрекращенияДействия = ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ();
// Аккредитация удостоверяющего центра прекращена.
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
Если ВозможенПеревыпуск Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли;
Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки =
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина = Неопределено;
КонецЕсли;
Возврат РезультатПроверкиУдостоверяющегоЦентра;
КонецЕсли;
ДатаПредупреждения = Неопределено;
// Сертификаты ЮЛ и ИП, выданные коммерческими АУЦ не действуют или не будут действовать.
Если Не ДанныеУдостоверяющегоЦентра.Государственный И Не ЭтоФизическоеЛицо И (НаДату >= ДатаПрекращенияДействия
Или НаДату + 30*24*60*60 >= ДатаПрекращенияДействия И Не КонтекстПроверки.ЭтоПроверкаПодписи) Тогда
РезультатПроверкиУдостоверяющегоЦентра.Действует = (НаДату < ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Ложь;
Если НаДату < ДатаПрекращенияДействия Тогда
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'");
ДатаПредупреждения = ДатаПрекращенияДействия;
Иначе
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'");
КонецЕсли;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстОшибки,
Формат(ДатаПрекращенияДействия, "ДЛФ=D"),
?(ЭтоИндивидуальныйПредприниматель, НСтр("ru = 'индивидуальным предпринимателям'"), НСтр("ru = 'юридическим лицам и их сотрудникам'")));
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли;
КонецЕсли;
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Или КонтекстПроверки.ЭтоПроверкаПодписи Тогда
Возврат РезультатПроверкиУдостоверяющегоЦентра;
КонецЕсли;
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(Сертификат, КонтекстПроверки.ДобавкаВремени);
Если СвойстваСертификата.ДействителенДо < НаДату Тогда
Возврат РезультатПроверкиУдостоверяющегоЦентра;
КонецЕсли;
// Аккредитация удостоверяющего центра скоро закончится.
Если ЗначениеЗаполнено(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия)
И (ДатаПредупреждения = Неопределено Или ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия < ДатаПредупреждения) Тогда
ДатаПредупреждения = ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
Формат(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
Если ВозможенПеревыпуск Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли;
КонецЕсли;
// Срок действия сертификата скоро закончится.
Если СвойстваСертификата.ДействителенДо <= НаДату + КоличествоДнейДляОповещенияОбОкончанииСрокаДействия()*24*60*60
И (ДатаПредупреждения = Неопределено Или СвойстваСертификата.ДействителенДо < ДатаПредупреждения)Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"),
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=D"));
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
Если ВозможенПеревыпуск Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
КонецЕсли;
КонецЕсли;
Возврат РезультатПроверкиУдостоверяющегоЦентра;
КонецФункции
Функция КоличествоДнейДляОповещенияОбОкончанииСрокаДействия()
Возврат 30;
КонецФункции
Функция ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ()
Возврат Дата(2023, 1, 1);
КонецФункции
Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт
Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc";
КонецФункции
Функция ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия)
ВозможенПеревыпуск = (ЭтоФизическоеЛицо Или ДатаПрекращенияДействия > ДобавитьМесяц(НаДату, 2));
Возврат ВозможенПеревыпуск;
КонецФункции
// Конец Локализация
#КонецОбласти
@@ -8,6 +8,167 @@
#Область СлужебныйПрограммныйИнтерфейс
// Только для внутреннего использования.
// Проверяет действительность сертификата криптографии.
// Только для работы через средства платформы (МенеджерКриптографии).
//
// Параметры:
// МенеджерКриптографии - Неопределено - получить менеджер криптографии автоматически.
// - МенеджерКриптографии - использовать указанный менеджер криптографии.
//
// Сертификат - СертификатКриптографии - сертификат.
// - ДвоичныеДанные - двоичные данные сертификата.
// - Строка - адрес временного хранилища, содержащего двоичные данные сертификата.
//
// ОписаниеОшибки - Null - вызвать исключение при ошибке проверки.
// - Строка - содержит описание ошибки, если произошла ошибка.
//
// НаДату - Дата - проверить сертификат на указанную дату.
// Если параметр не указан или указана пустая дата,
// тогда проверять на текущую дату сеанса.
// ДополнительныеПараметры -см. ДополнительныеПараметрыПроверкиСертификата
//
// Возвращаемое значение:
// Булево - Истина, если проверка выполнена успешно,
// Ложь, если не удалось получить менеджер криптографии (когда не указан).
//
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт
ВызыватьИсключение = ОписаниеОшибки = Null;
МенеджерКриптографииДляПроверки = МенеджерКриптографии;
СертификатДляПроверки = Сертификат;
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
СертификатДляПроверки = ПолучитьИзВременногоХранилища(Сертификат);
КонецЕсли;
Если ТипЗнч(СертификатДляПроверки) = Тип("ДвоичныеДанные") Тогда
ДанныеСертификата = СертификатДляПроверки;
СертификатДляПроверки = Новый СертификатКриптографии(СертификатДляПроверки);
Иначе
ДанныеСертификата = СертификатДляПроверки.Выгрузить();
КонецЕсли;
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
ИспользоватьЭлектроннуюПодписьВМоделиСервиса =
ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.ПоказатьОшибку = ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса;
Если ТипЗнч(ДанныеСертификата) = Тип("ДвоичныеДанные") Тогда
ПараметрыСоздания.АлгоритмПодписи =
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
КонецЕсли;
МенеджерКриптографииДляПроверки = МенеджерКриптографии(
"ПроверкаСертификата", ПараметрыСоздания);
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
РежимыПроверкиСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата(
ЗначениеЗаполнено(НаДату));
Если МенеджерКриптографииДляПроверки = Неопределено
Или МенеджерКриптографииДляПроверки = "СервисКриптографии" Тогда
МодульСервисКриптографии = ОбщегоНазначения.ОбщийМодуль("СервисКриптографии");
ПараметрыПроверки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПроверкиСертификатаВСервисе(
ЭлектроннаяПодпись.ОбщиеНастройки(), РежимыПроверкиСертификата);
Попытка
Если ПараметрыПроверки <> Неопределено Тогда
// АПК:287-выкл - №640 - допустимо вызывать несуществующую процедуру БТС,
// так как проверяется версия БТС 2.0.3, начиная с которой процедура существует.
Результат = МодульСервисКриптографии.ПроверитьСертификатСПараметрами(ДанныеСертификата, ПараметрыПроверки);
// АПК:287-вкл
Иначе
Результат = МодульСервисКриптографии.ПроверитьСертификат(ДанныеСертификата);
КонецЕсли;
Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если ВызыватьИсключение Тогда
ВызватьИсключение;
КонецЕсли;
Возврат Ложь;
КонецПопытки;
Если Не Результат Тогда
ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаСертификатНедействителен();
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
Иначе
Попытка
МенеджерКриптографииДляПроверки.ПроверитьСертификат(СертификатДляПроверки, РежимыПроверкиСертификата);
Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если ВызыватьИсключение Тогда
ВызватьИсключение;
КонецЕсли;
Возврат Ложь;
КонецПопытки;
КонецЕсли;
ОшибкаПросрочки = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатПросрочен(СертификатДляПроверки,
НаДату, ДобавкаВремени());
Если ЗначениеЗаполнено(ОшибкаПросрочки) Тогда
ОписаниеОшибки = ОшибкаПросрочки;
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
Если ДополнительныеПараметры = Неопределено Тогда
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
КонецЕсли;
Если ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра Тогда
Результат = РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатДляПроверки, НаДату,
ДополнительныеПараметры.ДляПроверкиПодписи);
Если Не Результат.Действует Тогда
ОписаниеОшибки = Результат.Предупреждение.ТекстОшибки;
ДополнительныеПараметры.Предупреждение = Результат.Предупреждение;
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(Результат.Предупреждение.ТекстОшибки) Тогда
ДополнительныеПараметры.Предупреждение = Результат.Предупреждение;
КонецЕсли;
КонецЕсли;
Если ВызыватьИсключение Тогда
ОписаниеОшибки = Null;
Иначе
ОписаниеОшибки = "";
КонецЕсли;
Возврат Истина;
КонецФункции
Функция ДополнительныеПараметрыПроверкиСертификата() Экспорт
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
ДополнительныеПараметры.Вставить("ДляПроверкиПодписи", Ложь);
ДополнительныеПараметры.Вставить("Предупреждение");
Возврат ДополнительныеПараметры;
КонецФункции
// Добавляет сертификаты к переданному объекту.
Процедура ДобавитьСертификатыШифрования(ОбъектСсылка, МассивОтпечатков) Экспорт
УстановитьПривилегированныйРежим(Истина);
@@ -223,6 +384,60 @@
КонецФункции
// Только для внутреннего использования.
//
// Параметры:
// СертификатКриптографии
// НаДату - Неопределено, Дата
// ЭтоПроверкаПодписи - Булево - Это проверка подписи, предупреждение (не ошибка) не будет показано.
//
// Возвращаемое значение:
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
//
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено
Или ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры() = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
СертификатКриптографии);
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйПовтИсп.ДанныеУдостоверяющегоЦентра(
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска);
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра;
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра;
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ТекущаяДатаСеанса(), НаДату);
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии, КонтекстПроверки);
Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда
Результат.Предупреждение.Причина = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Причина);
КонецЕсли;
Если ЗначениеЗаполнено(Результат.Предупреждение.Решение) Тогда
Результат.Предупреждение.Решение = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Решение);
КонецЕсли;
Возврат Результат;
КонецФункции
// Только для внутреннего использования.
Процедура ИзменитьОтметкуОНапоминании(Сертификат, Напомнить, ИдентификаторНапоминания) Экспорт
@@ -429,13 +644,6 @@
КонецПроцедуры
// См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.
Процедура ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка) Экспорт
Отчеты.ПродлениеСрокаДействияЭлектронныхПодписей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
КонецПроцедуры
#Область ПоставляемыеДанные
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
@@ -732,12 +940,95 @@
КонецПроцедуры
// См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.
Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат;
КонецЕсли;
Описание = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
Описание = МодульРаботаСКлассификаторами.ОписаниеКлассификатора();
КонецЕсли;
Если Описание = Неопределено Тогда
Возврат;
КонецЕсли;
Описание.Идентификатор = ИдентификаторКлассификатора();
Описание.Наименование = НСтр("ru = 'Список аккредитованных удостоверяющих центров'");
Описание.ОбновлятьАвтоматически = Истина;
Описание.ОбщиеДанные = Истина;
Описание.ОбработкаРазделенныхДанных = Ложь;
Описание.СохранятьФайлВКэш = Ложь;
Классификаторы.Добавить(Описание);
КонецПроцедуры
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
Процедура ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
Если Идентификатор <> ИдентификаторКлассификатора() Тогда
Возврат;
КонецЕсли;
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Обработан = Истина;
Возврат;
КонецЕсли;
ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Определяет внутренний идентификатор классификатора для подсистемы РаботаСКлассификаторами.
//
// Возвращаемое значение:
// Строка - идентификатор классификатора.
//
Функция ИдентификаторКлассификатора() Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
Возврат МодульЭлектроннаяПодписьСлужебныйЛокализация.ИдентификаторКлассификатора();
КонецФункции
// Только для внутреннего использования.
Функция ОшибкаСертификатПомеченКакОтозванный() Экспорт
ПредставлениеОшибки = Новый Структура;
ПредставлениеОшибки.Вставить("ТекстОшибки", НСтр("ru='Сертификат помечен в программе как отозванный.'"));
ПредставлениеОшибки.Вставить("Причина", НСтр("ru='Возможно, подано заявление на отзыв сертификата.'"));
ПредставлениеОшибки.Вставить("Решение", СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru='В меню <b>Еще</b> в <a href=""%1"">карточке сертификата</a> можно снять пометку <b>Сертификат отозван</b>. Но если сертификат отозван в удостоверяющем центре, сделать подпись таким сертификатом будет все равно невозможно.'"),
"ОткрытьСертификат"));
Возврат ПредставлениеОшибки;
КонецФункции
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат;
КонецЕсли;
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
МодульЭлектроннаяПодписьСлужебныйЛокализация.ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры);
КонецПроцедуры
// Возвращает дополнительные параметры создания менеджера криптографии.
//
// Возвращаемое значение:
@@ -3473,7 +3764,7 @@
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Форма.Сертификат,
"ВводитьПарольВПрограммеЭлектроннойПодписи, Отпечаток, Программа,
|ДействителенДо, ДанныеСертификата");
|ДействителенДо, ДанныеСертификата, Отозван");
Попытка
ДвоичныеДанныеСертификата = ЗначенияРеквизитов.ДанныеСертификата.Получить();
@@ -3507,12 +3798,16 @@
Форма.СертификатПрограмма = ЗначенияРеквизитов.Программа;
Форма.ВыполнятьВМоделиСервиса = ЭтоВстроенныйКриптопровайдер;
Форма.СертификатДействителенДо = ЗначенияРеквизитов.ДействителенДо;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "СертификатОтозван") Тогда
Форма.СертификатОтозван = ЗначенияРеквизитов.Отозван;
КонецЕсли;
Форма.СертификатВводитьПарольВПрограммеЭлектроннойПодписи = ЗначенияРеквизитов.ВводитьПарольВПрограммеЭлектроннойПодписи;
ЕстьПараметрОповеститьОбОкончанииСрокаДействия = Форма.Параметры.Свойство("ОповеститьОбОкончанииСрокаДействия");
Если ЕстьПараметрОповеститьОбОкончанииСрокаДействия И Форма.Параметры.ОповеститьОбОкончанииСрокаДействия
Или Не ЕстьПараметрОповеститьОбОкончанииСрокаДействия Тогда
Форма.ОповеститьОбОкончанииСрокаДействия = Форма.СертификатДействителенДо <= ТекущаяУниверсальнаяДата() + 30*24*60*60
Форма.ОповеститьОбОкончанииСрокаДействия =
Форма.СертификатДействителенДо <= ТекущаяУниверсальнаяДата() + КоличествоДнейДляОповещенияОбОкончанииСрокаДействия()*24*60*60
И Не РегистрыСведений.ОповещенияПользователейСертификатов.ПользовательОповещен(Форма.Сертификат)
И Не СертификатПеревыпущен(Форма.Сертификат);
КонецЕсли;
@@ -3528,6 +3823,10 @@
КонецПроцедуры
Функция КоличествоДнейДляОповещенияОбОкончанииСрокаДействия()
Возврат 30;
КонецФункции
// Для функции МенеджерКриптографии.
Функция НовыйМенеджерКриптографии(Программа, Ошибки, АлгоритмПодписи = "", Операция = "")
@@ -5044,12 +5343,18 @@
Функция КлассификаторОшибокКриптографии() Экспорт
УстановитьПривилегированныйРежим(Истина);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
Если Не ОбщегоНазначения.РазделениеВключено()
И Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") <> Неопределено Тогда
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
Попытка
ТекстОшибки = ОбновитьКлассификатор();
ТекстОшибки = МодульЭлектроннаяПодписьСлужебныйЛокализация.ОбновитьКлассификатор();
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обновить классификатор ошибок криптографии по причине:
@@ -5060,9 +5365,11 @@
УровеньЖурналаРегистрации.Ошибка,,,
Комментарий);
КонецЕсли;
КонецЕсли;
ДанныеКлассификатора = Константы.КлассификаторОшибокКриптографии.Получить();
Если Не ЗначениеЗаполнено(ДанныеКлассификатора) Тогда
Возврат Новый Структура("Классификатор, Версия", ПредставлениеКлассификатораДляХранения());
КонецЕсли;
@@ -5077,17 +5384,6 @@
КонецФункции
Функция АдресКлассификатораОшибок()
АдресКлассификатора = Новый Структура;
АдресКлассификатора.Вставить("Протокол", "http://");
АдресКлассификатора.Вставить("АдресСервера", "downloads.v8.1c.ru");
АдресКлассификатора.Вставить("АдресРесурса", "content/LED/settings/ErrorClassifier/classifier2.json");
Возврат АдресКлассификатора;
КонецФункции
Функция ПредставлениеОшибки()
ПредставлениеОшибки = Новый Структура;
@@ -5118,104 +5414,8 @@
КонецФункции
Функция ОбновитьКлассификатор()
ДатаПоследнегоОбновления = Константы.ДатаПоследнегоОбновленияКлассификатораОшибок.Получить();
ДатаПоследнегоИзменения = Неопределено;
АдресКлассификатора = АдресКлассификатораОшибок();
ПолныйАдрес = АдресКлассификатора.Протокол + АдресКлассификатора.АдресСервера + "/" + АдресКлассификатора.АдресРесурса;
ДанныеКлассификатора = Неопределено;
ТекстОшибки = "";
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
ПараметрыПолученияФайла = МодульПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла();
ПараметрыПолученияФайла.Заголовки.Вставить("If-Modified-Since",
ОбщегоНазначенияКлиентСервер.ДатаHTTP(ДатаПоследнегоОбновления));
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
РезультатЗагрузки = МодульПолучениеФайловИзИнтернета.СкачатьФайлВоВременноеХранилище(
ПолныйАдрес, ПараметрыПолученияФайла, Ложь);
Если РезультатЗагрузки.КодСостояния = 304 Тогда // Классификатор не был обновлен.
Возврат "";
ИначеЕсли РезультатЗагрузки.Статус Тогда
ДатаПоследнегоИзменения = ДатаПоследнегоИзмененияФайла(РезультатЗагрузки);
ДанныеКлассификатора = ПолучитьИзВременногоХранилища(РезультатЗагрузки.Путь);
УдалитьИзВременногоХранилища(РезультатЗагрузки.Путь);
Иначе
Возврат РезультатЗагрузки.СообщениеОбОшибке;
КонецЕсли;
Иначе
Соединение = Новый HTTPСоединение(АдресКлассификатора.АдресСервера,,,,, 20);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Charset", "UTF-8");
Заголовки.Вставить("If-Modified-Since", ОбщегоНазначенияКлиентСервер.ДатаHTTP(ДатаПоследнегоОбновления));
Ответ = Соединение.Получить(
Новый HTTPЗапрос(АдресКлассификатора.АдресРесурса, Заголовки));
Если Ответ.КодСостояния = 304 Тогда // Классификатор не был обновлен.
Возврат "";
ИначеЕсли Ответ.КодСостояния = 200 Тогда
ДатаПоследнегоИзменения = ДатаПоследнегоИзмененияФайла(Ответ);
ДанныеКлассификатора = Ответ.ПолучитьТелоКакСтроку();
Иначе ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'HTTP ответ - %1'"), Строка(Ответ.КодСостояния));
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(ТекстОшибки)
И Не ЗначениеЗаполнено(ДанныеКлассификатора) Тогда
ТекстОшибки = НСтр("ru = 'Получены пустые данные.'");
КонецЕсли;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При скачивании данных по адресу:
|%1
|возникла ошибка:
|%2'"),
ПолныйАдрес,
ТекстОшибки);
КонецЕсли;
ЗаписатьДанныеКлассификатора(ДанныеКлассификатора, ДатаПоследнегоИзменения);
Возврат "";
КонецФункции
Функция ДатаПоследнегоИзмененияФайла(РезультатЗагрузки)
Заголовки = Неопределено;
Если ТипЗнч(РезультатЗагрузки) = Тип("Структура") Тогда
Заголовки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(РезультатЗагрузки, "Заголовки", Неопределено);
ИначеЕсли ТипЗнч(РезультатЗагрузки) = Тип("HTTPОтвет") Тогда
Заголовки = РезультатЗагрузки.Заголовки;
КонецЕсли;
Если Заголовки = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
ДатаПоследнегоИзмененияСтрока = Заголовки["Last-Modified"];
Если ДатаПоследнегоИзмененияСтрока <> Неопределено Тогда
Возврат ОбщегоНазначенияКлиентСервер.ДатаRFC1123(ДатаПоследнегоИзмененияСтрока);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ЗаписатьДанныеКлассификатора(ДанныеКлассификатора, ДатаПоследнегоИзменения = Неопределено)
// Только для внутреннего использования.
Процедура ЗаписатьДанныеКлассификатора(ДанныеКлассификатора, ДатаПоследнегоИзменения = Неопределено) Экспорт
Если ДанныеКлассификатора <> Неопределено Тогда
@@ -191,9 +191,32 @@
КонецФункции
// Только для внутреннего использования.
Функция ПроверитьСертификат(АдресСертификата, ОписаниеОшибки, НаДату) Экспорт
Функция ПроверитьСертификат(АдресСертификата, ОписаниеОшибки, НаДату, ДополнительныеПараметры = Неопределено) Экспорт
Возврат ЭлектроннаяПодпись.ПроверитьСертификат(Неопределено, АдресСертификата, ОписаниеОшибки, НаДату);
Если ДополнительныеПараметры = Неопределено Тогда
ДополнительныеПараметры = ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата();
КонецЕсли;
Результат = ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(Неопределено, АдресСертификата, ОписаниеОшибки, НаДату, ДополнительныеПараметры);
Если Не Результат Или ДополнительныеПараметры.ДляПроверкиПодписи Тогда
Возврат Результат;
КонецЕсли;
Если ЗначениеЗаполнено(ДополнительныеПараметры.Предупреждение) Тогда
СсылкаНаСертификат = Неопределено;
ПользовательОповещен = ПользовательОповещенОСертификате(АдресСертификата, СсылкаНаСертификат);
Если ПользовательОповещен Или СсылкаНаСертификат = Неопределено Тогда
ДополнительныеПараметры.Предупреждение = Неопределено;
Иначе
ДополнительныеПараметры.Вставить("Сертификат", СсылкаНаСертификат);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -458,6 +481,7 @@
КонецФункции
// Только для внутреннего использования.
Функция УсовершенствоватьНаСторонеСервера(Параметры) Экспорт
Возврат ЭлектроннаяПодписьСлужебный.УсовершенствоватьНаСторонеСервера(Параметры);
@@ -471,6 +495,25 @@
КонецФункции
// Только для внутреннего использования.
Функция ПользовательОповещенОСертификате(Сертификат, СсылкаНаСертификат) Экспорт
Если ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
СсылкаНаСертификат = СсылкаНаСертификат(Base64Строка(Сертификат), Неопределено);
ИначеЕсли ТипЗнч(Сертификат) = Тип("Строка") Тогда
СсылкаНаСертификат = СсылкаНаСертификат(Неопределено, Сертификат);
Иначе
СсылкаНаСертификат = Сертификат;
КонецЕсли;
Если СсылкаНаСертификат = Неопределено Тогда
Возврат Истина;
КонецЕсли;
Возврат РегистрыСведений.ОповещенияПользователейСертификатов.ПользовательОповещен(СсылкаНаСертификат);
КонецФункции
// См. ЭлектроннаяПодписьСлужебный.СвойстваКонвертаXML
Функция СвойстваКонвертаXML(Знач КонвертXML, Знач ПараметрыXMLDSig, Знач ПроверкаПодписи) Экспорт
@@ -537,6 +580,7 @@
КонецПроцедуры
// Только для внутреннего использования.
Функция ОбновитьУсовершенствованнуюПодпись(СвойстваПодписи) Экспорт
Возврат ЭлектроннаяПодписьСлужебный.ОбновитьУсовершенствованнуюПодпись(СвойстваПодписи);
@@ -703,6 +747,12 @@
КонецПроцедуры
Функция АккредитованныеУдостоверяющиеЦентры() Экспорт
Возврат ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры();
КонецФункции
#Область ДиагностикаЭлектроннойПодписи
Процедура ДобавитьОписаниеДополнительныхДанных(ДополнительныеДанные, ОписаниеФайлов, Сведения) Экспорт
@@ -1262,11 +1262,12 @@
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
ДатаПодписания = Контекст.НаДату;
КонецЕсли;
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
Если Контекст.МенеджерКриптографии = "ОблачнаяПодпись" Тогда
ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания);
ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры);
Иначе
ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания);
ПроверитьСертификат(Контекст.Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
@@ -1305,6 +1306,8 @@
Контекст.ПоказатьОшибку = ДополнительныеПараметры.ПоказатьОшибку;
Контекст.ОбъединитьОшибкиДанныхСертификата = ДополнительныеПараметры.ОбъединитьОшибкиДанныхСертификата;
Контекст.ПроверитьВСервисеПослеОшибки = ДополнительныеПараметры.ПроверитьВСервисеПослеОшибки;
Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра = ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра;
Контекст.ДляПроверкиПодписи = ДополнительныеПараметры.ДляПроверкиПодписи;
КонецЕсли;
Контекст.ОписаниеОшибкиНаКлиенте = Неопределено;
@@ -1340,17 +1343,24 @@
// * ПроверитьВСервисеПослеОшибки - Булево
//
Функция КонтекстПроверкиСертификата()
Контекст = Новый Структура;
Контекст.Вставить("Оповещение");
Контекст.Вставить("Сертификат");
Контекст.Вставить("МенеджерКриптографии");
Контекст.Вставить("НаДату");
Контекст.Вставить("ОписаниеОшибкиНаКлиенте");
Контекст.Вставить("ДополнительныеДанныеПроверкиНаКлиенте");
Контекст.Вставить("ОписаниеОшибкиНаСервере");
Контекст.Вставить("ДополнительныеДанныеПроверкиНаСервере");
Контекст.Вставить("ПоказатьОшибку", Истина);
Контекст.Вставить("ОбъединитьОшибкиДанныхСертификата", Истина);
Контекст.Вставить("ПроверитьВСервисеПослеОшибки", Истина);
Контекст.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
Контекст.Вставить("ДляПроверкиПодписи", Ложь);
Возврат Контекст;
КонецФункции
// Дополнительные параметры проверки сертификата.
@@ -1368,6 +1378,9 @@
Структура.Вставить("ПоказатьОшибку", Истина);
Структура.Вставить("ОбъединитьОшибкиДанныхСертификата", Истина);
Структура.Вставить("ПроверитьВСервисеПослеОшибки", Истина);
Структура.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
Структура.Вставить("ДляПроверкиПодписи", Ложь);
Возврат Структура;
КонецФункции
@@ -1382,8 +1395,28 @@
АдресСертификата = Сертификат;
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра);
ДополнительныеПараметры.Вставить("ДляПроверкиПодписи", Контекст.ДляПроверкиПодписи);
ДополнительныеПараметры.Вставить("Предупреждение");
ДополнительныеПараметры.Вставить("Сертификат");
Если ЭлектроннаяПодписьСлужебныйВызовСервера.ПроверитьСертификат(АдресСертификата,
Контекст.ОписаниеОшибкиНаСервере, Контекст.НаДату) Тогда
Контекст.ОписаниеОшибкиНаСервере, Контекст.НаДату, ДополнительныеПараметры) Тогда
Если ЗначениеЗаполнено(ДополнительныеПараметры.Предупреждение) И Не Контекст.ДляПроверкиПодписи
И ДополнительныеПараметры.Сертификат <> Неопределено Тогда
ПараметрыОткрытияФормы = Новый Структура("Сертификат, ДополнительныеДанныеПроверки", ДополнительныеПараметры.Сертификат,
ДополнительныеПараметры.Предупреждение);
ДействиеПриНажатии = Новый ОписаниеОповещения("ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата",
ЭлектроннаяПодписьСлужебныйКлиент, ПараметрыОткрытияФормы);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Необходима замена сертификата'"), ДействиеПриНажатии, ДополнительныеПараметры.Сертификат,
БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное, ДополнительныеПараметры.Сертификат);
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
Иначе
@@ -1461,6 +1494,7 @@
"ПроверкаСертификата", ПараметрыСоздания);
Иначе
Если Контекст.МенеджерКриптографии = "СервисКриптографии" Тогда
ПроверитьСертификатВМоделиСервиса(Контекст);
ИначеЕсли Контекст.МенеджерКриптографии = "ОблачнаяПодпись" Тогда
@@ -1529,11 +1563,107 @@
Если ЗначениеЗаполнено(ОшибкаПросрочки) Тогда
ПроверитьСертификатНаКлиентеПослеОшибкиПроверки(ОшибкаПросрочки, Ложь, Контекст);
Иначе
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
ДополнительнаяПроверкаСертификата(Контекст.СертификатКриптографии, Ложь, Контекст);
КонецЕсли;
КонецПроцедуры
// Продолжение процедуры ПроверитьСертификат.
Процедура ДополнительнаяПроверкаСертификата(СертификатКриптографии, ПроверкаНаСервере, Контекст)
Если Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра Тогда
РезультатПроверкиУдостоверяющегоЦентраСертификата = РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии, Контекст.НаДату, Контекст.ДляПроверкиПодписи);
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
Если ПроверкаНаСервере Тогда
Контекст.ОписаниеОшибкиНаСервере = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
Контекст.ДополнительныеДанныеПроверкиНаСервере = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение;
Иначе
Контекст.ОписаниеОшибкиНаКлиенте = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
Контекст.ДополнительныеДанныеПроверкиНаКлиенте = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение;
КонецЕсли;
ПроверитьСертификатПослеНеуспешнойПроверки(Контекст);
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки) И Не Контекст.ДляПроверкиПодписи Тогда
СсылкаНаСертификат = Неопределено;
Если Не ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательОповещенОСертификате(СертификатКриптографии.Отпечаток, СсылкаНаСертификат)
И СсылкаНаСертификат <> Неопределено Тогда
ПараметрыОткрытияФормы = Новый Структура("Сертификат, ДополнительныеДанныеПроверки",
СсылкаНаСертификат, РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение);
ДействиеПриНажатии = Новый ОписаниеОповещения("ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата",
ЭлектроннаяПодписьСлужебныйКлиент, ПараметрыОткрытияФормы);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Необходима замена сертификата'"), ДействиеПриНажатии,
СсылкаНаСертификат,
БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное,
СсылкаНаСертификат);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
КонецПроцедуры
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
Если Не ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ЭлектроннаяПодписьКлиентСерверЛокализация");
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
СертификатКриптографии);
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДанныеУдостоверяющегоЦентра(
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска);
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
КонецЕсли;
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра;
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра;
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ОбщегоНазначенияКлиент.ДатаСеанса(), НаДату);
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата(
СертификатКриптографии, КонтекстПроверки);
Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда
Результат.Предупреждение.Причина = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
Результат.Предупреждение.Причина);
КонецЕсли;
Если ЗначениеЗаполнено(Результат.Предупреждение.Решение) Тогда
Результат.Предупреждение.Решение = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
Результат.Предупреждение.Решение);
КонецЕсли;
Возврат Результат;
КонецФункции
// Продолжение процедуры ПроверитьСертификат.
//
// Параметры:
@@ -1602,7 +1732,7 @@
Возврат;
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
ДополнительнаяПроверкаСертификата(Контекст.СертификатКриптографии, Истина, Контекст);
КонецПроцедуры
@@ -1621,9 +1751,14 @@
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОбщееОписаниеОшибки);
Иначе
ВыполнитьОбработкуОповещения(Контекст.Оповещение,
Новый Структура("ОписаниеОшибкиНаКлиенте, ОписаниеОшибкиНаСервере",
Контекст.ОписаниеОшибкиНаКлиенте, Контекст.ОписаниеОшибкиНаСервере));
Структура = Новый Структура;
Структура.Вставить("ОписаниеОшибкиНаКлиенте", Контекст.ОписаниеОшибкиНаКлиенте);
Структура.Вставить("ОписаниеОшибкиНаСервере", Контекст.ОписаниеОшибкиНаСервере);
Структура.Вставить("ДополнительныеДанныеПроверкиНаСервере", Контекст.ДополнительныеДанныеПроверкиНаСервере);
Структура.Вставить("ДополнительныеДанныеПроверкиНаКлиенте", Контекст.ДополнительныеДанныеПроверкиНаКлиенте);
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Структура);
КонецЕсли;
КонецПроцедуры
@@ -2441,6 +2576,14 @@
КонецПроцедуры
// Только для внутреннего использования.
Процедура ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата(Параметры) Экспорт
ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ОповещениеОбОкончанииСрокаДействия",
Параметры,,,,,,РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ОбновитьФормуПередПовторнымИспользованием(Форма, КлиентскиеПараметры) Экспорт
@@ -7375,7 +7518,7 @@
Возврат;
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
ДополнительнаяПроверкаСертификата(Контекст.СертификатКриптографии, Истина, Контекст);
КонецПроцедуры
@@ -7842,6 +7985,20 @@
ПоказатьЗначение( ,Сертификат);
КонецЕсли;
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ПодатьЗаявлениеНаСертификат" Тогда
Если ДополнительныеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Сертификат = ДополнительныеДанные.Сертификат;
Если ЗначениеЗаполнено(Сертификат) Тогда
ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("СоздатьЗаявление", Истина);
ПараметрыСоздания.Вставить("СертификатОснование", Сертификат);
ДобавитьСертификат(ПараметрыСоздания);
КонецЕсли;
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьСписокПрограмм" Тогда
ЭлектроннаяПодписьКлиент.ОткрытьНастройкиЭлектроннойПодписиИШифрования("Программы");
Иначе
@@ -7855,11 +8012,15 @@
// Возвращаемое значение:
// Структура - дополнительные данные для классификатора ошибок:
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
// * ДополнительныеДанныеПроверокНаКлиенте - Структура
// * ДополнительныеДанныеПроверокНаСервере - Структура
//
Функция ДополнительныеДанныеДляКлассификатораОшибок() Экспорт
ДополнительныеДанные = Новый Структура;
ДополнительныеДанные.Вставить("Сертификат");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаКлиенте");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаСервере");
Возврат ДополнительныеДанные;
КонецФункции
@@ -0,0 +1,29 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2022, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
Функция АккредитованныеУдостоверяющиеЦентры() Экспорт
Возврат ЭлектроннаяПодписьСлужебныйВызовСервера.АккредитованныеУдостоверяющиеЦентры();
КонецФункции
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры();
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры);
КонецФункции
#КонецОбласти
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="836dfba9-c948-409b-825f-f0d869872835">
<name>ЭлектроннаяПодписьСлужебныйКлиентПовтИсп</name>
<synonym>
<key>ru</key>
<value>Электронная подпись служебный клиент повт исп</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
<returnValuesReuse>DuringSession</returnValuesReuse>
</mdclass:CommonModule>
@@ -34,6 +34,47 @@
КонецФункции
// Конструктор результата проверки по списку удостоверяющих центров.
//
// Возвращаемое значение:
// Структура - Результат проверки удостоверяющего центра по умолчанию:
// * Действует - Булево - Аккредитованный УЦ действует на дату проверки.
// * НайденВСпискеУдостоверяющихЦентров - Булево - Сертификат, выданный УЦ является квалифицированным
// * Государственный - Булево - относится к определенному списку УЦ, выдающих сертификаты, по которым не нужно
// выполнять некоторые проверки.
// например, в России: УЦ ФНС России, Казначейства России, и Банка России.
// * Предупреждение - см. ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
//
Функция РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию() Экспорт
Результат = Новый Структура;
Результат.Вставить("Действует", Истина);
Результат.Вставить("НайденВСпискеУдостоверяющихЦентров", Ложь);
Результат.Вставить("Государственный", Ложь);
Результат.Вставить("Предупреждение", ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата());
Возврат Результат;
КонецФункции
// Возвращаемое значение:
// Структура - Сообщение об ошибке/предупреждение для проверяемого сертификата:
// * ТекстОшибки - Строка -
// * ВозможенПеревыпуск - Булево - можно подать заявление на новый сертификат из программы.
// * Причина - Строка - Причина ошибки для отображения в расширенной форме ошибки.
// * Решение - Строка - Рекомендация для отображения в расширенной форме ошибки.
//
Функция ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата() Экспорт
Предупреждение = Новый Структура;
Предупреждение.Вставить("ТекстОшибки", "");
Предупреждение.Вставить("ВозможенПеревыпуск", Ложь);
Предупреждение.Вставить("Причина", "");
Предупреждение.Вставить("Решение", "");
Возврат Предупреждение;
КонецФункции
#КонецОбласти
@@ -0,0 +1,271 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2022, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
// Определяет внутренний идентификатор классификатора для подсистемы РаботаСКлассификаторами.
//
// Возвращаемое значение:
// Строка - идентификатор классификатора.
//
Функция ИдентификаторКлассификатора() Экспорт
Возврат "AccreditedCA";
КонецФункции
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
ИмяАрхива = ПолучитьИмяВременногоФайла("zip");
ДвоичныеДанныеАрхива = ПолучитьИзВременногоХранилища(Адрес); // ДвоичныеДанные
ДвоичныеДанныеАрхива.Записать(ИмяАрхива);
КаталогОбновлений = ФайловаяСистема.СоздатьВременныйКаталог(
Строка(Новый УникальныйИдентификатор));
ЧтениеZipФайла = Новый ЧтениеZipФайла(ИмяАрхива);
ИмяФайлаПериодыДействия = Неопределено;
ИмяФайлаДатыОкончания = Неопределено;
Для Каждого ЭлементАрхива Из ЧтениеZipФайла.Элементы Цикл
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "AccreditedCA") Тогда
ИмяФайлаПериодыДействия = ЭлементАрхива.Имя;
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
Продолжить;
КонецЕсли;
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "CAExpirationDateList") Тогда
ИмяФайлаДатыОкончания = ЭлементАрхива.Имя;
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
Продолжить;
КонецЕсли;
КонецЦикла;
ЧтениеZipФайла.Закрыть();
ДанныеУЦ = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
Если ДанныеУЦ = Неопределено Тогда
ДанныеУЦ = Новый Структура;
ДанныеУЦ.Вставить("ПериодыДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
ДанныеУЦ.Вставить("ДатыОкончанияДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
ДанныеУЦ.Вставить("ГосударственныеУЦ", Новый Соответствие);
КонецЕсли;
Если ИмяФайлаДатыОкончания <> Неопределено Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(КаталогОбновлений + ИмяФайлаДатыОкончания);
ДатыОкончания = ПрочитатьJSON(ЧтениеJSON); // Структура
ЧтениеJSON.Закрыть();
// Подготовка соответствия для быстрого поиска.
Соответствие = Новый Соответствие;
Для Каждого УЦ Из ДатыОкончания Цикл
Соответствие.Вставить(УЦ.ОГРН, ПрочитатьДатуJSON(УЦ.ДатаОкончанияДействия, ФорматДатыJSON.ISO));
КонецЦикла;
ДанныеУЦ.ДатыОкончанияДействия.Данные = Соответствие;
ДанныеУЦ.ДатыОкончанияДействия.Версия = Версия;
ДанныеУЦ.ДатыОкончанияДействия.ДатаОбновления = ТекущаяДатаСеанса();
Иначе
ДанныеУЦ.ДатыОкончанияДействия.Данные = Новый Соответствие;
ДанныеУЦ.ДатыОкончанияДействия.Версия = Версия;
ДанныеУЦ.ДатыОкончанияДействия.ДатаОбновления = ТекущаяДатаСеанса();
КонецЕсли;
Если ИмяФайлаПериодыДействия <> Неопределено Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(КаталогОбновлений + ИмяФайлаПериодыДействия);
СписокУЦ = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
// Подготовка соответствия для быстрого поиска.
Соответствие = Новый Соответствие;
ГосударственныеУЦ = Новый Соответствие;
Для Каждого УЦ Из СписокУЦ Цикл
Наименование = УЦ.Наименование; // Строка
Наименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(Наименование);
КраткоеНаименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(УЦ.КраткоеНаименование);
ПериодыДействияМассив = Новый Массив;
Для Каждого ТекущийПериод Из УЦ.ПериодыДействия Цикл
ПериодДействияСтруктура = Новый Структура("ДатаС, ДатаПо");
ПериодДействияСтруктура.ДатаС = ПрочитатьДатуJSON(ТекущийПериод.ДатаС, ФорматДатыJSON.ISO);
Если ЗначениеЗаполнено(ТекущийПериод.ДатаПо) Тогда
ПериодДействияСтруктура.ДатаПо = ПрочитатьДатуJSON(ТекущийПериод.ДатаПо, ФорматДатыJSON.ISO);
КонецЕсли;
ПериодыДействияМассив.Добавить(ПериодДействияСтруктура);
КонецЦикла;
Соответствие.Вставить(УЦ.ОГРН, ПериодыДействияМассив);
Соответствие.Вставить(Наименование, ПериодыДействияМассив);
Соответствие.Вставить(КраткоеНаименование, ПериодыДействияМассив);
Если УЦ.Государственный Тогда
ГосударственныеУЦ.Вставить(УЦ.ОГРН, Истина);
ГосударственныеУЦ.Вставить(Наименование, Истина);
ГосударственныеУЦ.Вставить(КраткоеНаименование, Истина);
КонецЕсли;
КонецЦикла;
ДанныеУЦ.ПериодыДействия.Данные = Соответствие;
ДанныеУЦ.ГосударственныеУЦ = ГосударственныеУЦ;
ДанныеУЦ.ПериодыДействия.Версия = Версия;
ДанныеУЦ.ПериодыДействия.ДатаОбновления = ТекущаяДатаСеанса();
КонецЕсли;
ХранилищеЗначения = Новый ХранилищеЗначения(ДанныеУЦ, Новый СжатиеДанных(6));
Константы.АккредитованныеУдостоверяющиеЦентры.Установить(ХранилищеЗначения);
ФайловаяСистема.УдалитьВременныйКаталог(КаталогОбновлений);
ФайловаяСистема.УдалитьВременныйФайл(ИмяАрхива);
Обработан = Истина;
КонецПроцедуры
Функция ОбновитьКлассификатор() Экспорт
ДатаПоследнегоОбновления = Константы.ДатаПоследнегоОбновленияКлассификатораОшибок.Получить();
ДатаПоследнегоИзменения = Неопределено;
АдресКлассификатора = АдресКлассификатораОшибок();
ПолныйАдрес = АдресКлассификатора.Протокол + АдресКлассификатора.АдресСервера + "/" + АдресКлассификатора.АдресРесурса;
ДанныеКлассификатора = Неопределено;
ТекстОшибки = "";
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
ПараметрыПолученияФайла = МодульПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла();
ПараметрыПолученияФайла.Заголовки.Вставить("If-Modified-Since",
ОбщегоНазначенияКлиентСервер.ДатаHTTP(ДатаПоследнегоОбновления));
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
РезультатЗагрузки = МодульПолучениеФайловИзИнтернета.СкачатьФайлВоВременноеХранилище(
ПолныйАдрес, ПараметрыПолученияФайла, Ложь);
Если РезультатЗагрузки.КодСостояния = 304 Тогда // Классификатор не был обновлен.
Возврат "";
ИначеЕсли РезультатЗагрузки.Статус Тогда
ДатаПоследнегоИзменения = ДатаПоследнегоИзмененияФайла(РезультатЗагрузки);
ДанныеКлассификатора = ПолучитьИзВременногоХранилища(РезультатЗагрузки.Путь);
УдалитьИзВременногоХранилища(РезультатЗагрузки.Путь);
Иначе
Возврат РезультатЗагрузки.СообщениеОбОшибке;
КонецЕсли;
Иначе
Соединение = Новый HTTPСоединение(АдресКлассификатора.АдресСервера,,,,, 20);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Charset", "UTF-8");
Заголовки.Вставить("If-Modified-Since", ОбщегоНазначенияКлиентСервер.ДатаHTTP(ДатаПоследнегоОбновления));
Ответ = Соединение.Получить(
Новый HTTPЗапрос(АдресКлассификатора.АдресРесурса, Заголовки));
Если Ответ.КодСостояния = 304 Тогда // Классификатор не был обновлен.
Возврат "";
ИначеЕсли Ответ.КодСостояния = 200 Тогда
ДатаПоследнегоИзменения = ДатаПоследнегоИзмененияФайла(Ответ);
ДанныеКлассификатора = Ответ.ПолучитьТелоКакСтроку();
Иначе ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'HTTP ответ - %1'"), Строка(Ответ.КодСостояния));
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(ТекстОшибки)
И Не ЗначениеЗаполнено(ДанныеКлассификатора) Тогда
ТекстОшибки = НСтр("ru = 'Получены пустые данные.'");
КонецЕсли;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При скачивании данных по адресу:
|%1
|возникла ошибка:
|%2'"),
ПолныйАдрес,
ТекстОшибки);
КонецЕсли;
ЭлектроннаяПодписьСлужебный.ЗаписатьДанныеКлассификатора(ДанныеКлассификатора, ДатаПоследнегоИзменения);
Возврат "";
КонецФункции
Функция АккредитованныеУдостоверяющиеЦентры() Экспорт
УстановитьПривилегированныйРежим(Истина);
ДанныеУдостоверяющихЦентров = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("ПериодыДействия", ДанныеУдостоверяющихЦентров.ПериодыДействия.Данные);
Результат.Вставить("ДатаПроверкиОбновления", ДанныеУдостоверяющихЦентров.ПериодыДействия.ДатаОбновления);
Результат.Вставить("ДатыОкончанияДействия", ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Данные);
Результат.Вставить("ГосударственныеУЦ", ДанныеУдостоверяющихЦентров.ГосударственныеУЦ);
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ДатаПоследнегоИзмененияФайла(РезультатЗагрузки)
Заголовки = Неопределено;
Если ТипЗнч(РезультатЗагрузки) = Тип("Структура") Тогда
Заголовки = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(РезультатЗагрузки, "Заголовки", Неопределено);
ИначеЕсли ТипЗнч(РезультатЗагрузки) = Тип("HTTPОтвет") Тогда
Заголовки = РезультатЗагрузки.Заголовки;
КонецЕсли;
Если Заголовки = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
ДатаПоследнегоИзмененияСтрока = Заголовки["Last-Modified"];
Если ДатаПоследнегоИзмененияСтрока <> Неопределено Тогда
Возврат ОбщегоНазначенияКлиентСервер.ДатаRFC1123(ДатаПоследнегоИзмененияСтрока);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция АдресКлассификатораОшибок()
АдресКлассификатора = Новый Структура;
АдресКлассификатора.Вставить("Протокол", "http://");
АдресКлассификатора.Вставить("АдресСервера", "downloads.v8.1c.ru");
АдресКлассификатора.Вставить("АдресРесурса", "content/LED/settings/ErrorClassifier/classifier2.json");
Возврат АдресКлассификатора;
КонецФункции
#КонецОбласти
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4e6d38c5-2a09-4473-9e04-8f631fe88c61">
<name>ЭлектроннаяПодписьСлужебныйЛокализация</name>
<synonym>
<key>ru</key>
<value>Электронная подпись служебный локализация</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -50,6 +50,7 @@
ОбщиеНастройки.Вставить("ЗаявлениеНаВыпускСертификатаДоступно",
Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено);
Если ОбщиеНастройки.ЗаявлениеНаВыпускСертификатаДоступно Тогда
МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
ОбщиеНастройки.ЗаявлениеНаВыпускСертификатаДоступно = МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ЗаявлениеНаВыпускСертификатаДоступно();
@@ -123,6 +124,8 @@
ОбщиеНастройки.Вставить("УсовершенствоватьПодписиСДаты", Константы.УсовершенствоватьПодписиСДаты.Получить());
ОбщиеНастройки.Вставить("ЭтоМодельСервисаСДоступнымУсовершенствованием",
ЭтоМодельСервисаСДоступнымУсовершенствованием());
ОбщиеНастройки.Вставить("ДоступнаПроверкаПоСпискуУЦ",
Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") <> Неопределено);
ОбщиеНастройки.Вставить("ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами",
ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами());
@@ -354,4 +357,30 @@
КонецФункции
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры();
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры);
КонецФункции
Функция АккредитованныеУдостоверяющиеЦентры() Экспорт
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
Возврат МодульЭлектроннаяПодписьСлужебныйЛокализация.АккредитованныеУдостоверяющиеЦентры();
КонецФункции
#КонецОбласти
+12 -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="dd34eb61-a481-4d9e-8b20-4815a3498441">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="26dad4b8-2d02-4d31-8c31-94c0295bd56a">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="cce479ae-cac2-4328-94f8-eab8300d9a8f"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="de4f304b-9ad3-4c99-9157-24654b750cb0"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="24d94510-6b29-45d8-95c8-80ec80994da0"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="2fcc3ad1-b797-40ae-8cb7-d99b4ee055a5"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e2c7ffbc-1b48-4448-877d-a2e6dbf5992e"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5b043d2a-f89e-4eb2-afc5-200e7363694d"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="c4fd1a0a-a378-452f-8cec-075c921edadf"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="7a04ed61-ad6e-431c-8c38-7aabc9100ba6"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="5229106b-41b8-4733-9270-dc53ff5d8cfa"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="20ed20f5-46ba-455e-8c15-08c9708b084a"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f1324ef0-ae56-4f0b-9d32-7df8979376a5"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="3a7f144b-749e-4085-bad6-8dd6ed495b70"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="484ce06d-c2d6-48da-a522-2e887bf45617"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="d8ce7477-eb96-451d-9d86-b5bc4af22148"/>
<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.6.198</version>
<version>3.1.6.209</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1264,7 +1264,9 @@
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебный</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйВызовСервера</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйКлиент</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйКлиентПовтИсп</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйКлиентСервер</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйЛокализация</commonModules>
<commonModules>CommonModule.ЭлектроннаяПодписьСлужебныйПовтИсп</commonModules>
<commonModules>CommonModule.ЯндексПереводчик</commonModules>
<commonAttributes>CommonAttribute.КомментарийЯзык1</commonAttributes>
@@ -1657,6 +1659,7 @@
<constants>Constant.АдресДляВосстановленияПароляУчетнойЗаписи</constants>
<constants>Constant.АдресПубликацииИнформационнойБазыВИнтернете</constants>
<constants>Constant.АдресПубликацииИнформационнойБазыВЛокальнойСети</constants>
<constants>Constant.АккредитованныеУдостоверяющиеЦентры</constants>
<constants>Constant.ВерсияДатЗапретаИзменения</constants>
<constants>Constant.ВерсияКлассификатораБанков</constants>
<constants>Constant.ВыполнятьЗамерыПроизводительности</constants>
@@ -1 +1 @@
{6,1,1,8c4e2f76-cb43-4d11-893c-a2106d9765bd,1,e5de11ad-6af8-4122-8a87-ab85df4e80a3,"3.1.6.198","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6728,1,0,dd34eb61-a481-4d9e-8b20-4815a3498441,dd34eb61-a481-4d9e-8b20-4815a3498441,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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-91c7Line truncated
{6,1,1,28e1e811-98d4-4281-aaa4-d7c33b942822,1,29c00a8f-4c35-4ce0-8e5d-afbbe0f7f7af,"3.1.6.209","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6731,1,0,26dad4b8-2d02-4d31-8c31-94c0295bd56a,26dad4b8-2d02-4d31-8c31-94c0295bd56a,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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-91c7Line truncated
@@ -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="36999e1b-865e-41ad-b9d6-1b3ac887acfb">
<producedTypes>
<managerType typeId="cfe729d8-7a7c-41b2-8ed1-6ce6bca82136" valueTypeId="300d626b-bdb6-42d7-91e3-cdcc6c00c77e"/>
<valueManagerType typeId="76856a3f-0f4b-43e4-ac9f-5642ccfe2c81" valueTypeId="abc960b5-4656-4b41-b57e-abaf00646233"/>
<valueKeyType typeId="74f959bb-4902-49f8-84f3-06f8c81516d1" valueTypeId="f26af9ad-3736-4cea-a629-49a5d2299b0c"/>
</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>
@@ -24,7 +24,7 @@
Если КонтекстныйВызов Тогда
ВыполнитьДействияПриКонтекстномОткрытии();
Иначе
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
Если Не ЭтоПолноправныйПользователь() Тогда
ВызватьИсключение НСтр("ru = 'Для открытия обработки требуется право администрирования.'")
КонецЕсли;
Заголовок = НСтр("ru = 'Групповое изменение реквизитов'");
@@ -4691,5 +4691,16 @@
КонецФункции
&НаСервере
Функция ЭтоПолноправныйПользователь()
Если ВерсияБСПСоответствуетТребованиям() Тогда
МодульПользователи = ОбщийМодуль("Пользователи");
Возврат МодульПользователи.ЭтоПолноправныйПользователь();
КонецЕсли;
Возврат Истина;
КонецФункции
#КонецОбласти
@@ -181,6 +181,8 @@
КонецЕсли;
ОтключитьОбработчикОжидания("ПриИзмененияСоставаИлиНастроекПрограмм");
КонецПроцедуры
&НаКлиенте
@@ -780,8 +780,6 @@
Функция СледующаяНастройка(Выборка, ОбработкаОшибок = "ПриОшибкеПропустить", Хранилище = Неопределено)
ТекущийКлюч = Выборка.КлючОбъекта + " " + Выборка.КлючНастроек;
ЕстьОшибка = Ложь;
Попытка
ЕстьСледующий = Выборка.Следующий();
@@ -789,9 +787,8 @@
ЕстьОшибка = Истина;
КонецПопытки;
СледующийКлюч = Выборка.КлючОбъекта + " " + Выборка.КлючНастроек;
Если ЕстьОшибка Тогда
ЕстьСледующий = ТекущийКлюч <> СледующийКлюч;
Возврат ЕстьСледующий;
КонецЕсли;
Если Не ЕстьСледующий Или Не ЕстьОшибка Тогда
@@ -2483,6 +2480,13 @@
КлючиНастроекИнтерфейса = Новый СписокЗначений;
КлючиВсехНастроек = Новый СписокЗначений;
РежимСовместимости = СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
СуффиксКлючаНастройки = "НастройкиОкна";
Иначе
СуффиксКлючаНастройки = "НастройкиОкнаТонкогоКлиента";
КонецЕсли;
Для Каждого Настройка Из Настройки Цикл
ИмяНастройки = СтрРазделить(Настройка.КлючОбъекта, "/", Ложь);
ЧастьИмениНастройки = СтрРазделить(ИмяНастройки[0], ".", Ложь);
@@ -2510,7 +2514,7 @@
ИначеЕсли ИмяНастройки[0] = "РабочийСтол" Тогда
Если ИмяНастройки[1] = "НастройкиОкна" Тогда
Если ИмяНастройки[1] = СуффиксКлючаНастройки Тогда
КлючиНастроекРабочегоСтола.Добавить(Настройка.КлючОбъекта, "Интерфейс");
КлючиВсехНастроек.Добавить(Настройка.КлючОбъекта, "Интерфейс");
Иначе
@@ -50,7 +50,9 @@ TD {
</li>
<li><strong>Шифрование</strong> - включите флажок, для того чтобы разрешить шифрование файлов.
</li>
<li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a> - переход к настройке параметров подключения средств криптографии: электронной подписи и шифрования. </li>
<li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Сертификаты и программы электронной подписи и шифрования</a> - переход к настройке параметров подключения средств криптографии: электронной подписи и шифрования. </li>
<li><strong>Проверять подписи и сертификаты на сервере</strong> - В этом случае проверка электронной подписи и сертификата будет происходить на сервере или веб-сервере, что позволяет не устанавливать программу на каждом компьютере, где требуются только такие операции.</li>
<li><b>Подписывать и шифровать на сервере</b> - позволяет не устанавливать программу криптографии на компьютер пользователя для подписания, шифрования и расшифровки. В этом случае необходимо установить программу криптографии и сертификат с закрытым ключом на компьютере, где работает сервер 1С:Предприятия или веб-сервер.</li>
<a name="СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS"></a>
<li><b>Использовать сервис DSS</b> - включите флажок, для того чтобы разрешить использовать электронную подпись сервиса DSS и для операций криптографии сервиса DSS. После этого в списке <b>Настройки электронной подписи и шифрования</b> можно добавить учетные записи DSS, а также становятся доступными команды:</li>
<li><a href="DataProcessor.УправлениеПодключениемDSS.Form.СписокЭкземпляровСервераDSS/Help">Серверы DSS</a> - переход к настройке серверов DSS.</li>
@@ -407,17 +407,24 @@
ОбъектМетаданных = Ссылка.ПолучитьОбъект().Метаданные();
Если Метаданные.Справочники.Содержит(ОбъектМетаданных)
И ОбъектМетаданных.Иерархический Тогда
Если (Метаданные.Справочники.Содержит(ОбъектМетаданных) Или Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных))
И ОбъектМетаданных.Иерархический
И ОбъектМетаданных.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда
Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда
ИмяТаблицы = "Справочник." + ОбъектМетаданных.Имя;
ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
И ОбъектМетаданных.Иерархический Тогда
ИмяТаблицы = "ПланВидовХарактеристик." + ОбъектМетаданных.Имя;
Иначе
Возврат Ложь;
ИмяТаблицы = "ПланВидовХарактеристик." + ОбъектМетаданных.Имя;
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ
Иначе
Возврат Ложь;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Таблица.Ссылка КАК Ссылка
|ИЗ
| #Таблица КАК Таблица
@@ -642,9 +642,11 @@
|ГДЕ
| НЕ ОбновлениеИнформационнойБазы.ЭтотУзел";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПланыОбмена.УдалитьРегистрациюИзменений(Выборка.Узел);
Выгрузка = Запрос.Выполнить().Выгрузить();
УзлыОбмена = Выгрузка.ВыгрузитьКолонку("Узел");
Для Каждого ЭлементСостава Из Метаданные.ПланыОбмена.ОбновлениеИнформационнойБазы.Состав Цикл
ПланыОбмена.УдалитьРегистрациюИзменений(УзлыОбмена, ЭлементСостава.Метаданные);
КонецЦикла;
КонецЕсли;
@@ -6,7 +6,7 @@
<displayImportance>Usual</displayImportance>
<title>
<key>ru</key>
<value>Настройки отображения объектов</value>
<value>Выводить реквизиты в списке помеченных на удаление</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -16,7 +16,6 @@
<dataPath xsi:type="form:DataPath">
<segments>НастройкиОтображенияОбъектов</segments>
</dataPath>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormGroup">
<name>НастройкиОтображенияОбъектовГруппа</name>
<id>40</id>
@@ -507,16 +506,6 @@
<key>ru</key>
<value>Способ удаления</value>
</title>
<toolTip>
<key>ru</key>
<value>Стандартный - удалить с контролем ссылочной целостности.
Упрощенный - не проверять помеченные на удаление места использования и удалить с контролем ссылочной целостности.
В помеченных на удалениях местах использования ссылки на удаляемые объекты будут очищены.
Ускоренный - удалить в монопольном режиме.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>Группа1РасширеннаяПодсказка1</name>
<id>59</id>
@@ -530,8 +519,9 @@
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Collapsible</behavior>
<behavior>Auto</behavior>
<controlRepresentation>Button</controlRepresentation>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
@@ -704,6 +694,7 @@
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
@@ -791,6 +782,9 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ФормаГруппаУдаляемыеОбъекты</name>
<id>83</id>
<items xsi:type="form:Button">
<name>УдаляемыеОбъекты</name>
<id>81</id>
@@ -823,6 +817,27 @@
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Удаляемые объекты</value>
</title>
<extendedTooltip>
<name>ФормаГруппаУдаляемыеОбъектыРасширеннаяПодсказка</name>
<id>84</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
@@ -1053,9 +1068,13 @@
<name>ДобавитьНастройку</name>
<title>
<key>ru</key>
<value>Добавить настройку</value>
<value>Добавить настройку...</value>
</title>
<id>3</id>
<toolTip>
<key>ru</key>
<value>Добавить настройку для выводимых реквизитов</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -1074,9 +1093,13 @@
<name>ДобавитьПолеНастройки</name>
<title>
<key>ru</key>
<value>Добавить поле настройки</value>
<value>Добавить выводимый реквизит...</value>
</title>
<id>4</id>
<toolTip>
<key>ru</key>
<value>Добавить выводимый реквизит</value>
</toolTip>
<use>
<common>true</common>
</use>
@@ -4452,7 +4452,7 @@
<name>УстановитьЗаменитьНа</name>
<title>
<key>ru</key>
<value>Заменить на</value>
<value>Заменить на...</value>
</title>
<id>21</id>
<use>
@@ -9,7 +9,6 @@
<key>ru</key>
<value>Удаление помеченных объектов</value>
</synonym>
<comment>Поиск и удаление объектов, помеченных на удаление</comment>
<useStandardCommands>true</useStandardCommands>
<defaultForm>DataProcessor.УдалениеПомеченныхОбъектов.Form.ОсновнаяФорма</defaultForm>
<includeHelpInContents>true</includeHelpInContents>
@@ -50,6 +50,7 @@
<types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете</types>
<types>ConstantValueManager.ПараметрыРезервногоКопирования</types>
<types>ConstantValueManager.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</types>
<types>ConstantValueManager.АккредитованныеУдостоверяющиеЦентры</types>
<types>ConstantValueManager.ПараметрыАдминистрированияИБ</types>
<types>ConstantValueManager.ИспользоватьАвтономнуюРаботуВМоделиСервиса</types>
<types>ConstantValueManager.ИспользуютсяПрофилиБезопасности</types>
@@ -539,6 +539,18 @@
<v8:content>Владелец настроек</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<valueType>
<v8:TypeId>a02405f8-0a56-4b5a-a885-91715df29d5c</v8:TypeId>
</valueType>
@@ -552,6 +564,18 @@
<v8:content>Владелец или пользователь настроек</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<valueType>
<v8:TypeSet xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:AnyRef</v8:TypeSet>
</valueType>
@@ -715,6 +739,18 @@
<v8:content>Родитель владельца или пользователя настроек</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<valueType>
<v8:TypeId>a02405f8-0a56-4b5a-a885-91715df29d5c</v8:TypeId>
</valueType>
@@ -728,6 +764,18 @@
<v8:content>Владелец или пользователь настроек</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<presentationExpression>ВладелецИлиПользовательНастроекПредставление</presentationExpression>
<valueType>
<v8:TypeSet xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:AnyRef</v8:TypeSet>
@@ -742,6 +790,18 @@
<v8:content>Владелец настроек</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<valueType>
<v8:TypeId>a02405f8-0a56-4b5a-a885-91715df29d5c</v8:TypeId>
</valueType>
@@ -768,6 +828,18 @@
<v8:content>Владелец или пользователь настроек представление</v8:content>
</v8:item>
</title>
<useRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</useRestriction>
<attributeUseRestriction>
<field>true</field>
<condition>true</condition>
<group>true</group>
<order>true</order>
</attributeUseRestriction>
<valueType>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
@@ -30,6 +30,7 @@
Настройки.События.ПередЗагрузкойНастроекВКомпоновщик = Истина;
Настройки.События.ПослеЗагрузкиНастроекВКомпоновщик = Истина;
Настройки.События.ПередФормированиемОтчета = Истина;
Настройки.События.ПриОпределенииПараметровВыбора = Истина;
КонецПроцедуры
@@ -374,6 +375,31 @@
КонецПроцедуры
// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.
Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
Если СвойстваНастройки.ПолеКД = Новый ПолеКомпоновкиДанных("ПараметрыДанных.Роль") Тогда
Если ТипЗнч(СвойстваНастройки.ПользовательскаяНастройкаКД.Значение) = Тип("СписокЗначений") Тогда
Для Каждого Элемент Из СвойстваНастройки.ПользовательскаяНастройкаКД.Значение Цикл
ОбъектМетаданных = Метаданные.Роли.Найти(Элемент.Значение);
Если ОбъектМетаданных = Неопределено Тогда
Продолжить;
КонецЕсли;
Элемент.Представление = ОбъектМетаданных.Представление();
КонецЦикла;
ИначеЕсли ТипЗнч(СвойстваНастройки.ПользовательскаяНастройкаКД.Значение) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.Роли.Найти(СвойстваНастройки.ПользовательскаяНастройкаКД.Значение);
Если ОбъектМетаданных = Неопределено Тогда
Возврат;
КонецЕсли;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(СвойстваНастройки.ПользовательскаяНастройкаКД.Значение, ОбъектМетаданных.Представление());
СвойстваНастройки.ПользовательскаяНастройкаКД.Значение = СписокЗначений;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -14,44 +14,6 @@
// СтандартныеПодсистемы.ВариантыОтчетов
// См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.
Процедура ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
Возврат;
КонецЕсли;
Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.ПродлениеСрокаДействияЭлектронныхПодписей) Тогда
Возврат;
КонецЕсли;
Если Не ЭлектроннаяПодписьСлужебныйПовтИсп.ДоступнаУсовершенствованнаяПодпись() Тогда
Возврат;
КонецЕсли;
Команда = КомандыОтчетов.Добавить();
Команда.Менеджер = "Отчет.ПродлениеСрокаДействияЭлектронныхПодписей";
Команда.КлючВарианта = "НеобработанныеПодписи";
Команда.Представление = НСтр("ru = 'Необработанные подписи.'");
Команда = КомандыОтчетов.Добавить();
Команда.Менеджер = "Отчет.ПродлениеСрокаДействияЭлектронныхПодписей";
Команда.КлючВарианта = "ТребуетсяУсовершенствоватьПодписи";
Команда.Представление = НСтр("ru = 'Требуется усовершенствовать подписи.'");
Команда = КомандыОтчетов.Добавить();
Команда.Менеджер = "Отчет.ПродлениеСрокаДействияЭлектронныхПодписей";
Команда.КлючВарианта = "ТребуетсяДобавитьАрхивныеМетки";
Команда.Представление = НСтр("ru = 'Требуется добавить архивные метки в подписи.'");
Команда = КомандыОтчетов.Добавить();
Команда.Менеджер = "Отчет.ПродлениеСрокаДействияЭлектронныхПодписей";
Команда.КлючВарианта = "ОшибкиПриАвтоматическомПродлении";
Команда.Представление = НСтр("ru = 'Ошибки при автоматическом продлении подписей.'");
КонецПроцедуры
// Параметры:
// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.
// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета.
@@ -75,24 +37,24 @@
ДобавлятьМеткиВремениАвтоматически = Ложь;
КонецЕсли;
МодульВариантыОтчетов.УстановитьРежимВыводаВПанеляхОтчетов(Настройки, НастройкиОтчета, Ложь);
МодульВариантыОтчетов.УстановитьРежимВыводаВПанеляхОтчетов(Настройки, НастройкиОтчета, Истина);
НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
НастройкиОтчета.Описание = НСтр("ru = 'Подписи, срок действия которых должен быть продлен.'");
НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "НеобработанныеПодписи");
НастройкиВарианта.Описание = НСтр("ru = 'Необработанные подписи.'");
НастройкиВарианта.Описание = НСтр("ru = 'Выводит подписи, у которых нужно определить тип и усовершенствовать согласно настройкам.'");
НастройкиВарианта.Включен = ДоступнаУсовершенствованнаяПодпись И УсовершенствоватьПодписиАвтоматически <> 0;
НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ТребуетсяУсовершенствоватьПодписи");
НастройкиВарианта.Описание = НСтр("ru = 'Требуется усовершенствовать подписи.'");
НастройкиВарианта.Описание = НСтр("ru = 'Выводит подписи, которые требуется усовершенствовать.'");
НастройкиВарианта.Включен = ДоступнаУсовершенствованнаяПодпись И УсовершенствоватьПодписиАвтоматически <> 0;
НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ТребуетсяДобавитьАрхивныеМетки");
НастройкиВарианта.Описание = НСтр("ru = 'Требуется добавить архивные метки в подписи.'");
НастройкиВарианта.Описание = НСтр("ru = 'Выводит подписи, в которые пора добавить архивные метки.'");
НастройкиВарианта.Включен = ДоступнаУсовершенствованнаяПодпись И ДобавлятьМеткиВремениАвтоматически;
НастройкиВарианта = МодульВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ОшибкиПриАвтоматическомПродлении");
НастройкиВарианта.Описание = НСтр("ru = 'Ошибки при автоматическом продлении подписей.'");
НастройкиВарианта.Описание = НСтр("ru = 'Выводит подписи, при автоматическом продлении которых произошла ошибка.'");
НастройкиВарианта.Включен = ДоступнаУсовершенствованнаяПодпись
И (ДобавлятьМеткиВремениАвтоматически Или УсовершенствоватьПодписиАвтоматически = 1);
@@ -995,6 +995,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>Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса</name>
<right>
@@ -1156,6 +1243,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.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса</name>
<right>
@@ -4628,93 +4734,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>
@@ -427,6 +427,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right>
@@ -2457,33 +2484,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.МакетыПечатныхФорм</name>
<right>
@@ -336,6 +336,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right>
@@ -2000,33 +2027,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.МакетыПечатныхФорм</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.СвязатьсяСоСпециалистомОнлайнПоддержки</name>
<right>
@@ -31,33 +58,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.НастройкаОнлайнПоддержки</name>
<right>
@@ -66,6 +66,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.СценарииСинхронизации</name>
<right>
@@ -520,33 +547,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>WebService.Exchange_3_0_1_1.Operation.TestConnection</name>
<right>
@@ -72,6 +72,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ПричиныИзмененияАдресныхСведений</name>
<right>
@@ -233,33 +260,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ОриентирыАдресныхОбъектов</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>DataProcessor.ЗагрузкаКлассификатораБанков.Command.ЗагрузкаКлассификатораБанков</name>
<right>
@@ -60,31 +87,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -42,6 +42,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right>
@@ -165,33 +192,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтчетов.Command.СброситьНастройкиРазмещения</name>
<right>
@@ -272,6 +272,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>DocumentJournal.Взаимодействия.Command.ПозвонитьПоПредмету</name>
<right>
@@ -1296,33 +1323,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>DocumentJournal.Взаимодействия.Command.НаписатьSMSПоКонтакту</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВидыКонтактнойИнформации</name>
<right>
@@ -81,31 +108,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.ГруппыПользователей</name>
<right>
@@ -113,31 +140,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -65,29 +65,6 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.РучныеИзмененияГрафиковРаботы</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>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -115,4 +92,27 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.РучныеИзмененияГрафиковРаботы</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>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
</object>
</Rights>
@@ -18,6 +18,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Report.ДатыЗапретаИзменения</name>
<right>
@@ -85,33 +112,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<restrictionTemplate>
<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам</name>
<right>
@@ -109,31 +136,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -81,6 +81,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.РедактированиеГиперссылки</name>
<right>
@@ -166,33 +193,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.РедактированиеДополнительныхСведений</name>
<right>
@@ -44,6 +44,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Task.ЗадачаИсполнителя</name>
<right>
@@ -204,33 +231,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ДанныеБизнесПроцессов.Command.МоиБизнесПроцессы</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.Заметки</name>
<right>
@@ -77,33 +104,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.Заметки.Command.ВсеЗаметки</name>
<right>
@@ -26,6 +26,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ДанныеПроизводственногоКалендаря</name>
<right>
@@ -107,31 +134,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -65,6 +65,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтчетов.Command.Открыть</name>
<right>
@@ -172,33 +199,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -158,6 +158,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.ОтправитьПисьмо</name>
<right>
@@ -194,33 +221,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -10,6 +10,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.НапоминанияПользователя</name>
<right>
@@ -47,33 +74,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.НапоминанияПользователя.Command.МоиНапоминания</name>
<right>
@@ -18,6 +18,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Document.НазначениеОпросов</name>
<right>
@@ -88,31 +115,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -29,6 +29,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Document.Анкета</name>
<right>
@@ -110,31 +137,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.Файлы.Command.ВерсииФайла</name>
<right>
@@ -94,33 +121,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.РедактируемыеФайлы</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.Файлы.Command.ВерсииФайла</name>
<right>
@@ -94,33 +121,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonCommand.РедактируемыеФайлы</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.ГруппыПользователей</name>
<right>
@@ -106,31 +133,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -10,6 +10,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux</name>
<right>
@@ -68,31 +95,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -14,6 +14,37 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
@@ -76,37 +107,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -14,6 +14,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Report.ЗадачиИстекающиеНаДату</name>
<right>
@@ -151,33 +178,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Report.Задачи</name>
<right>
@@ -22,6 +22,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования</name>
<right>
@@ -61,31 +88,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.СостоянияОригиналовПервичныхДокументов</name>
<right>
@@ -78,31 +105,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.УчетныеЗаписиDSS</name>
<right>
@@ -71,33 +98,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.УчетныеЗаписиЭлектроннойПочты</name>
<right>
@@ -84,33 +111,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -88,6 +88,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ВариантыОтветовАнкет</name>
<right>
@@ -173,31 +200,4 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
</Rights>
@@ -10,13 +10,6 @@
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -44,4 +37,11 @@
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights>
@@ -10,6 +10,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Report.ЗадачиИстекающиеНаДату</name>
<right>
@@ -167,33 +194,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Report.Задачи</name>
<right>
@@ -3,6 +3,33 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>InformationRegister.ДополнительныеСведения</name>
<right>
@@ -47,33 +74,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.РедактированиеДополнительныхСведений</name>
<right>
@@ -3,25 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>InformationRegister.ПользовательскиеМакетыПечати</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>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -49,6 +30,25 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПользовательскиеМакетыПечати</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>Catalog.МакетыПечатныхФорм</name>
<right>
@@ -22,28 +22,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.СостоянияОригиналовПервичныхДокументов</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -71,4 +49,26 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.СостоянияОригиналовПервичныхДокументов</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.ЖурналУчетаОригиналовПервичныхДокументов</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights>
@@ -10,6 +10,33 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>CommonForm.ПраваДоступа</name>
<right>
@@ -94,33 +121,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>
</object>
<object>
<name>Catalog.ПрофилиГруппДоступа</name>
<right>
@@ -3,17 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.ТекущиеДела</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -41,4 +30,15 @@
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ТекущиеДела</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights>
Loaded 100 of 130 files, more files were not shown because too many files have changed in this diff. Show more