3_1_2_396
This commit is contained in:
1 parent
0b08705d91
commit
b69abc958d
49 files changed
+1803
-795
No files matched your search
@@ -151,6 +151,45 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Структура - со свойствами:
|
||||
// * Расширения - Структура со свойствами:
|
||||
// * Добавлено - Число
|
||||
// * Удалено - Число
|
||||
// * Изменено - Число
|
||||
// * СписокНовых - Массив из Строка
|
||||
// * Исправления - Структура со свойствами:
|
||||
// * Добавлено - Число
|
||||
// * Удалено - Число
|
||||
// * Изменено - Число
|
||||
// * СписокНовых - Массив из Строка
|
||||
//
|
||||
Функция ДинамическиИзмененныеРасширения() Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если ПараметрыСеанса.УстановленныеРасширения.Свойство("РасширенияНедоступны") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
УстановленныеРасширения = УстановленныеРасширения();
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Расширения", Неопределено);
|
||||
Результат.Вставить("Исправления", Неопределено);
|
||||
Если ПараметрыСеанса.УстановленныеРасширения.ИсправленияСостояние <> УстановленныеРасширения.ИсправленияСостояние Тогда
|
||||
Изменения = ИзмененияВСоставеРасширений(ПараметрыСеанса.УстановленныеРасширения.Исправления, УстановленныеРасширения.Исправления);
|
||||
Результат.Исправления = Изменения;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыСеанса.УстановленныеРасширения.ОсновныеСостояние <> УстановленныеРасширения.ОсновныеСостояние Тогда
|
||||
Изменения = ИзмененияВСоставеРасширений(ПараметрыСеанса.УстановленныеРасширения.ОсновныеСостояние, УстановленныеРасширения.ОсновныеСостояние);
|
||||
Результат.Расширения = Изменения;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет сведения, что сеанс начал использование версии метаданных.
|
||||
Процедура ЗарегистрироватьИспользованиеВерсииРасширений() Экспорт
|
||||
|
||||
@@ -871,6 +910,52 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для функции ДинамическиИзмененныеРасширения.
|
||||
Функция ИзмененияВСоставеРасширений(ТекущийСостав, НовыйСостав)
|
||||
СоответствиеНовых = Новый Соответствие;
|
||||
Для Каждого Расширение Из СтрРазделить(НовыйСостав, Символы.ПС) Цикл
|
||||
Если СтрНачинаетсяС(Расширение, "#") Или Не ЗначениеЗаполнено(Расширение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ИмяИХеш = СтрРазделить(Расширение, " ");
|
||||
СоответствиеНовых.Вставить(ИмяИХеш[0], ИмяИХеш[1]);
|
||||
КонецЦикла;
|
||||
|
||||
СоответствиеТекущих = Новый Соответствие;
|
||||
Для Каждого Расширение Из СтрРазделить(ТекущийСостав, Символы.ПС) Цикл
|
||||
Если СтрНачинаетсяС(Расширение, "#") Или Не ЗначениеЗаполнено(Расширение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ИмяИХеш = СтрРазделить(Расширение, " ");
|
||||
СоответствиеТекущих.Вставить(ИмяИХеш[0], ИмяИХеш[1]);
|
||||
КонецЦикла;
|
||||
|
||||
Добавлено = 0;
|
||||
Изменено = 0;
|
||||
СписокНовых = Новый Массив;
|
||||
Для Каждого НовоеРасширение Из СоответствиеНовых Цикл
|
||||
НайденныйЭлемент = СоответствиеТекущих[НовоеРасширение.Ключ];
|
||||
Если НайденныйЭлемент = Неопределено Тогда
|
||||
Добавлено = Добавлено + 1;
|
||||
СписокНовых.Добавить(НовоеРасширение.Ключ);
|
||||
ИначеЕсли НайденныйЭлемент <> НовоеРасширение.Значение Тогда
|
||||
Изменено = Изменено + 1;
|
||||
СоответствиеТекущих.Удалить(НовоеРасширение.Ключ);
|
||||
Иначе
|
||||
СоответствиеТекущих.Удалить(НовоеРасширение.Ключ);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Удалено = СоответствиеТекущих.Количество();
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Добавлено", Добавлено);
|
||||
Результат.Вставить("Изменено", Изменено);
|
||||
Результат.Вставить("Удалено", Удалено);
|
||||
Результат.Вставить("СписокНовых", СписокНовых);
|
||||
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -879,7 +879,7 @@
|
||||
КлючОбъектаМетаданных = Объект.КлючОбъектаМетаданных.Получить();
|
||||
Если КлючОбъектаМетаданных = Неопределено
|
||||
ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных
|
||||
И КлючОбъектаМетаданных <> Тип("Неопределено") Тогда
|
||||
<> (КлючОбъектаМетаданных = Тип("Неопределено")) Тогда
|
||||
|
||||
Объект.КлючОбъектаМетаданных = Новый ХранилищеЗначения(КлючОбъектаМетаданных(СвойстваОбъекта.ПолноеИмя));
|
||||
КонецЕсли;
|
||||
@@ -1626,7 +1626,7 @@
|
||||
ИЛИ Свойства.ПометкаУдаления
|
||||
ИЛИ КлючОбъектаМетаданных = Неопределено
|
||||
ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных
|
||||
И КлючОбъектаМетаданных <> Тип("Неопределено") Тогда
|
||||
<> (КлючОбъектаМетаданных = Тип("Неопределено")) Тогда
|
||||
|
||||
Если ВРег(Свойства.ПолноеИмя) <> ВРег(СвойстваОбъекта.ПолноеИмя) Тогда
|
||||
ЕстьКритичныеИзменения = Истина;
|
||||
@@ -1642,7 +1642,7 @@
|
||||
|
||||
Если КлючОбъектаМетаданных = Неопределено
|
||||
ИЛИ СвойстваОбъекта.БезКлючаОбъектаМетаданных
|
||||
И КлючОбъектаМетаданных <> Тип("Неопределено") Тогда
|
||||
<> (КлючОбъектаМетаданных = Тип("Неопределено")) Тогда
|
||||
|
||||
Свойства.КлючОбъектаМетаданных = КлючОбъектаМетаданных(СвойстваОбъекта.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
+76
-1
@@ -16,6 +16,50 @@
|
||||
<segments>Ошибки</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОшибкиКартинка</name>
|
||||
<id>66</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Ошибки.Картинка</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ОшибкиКартинкаРасширеннаяПодсказка</name>
|
||||
<id>68</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОшибкиКартинкаКонтекстноеМеню</name>
|
||||
<id>67</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<border xsi:type="core:BorderDef">
|
||||
<style>Single</style>
|
||||
<width>1</width>
|
||||
</border>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОшибкиПричина</name>
|
||||
<id>48</id>
|
||||
@@ -495,7 +539,7 @@
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<width>90</width>
|
||||
<width>55</width>
|
||||
<height>20</height>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
@@ -576,6 +620,37 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Картинка</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Картинка</value>
|
||||
</title>
|
||||
<id>4</id>
|
||||
<valueType>
|
||||
<types>Picture</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ОписаниеСЗаголовком</name>
|
||||
<id>5</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ОписаниеОшибки</name>
|
||||
|
||||
+53
-29
@@ -17,7 +17,7 @@
|
||||
Если ШиринаЗаголовка > 80 Тогда
|
||||
ШиринаЗаголовка = 80;
|
||||
КонецЕсли;
|
||||
Если ШиринаЗаголовка > 35 Тогда
|
||||
Если ШиринаЗаголовка > Ширина Тогда
|
||||
Ширина = ШиринаЗаголовка;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -29,10 +29,16 @@
|
||||
ДобавитьОшибки(ОшибкаНаКлиенте);
|
||||
ДобавитьОшибки(ОшибкаНаСервере, Истина);
|
||||
|
||||
Элементы.ОшибкиКартинка.Видимость =
|
||||
Ошибки.НайтиСтроки(Новый Структура("ОшибкаНаСервере", Ложь)).Количество() <> 0
|
||||
И Ошибки.НайтиСтроки(Новый Структура("ОшибкаНаСервере", Истина)).Количество() <> 0;
|
||||
|
||||
Элементы.Ошибки.ВысотаВСтрокахТаблицы = Мин(Ошибки.Количество(), 3);
|
||||
|
||||
Если ЗначениеЗаполнено(ОшибкаНаКлиенте)
|
||||
И ЗначениеЗаполнено(ОшибкаНаСервере) Тогда
|
||||
И ЗначениеЗаполнено(ОшибкаНаКлиенте.ОписаниеОшибки)
|
||||
И ЗначениеЗаполнено(ОшибкаНаСервере)
|
||||
И ЗначениеЗаполнено(ОшибкаНаСервере.ОписаниеОшибки) Тогда
|
||||
|
||||
ОписаниеОшибки = НСтр("ru = 'НА СЕРВЕРЕ:'")
|
||||
+ Символы.ПС + Символы.ПС + ОшибкаНаСервере.ОписаниеОшибки
|
||||
@@ -111,7 +117,7 @@
|
||||
ПараметрыОшибки = Новый Структура;
|
||||
ПараметрыОшибки.Вставить("ЗаголовокПредупреждения", Заголовок);
|
||||
ПараметрыОшибки.Вставить(?(ТекущиеДанные.ОшибкаНаСервере,
|
||||
"ТекстОшибкиСервер", "ТекстОшибкиКлиент"), ТекущиеДанные.Причина);
|
||||
"ТекстОшибкиСервер", "ТекстОшибкиКлиент"), ТекущиеДанные.ОписаниеСЗаголовком);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки", ПараметрыОшибки, ЭтотОбъект);
|
||||
|
||||
@@ -149,7 +155,7 @@
|
||||
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
|
||||
|
||||
Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
|
||||
ХранилищеСистемныхНастроек.Удалить("ОбщаяФорма.Вопрос", "", ИмяПользователя);
|
||||
ХранилищеСистемныхНастроек.Удалить(ИмяФормы, "", ИмяПользователя);
|
||||
КонецЕсли;
|
||||
|
||||
КлючСохраненияПоложенияОкна = Строка(Новый УникальныйИдентификатор);
|
||||
@@ -192,8 +198,8 @@
|
||||
Инструкция = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Ошибка.Свойство("Расширение")
|
||||
И Ошибка.Расширение = Истина Тогда
|
||||
Если Ошибка.Свойство("НетРасширения")
|
||||
И Ошибка.НетРасширения = Истина Тогда
|
||||
|
||||
Расширение = Истина;
|
||||
КонецЕсли;
|
||||
@@ -201,32 +207,50 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьОшибки(ОписаниеОшибки, ОшибкиНаСервере = Ложь)
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
|
||||
Если ОписаниеОшибки.Свойство("Ошибки")
|
||||
И ТипЗнч(ОписаниеОшибки.Ошибки) = Тип("Массив")
|
||||
И ОписаниеОшибки.Ошибки.Количество() > 0 Тогда
|
||||
|
||||
Для Каждого Ошибка Из ОписаниеОшибки.Ошибки Цикл
|
||||
|
||||
СтрокаОшибки = Ошибки.Добавить();
|
||||
СтрокаОшибки.Причина = Ошибка.Описание;
|
||||
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
|
||||
СтрокаОшибки.ОшибкаНаСервере = ОшибкиНаСервере;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
|
||||
СтрокаОшибки = Ошибки.Добавить();
|
||||
СтрокаОшибки.Причина = ОписаниеОшибки.ОписаниеОшибки;
|
||||
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
|
||||
СтрокаОшибки.ОшибкаНаСервере = ОшибкиНаСервере;
|
||||
Процедура ДобавитьОшибки(ОписаниеОшибок, ОшибкаНаСервере = Ложь)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибок) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеОшибок.Свойство("Ошибки")
|
||||
И ТипЗнч(ОписаниеОшибок.Ошибки) = Тип("Массив")
|
||||
И ОписаниеОшибок.Ошибки.Количество() > 0 Тогда
|
||||
|
||||
Для Каждого СвойстваОшибки Из ОписаниеОшибок.Ошибки Цикл
|
||||
|
||||
ОписаниеСЗаголовком = "";
|
||||
Если ЗначениеЗаполнено(СвойстваОшибки.ЗаголовокОшибки) Тогда
|
||||
ОписаниеСЗаголовком = СвойстваОшибки.ЗаголовокОшибки + Символы.ПС;
|
||||
ИначеЕсли ЗначениеЗаполнено(ОписаниеОшибок.ЗаголовокОшибки) Тогда
|
||||
ОписаниеСЗаголовком = ОписаниеОшибок.ЗаголовокОшибки + Символы.ПС;
|
||||
КонецЕсли;
|
||||
Описание = "";
|
||||
Если ЗначениеЗаполнено(СвойстваОшибки.Программа) Тогда
|
||||
Описание = Описание + Строка(СвойстваОшибки.Программа) + ":" + Символы.ПС;
|
||||
КонецЕсли;
|
||||
Описание = Описание + СвойстваОшибки.Описание;
|
||||
ОписаниеСЗаголовком = ОписаниеСЗаголовком + Описание;
|
||||
|
||||
СтрокаОшибки = Ошибки.Добавить();
|
||||
СтрокаОшибки.Причина = Описание;
|
||||
СтрокаОшибки.ОписаниеСЗаголовком = ОписаниеСЗаголовком;
|
||||
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
|
||||
СтрокаОшибки.ОшибкаНаСервере = ОшибкаНаСервере;
|
||||
СтрокаОшибки.Картинка = ?(ОшибкаНаСервере,
|
||||
БиблиотекаКартинок.КомпьютерСервер,
|
||||
БиблиотекаКартинок.КомпьютерКлиент);
|
||||
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
СтрокаОшибки = Ошибки.Добавить();
|
||||
СтрокаОшибки.Причина = ОписаниеОшибок.ОписаниеОшибки;
|
||||
СтрокаОшибки.ОписаниеСЗаголовком = ОписаниеОшибок.ОписаниеОшибки;
|
||||
СтрокаОшибки.Подробнее = НСтр("ru = 'Подробнее'") + "...";
|
||||
СтрокаОшибки.ОшибкаНаСервере = ОшибкаНаСервере;
|
||||
СтрокаОшибки.Картинка = ?(ОшибкаНаСервере,
|
||||
БиблиотекаКартинок.КомпьютерСервер,
|
||||
БиблиотекаКартинок.КомпьютерКлиент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+9
-3
@@ -167,7 +167,10 @@
|
||||
Процедура СертификатыНедоступныНаКлиентеНадписьНажатие(Элемент)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru = 'Сертификаты на компьютере'"), "", ОшибкаПолученияСертификатовНаКлиенте, Новый Структура);
|
||||
НСтр("ru = 'Сертификаты недоступны на компьютере'"),
|
||||
"",
|
||||
ОшибкаПолученияСертификатовНаКлиенте,
|
||||
Новый Структура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -175,7 +178,10 @@
|
||||
Процедура СертификатыНедоступныНаСервереНадписьНажатие(Элемент)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru = 'Сертификаты на сервере'"), "", ОшибкаПолученияСертификатовНаСервере, Новый Структура);
|
||||
НСтр("ru = 'Сертификаты недоступны на сервере'"),
|
||||
"",
|
||||
ОшибкаПолученияСертификатовНаСервере,
|
||||
Новый Структура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -636,7 +642,7 @@
|
||||
|
||||
Если ТипЗнч(РезультатПоиска) <> Тип("СертификатКриптографии") Тогда
|
||||
Если РезультатПоиска.Свойство("СертификатНеНайден") Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = НСтр("ru = 'Сертификат не найден на компьютере (возможно удален).'");
|
||||
Контекст.Результат.ОписаниеОшибки = НСтр("ru = 'Сертификат не установлен на компьютере (возможно удален).'");
|
||||
Иначе
|
||||
Контекст.Результат.ОписаниеОшибки = РезультатПоиска.ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
+13
-5
@@ -126,7 +126,10 @@
|
||||
Процедура СертификатыНедоступныНаКлиентеНадписьНажатие(Элемент)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru = 'Сертификаты на компьютере'"), "", ОшибкаПолученияСертификатовНаКлиенте, Новый Структура);
|
||||
НСтр("ru = 'Сертификаты недоступны на компьютере'"),
|
||||
"",
|
||||
ОшибкаПолученияСертификатовНаКлиенте,
|
||||
Новый Структура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -134,7 +137,10 @@
|
||||
Процедура СертификатыНедоступныНаСервереНадписьНажатие(Элемент)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru = 'Сертификаты на сервере'"), "", ОшибкаПолученияСертификатовНаСервере, Новый Структура);
|
||||
НСтр("ru = 'Сертификаты недоступны на сервере'"),
|
||||
"",
|
||||
ОшибкаПолученияСертификатовНаСервере,
|
||||
Новый Структура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -243,7 +249,7 @@
|
||||
Контекст = Новый Структура;
|
||||
|
||||
Если Результат.Свойство("СертификатНеНайден") Тогда
|
||||
Контекст.Вставить("ОписаниеОшибки", НСтр("ru = 'Сертификат не найден на компьютере (возможно удален).'"));
|
||||
Контекст.Вставить("ОписаниеОшибки", НСтр("ru = 'Сертификат не установлен на компьютере (возможно удален).'"));
|
||||
Иначе
|
||||
Контекст.Вставить("ОписаниеОшибки", Результат.ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
@@ -447,10 +453,12 @@
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ГруппаСертификатыНедоступныНаКлиенте.Видимость =
|
||||
ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаКлиенте);
|
||||
ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаКлиенте)
|
||||
И ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаКлиенте.ОписаниеОшибки);
|
||||
|
||||
Элементы.ГруппаСертификатыНедоступныНаСервере.Видимость =
|
||||
ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаСервере);
|
||||
ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаСервере)
|
||||
И ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаСервере.ОписаниеОшибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
+1
@@ -3629,6 +3629,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Пароль</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>ПарольПриИзменении</name>
|
||||
|
||||
+7
-3
@@ -589,6 +589,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
|
||||
ПараметрыСоздания.ПоказатьОшибку = Ложь;
|
||||
|
||||
// Проверка данных сертификата.
|
||||
@@ -1110,9 +1111,8 @@
|
||||
|
||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.Программа = Программа;
|
||||
ПараметрыСоздания.АлгоритмПодписи = АлгоритмПодписи;
|
||||
|
||||
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
|
||||
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("ПроверкаСертификата", ПараметрыСоздания);
|
||||
|
||||
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
|
||||
|
||||
@@ -1192,6 +1192,7 @@
|
||||
&НаСервере
|
||||
Процедура ПроверитьПодписьНаСервере(МенеджерКриптографии, ДанныеСертификата, ДанныеПодписи)
|
||||
|
||||
ОписаниеОшибки = "";
|
||||
Попытка
|
||||
МенеджерКриптографии.ПроверитьПодпись(ДанныеСертификата, ДанныеПодписи);
|
||||
Исключение
|
||||
@@ -1211,6 +1212,8 @@
|
||||
КонецПопытки;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Шифрование", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
Возврат ЗашифрованныеДанные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
@@ -1236,7 +1239,6 @@
|
||||
ОписаниеОшибки = "";
|
||||
ЭтоПредупреждение = Ложь;
|
||||
Попытка
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("Сертификат", Сертификат);
|
||||
ПараметрыВыполнения.Вставить("Проверка", ЭлементСписка.Имя);
|
||||
@@ -1248,6 +1250,8 @@
|
||||
|
||||
ЭлектроннаяПодписьПереопределяемый.ПриДополнительнойПроверкеСертификата(ПараметрыВыполнения);
|
||||
|
||||
ОписаниеОшибки = ПараметрыВыполнения.ОписаниеОшибки;
|
||||
ЭтоПредупреждение = ПараметрыВыполнения.ЭтоПредупреждение;
|
||||
Исключение
|
||||
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
@@ -1268,11 +1268,11 @@
|
||||
<Value>Macao</Value>
|
||||
</row>
|
||||
<row>
|
||||
<Value>РЕСПУБЛИКА МАКЕДОНИЯ</Value>
|
||||
<Value>СЕВЕРНАЯ МАКЕДОНИЯ</Value>
|
||||
<Value>MK</Value>
|
||||
<Value>MKD</Value>
|
||||
<Value>807</Value>
|
||||
<Value>Республика Македония</Value>
|
||||
<Value>Республика Северная Македония</Value>
|
||||
<Value>false</Value>
|
||||
<Value>false</Value>
|
||||
<Value>North Macedonia</Value>
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
Элементы.ПодписиКомментарий.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерКриптографииНаСервереОписаниеОшибки = Новый Структура;
|
||||
|
||||
Если ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
|
||||
Или ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||
|
||||
|
||||
@@ -0,0 +1,326 @@
|
||||
<?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">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Установлено обновление программы</value>
|
||||
</title>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Содержимое</name>
|
||||
<id>13</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>Картинка</name>
|
||||
<id>10</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Картинка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>КартинкаРасширеннаяПодсказка</name>
|
||||
<id>12</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>КартинкаКонтекстноеМеню</name>
|
||||
<id>11</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<width>4</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>2</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>StdPicture.DialogInformation</picture>
|
||||
</picture>
|
||||
<pictureSize>Proportionally</pictureSize>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>Текст</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Версия программы обновлена (внесены изменения в конфигурацию информационной базы).
|
||||
Для дальнейшей работы рекомендуется перезапустить программу</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТекстРасширеннаяПодсказка</name>
|
||||
<id>3</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТекстКонтекстноеМеню</name>
|
||||
<id>2</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<groupVerticalAlign>Center</groupVerticalAlign>
|
||||
<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>14</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаПерезапустить</name>
|
||||
<id>4</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаПерезапуститьРасширеннаяПодсказка</name>
|
||||
<id>5</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.Перезапустить</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаНапомнитьПозже</name>
|
||||
<id>6</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>ФормаНапомнитьПозжеРасширеннаяПодсказка</name>
|
||||
<id>7</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<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>8</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаБольшеНеПоказыватьРасширеннаяПодсказка</name>
|
||||
<id>9</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.БольшеНеНапоминать</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>БольшеНеПоказывать</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПараметрыПроверки</name>
|
||||
<id>2</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ОписаниеНовыхПатчей</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Перезапустить</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Перезапустить</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Перезапустить</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>Перезапустить</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>НапомнитьПозже</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Напомнить позже</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Напомнить позже</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>НапомнитьПозже</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>БольшеНеНапоминать</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Больше не напоминать</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Больше не напоминать</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>БольшеНеНапоминать</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,98 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2020, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
ПараметрыПроверки = Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения();
|
||||
ПараметрыПроверки.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически());
|
||||
|
||||
Сообщение = СтандартныеПодсистемыСервер.ТекстСообщенияПриДинамическомОбновлении(ПараметрыПроверки);
|
||||
|
||||
Если ПараметрыПроверки.Исправления <> Неопределено И ПараметрыПроверки.Исправления.СписокНовых.Количество() > 0 Тогда
|
||||
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
||||
ПараметрыМетода = Новый Массив;
|
||||
ПараметрыМетода.Добавить(АдресХранилища);
|
||||
ПараметрыМетода.Добавить(ПараметрыПроверки.Исправления.СписокНовых);
|
||||
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
|
||||
"ОбновлениеКонфигурации.ОписанияНовыхПатчей",
|
||||
ПараметрыМетода);
|
||||
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
|
||||
|
||||
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
|
||||
Сообщение = СтрЗаменить(Сообщение, "Ссылка", " " + НСтр("ru = '<a href = ""ПереходПоСсылке"">Подробно</a>'"));
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.Текст.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Сообщение);
|
||||
|
||||
Ключ = "";
|
||||
Если ПараметрыПроверки.КонфигурацияБазыДанныхИзмененаДинамически Тогда
|
||||
Ключ = "Конфигурация";
|
||||
КонецЕсли;
|
||||
Если ПараметрыПроверки.Исправления <> Неопределено Тогда
|
||||
Ключ = Ключ + "Исправления";
|
||||
КонецЕсли;
|
||||
Если ПараметрыПроверки.Расширения <> Неопределено Тогда
|
||||
Ключ = Ключ + "Расширения";
|
||||
КонецЕсли;
|
||||
|
||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, Ключ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТекстОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Документ = Новый ТекстовыйДокумент;
|
||||
Документ.УстановитьТекст(ОписаниеНовыхПатчей);
|
||||
Документ.Показать(НСтр("ru = 'Новые исправления ошибок'"));
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Перезапустить(Команда)
|
||||
СтандартныеПодсистемыКлиент.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
|
||||
ЗавершитьРаботуСистемы(Истина, Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура НапомнитьПозже(Команда)
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПриВыполненииСтандартныхПериодическихПроверок";
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, ОбщегоНазначенияКлиент.ДатаСеанса());
|
||||
|
||||
Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура БольшеНеНапоминать(Команда)
|
||||
БольшеНеНапоминатьНаСервере();
|
||||
Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура БольшеНеНапоминатьНаСервере()
|
||||
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя",
|
||||
"ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы",
|
||||
Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a5902ed4-a8f1-460e-aced-0094b2c384a3">
|
||||
<name>КонтрольДинамическогоОбновления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Контроль динамического обновления</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</mdclass:CommonForm>
|
||||
@@ -785,19 +785,21 @@
|
||||
ОписанияПрограмм = Новый Массив;
|
||||
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы);
|
||||
|
||||
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
|
||||
ПараметрыВыполнения.Вставить("Индекс", -1);
|
||||
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Неопределено);
|
||||
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
|
||||
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
|
||||
ПараметрыВыполнения.Вставить("АлгоритмПодписи", "");
|
||||
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
|
||||
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
|
||||
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
|
||||
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
||||
"ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст));
|
||||
|
||||
Контекст.Вставить("ПараметрыВыполнения",
|
||||
Новый Структура("СвойстваОшибки", ПараметрыВыполнения.СвойстваОшибки));
|
||||
Контекст.Вставить("ПараметрыВыполнения", Новый Структура("ОписаниеОшибок", ОписаниеОшибок));
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографииЦиклНачало(ПараметрыВыполнения);
|
||||
|
||||
@@ -808,7 +810,7 @@
|
||||
Процедура ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклПродолжение(Менеджер, Контекст) Экспорт
|
||||
|
||||
ОписаниеПрограммы = Контекст.ОписаниеПрограммы;
|
||||
Ошибки = Контекст.ПараметрыВыполнения.СвойстваОшибки.Ошибки;
|
||||
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки;
|
||||
|
||||
Если Менеджер <> Неопределено Тогда
|
||||
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверки, НСтр("ru = 'Установлена на компьютере.'"));
|
||||
|
||||
@@ -43,10 +43,6 @@
|
||||
Если ДлительнаяОперация.ФормаВладелец <> Неопределено И Не ДлительнаяОперация.ФормаВладелец.Открыта() Тогда
|
||||
ОперацияОтменена = Истина;
|
||||
КонецЕсли;
|
||||
Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("ФормаКлиентскогоПриложения")
|
||||
И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда
|
||||
ОперацияОтменена = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОперацияОтменена Тогда
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.2.387";
|
||||
Описание.Версия = "3.1.2.396";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -471,6 +471,27 @@
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления) Экспорт
|
||||
Описания = Новый Массив;
|
||||
Для Каждого Исправление Из ТекущиеИсправления Цикл
|
||||
Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Макет = ПолучитьОбщийМакет(Исправление);
|
||||
Для НомерСтроки = 1 По Макет.КоличествоСтрок() Цикл
|
||||
Строка = Макет.ПолучитьСтроку(НомерСтроки);
|
||||
Если Не СтрНачинаетсяС(СокрЛП(Строка), "<Description>") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеПатча = СтрЗаменить(СтрЗаменить(СокрЛП(Строка), "<Description>", ""), "</Description>", "");
|
||||
Описания.Добавить(Исправление + ": " + ОписаниеПатча);
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС);
|
||||
ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища);
|
||||
КонецФункции
|
||||
|
||||
// Вызывается при завершении обновления конфигурации через COM-соединение.
|
||||
//
|
||||
// Параметры:
|
||||
|
||||
@@ -5207,13 +5207,16 @@
|
||||
// Сохраняет персональные настройки пользователя, относящиеся к подсистеме БазоваяФункциональность.
|
||||
// Для получения настроек предусмотрены следующие функции:
|
||||
// - ОбщегоНазначенияКлиент.ПредлагатьУстановкуРасширенияРаботыСФайлами(),
|
||||
// - СтандартныеПодсистемыСервер.ЗапрашиватьПодтверждениеПриЗавершенииПрограммы().
|
||||
// - СтандартныеПодсистемыСервер.ЗапрашиватьПодтверждениеПриЗавершенииПрограммы(),
|
||||
// - СтандартныеПодсистемыСервер.ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы().
|
||||
//
|
||||
// Параметры:
|
||||
// Настройки - Структура - коллекция настроек:
|
||||
// Настройки - Структура:
|
||||
// * НапоминатьОбУстановкеРасширенияРаботыСФайлами - Булево - признак необходимости
|
||||
// напоминания об установке расширения.
|
||||
// * ЗапрашиватьПодтверждениеПриЗавершенииПрограммы - Булево - запрашивать подтверждение по завершении работы.
|
||||
// * ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы - Булево - показывать оповещение при
|
||||
// динамическом обновлении программы.
|
||||
//
|
||||
Процедура СохранитьПерсональныеНастройки(Настройки) Экспорт
|
||||
|
||||
@@ -5233,6 +5236,12 @@
|
||||
Настройки.ЗапрашиватьПодтверждениеПриЗавершенииПрограммы);
|
||||
КонецЕсли;
|
||||
|
||||
Если Настройки.Свойство("ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы") Тогда
|
||||
ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя",
|
||||
"ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы",
|
||||
Настройки.ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Выполняет пропорциональное распределение суммы в соответствии
|
||||
|
||||
@@ -386,12 +386,29 @@
|
||||
|
||||
Исключение
|
||||
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||
|
||||
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(МодульТехнологияСервиса.ВерсияБиблиотеки(), "2.0.2.15") >= 0 Тогда
|
||||
Предупреждение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выгрузка файла %1 (тип %2) пропущена по причине
|
||||
|%3'"),
|
||||
Объект,
|
||||
Объект.Метаданные().ПолноеИмя(),
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
Контейнер.ДобавитьПредупреждение(Предупреждение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Файлы.Выгрузка данных для перехода в сервис'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,
|
||||
Объект.Метаданные(),
|
||||
Объект.Ссылка,
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
Контейнер.ИсключитьФайл(ИмяФайла);
|
||||
|
||||
|
||||
@@ -2848,11 +2848,9 @@
|
||||
КонецЕсли;
|
||||
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
|
||||
|
||||
МенеджерКриптографии = МодульЭлектроннаяПодпись.МенеджерКриптографии("ПроверкаПодписи");
|
||||
|
||||
Для каждого СтрокаПодписи Из ДанныеСтрок Цикл
|
||||
Для Каждого СтрокаПодписи Из ДанныеСтрок Цикл
|
||||
ОписаниеОшибки = "";
|
||||
ПодписьВерна = МодульЭлектроннаяПодпись.ПроверитьПодпись(МенеджерКриптографии,
|
||||
ПодписьВерна = МодульЭлектроннаяПодпись.ПроверитьПодпись(Неопределено,
|
||||
ИсходныеДанные, СтрокаПодписи.АдресПодписи, ОписаниеОшибки, СтрокаПодписи.ДатаПодписи);
|
||||
|
||||
СтрокаПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса();
|
||||
|
||||
@@ -1846,9 +1846,8 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмяФайла = КаталогПолучателя + ПривестиИмяФайла(
|
||||
СтрокаОтчет.Ключ + " (" + ПараметрыФормата.Имя + ")"
|
||||
+ ?(ПараметрыФормата.Расширение = Неопределено, "", ПараметрыФормата.Расширение), ПараметрыДоставки.ТранслитерироватьИменаФайлов);
|
||||
ПолноеИмяФайла = ПолноеИмяФайлаПоШаблону(
|
||||
КаталогПолучателя, СтрокаОтчет.Ключ, ПараметрыФормата, ПараметрыДоставки.ТранслитерироватьИменаФайлов);
|
||||
|
||||
НайтиСвободноеИмяФайла(ПолноеИмяФайла);
|
||||
|
||||
@@ -2557,6 +2556,22 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ПолноеИмяФайлаПоШаблону(Каталог, НаименованиеОтчета, Формат, Транслитерировать)
|
||||
|
||||
ШаблонИмениФайла = "[НаименованиеОтчета] ([ФорматОтчета]) [ДатаРассылки][РасширениеФайла]"; // АПК:1297 Это шаблон.
|
||||
|
||||
ПараметрыИмениФайла = Новый Структура("НаименованиеОтчета, ФорматОтчета, ДатаРассылки, РасширениеФайла");
|
||||
ПараметрыИмениФайла.НаименованиеОтчета = НаименованиеОтчета;
|
||||
ПараметрыИмениФайла.ФорматОтчета = Формат.Имя;
|
||||
ПараметрыИмениФайла.ДатаРассылки = Формат(ТекущаяДатаСеанса(), НСтр("ru = 'ДФ=yyyy-MM-dd'"));
|
||||
ПараметрыИмениФайла.РасширениеФайла = ?(Формат.Расширение = Неопределено, "", Формат.Расширение);
|
||||
|
||||
ИмяФайла = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ШаблонИмениФайла, ПараметрыИмениФайла);
|
||||
|
||||
Возврат Каталог + ПривестиИмяФайла(ИмяФайла, Транслитерировать);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Преобразует недопустимые символы файлов в похожие допустимые.
|
||||
// Работает только с именем файла, путь не поддерживается.
|
||||
//
|
||||
|
||||
@@ -215,9 +215,18 @@
|
||||
//
|
||||
Процедура ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры) Экспорт
|
||||
|
||||
Параметры.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически()
|
||||
КонфигурацияБазыДанныхИзмененаДинамически = КонфигурацияБазыДанныхИзмененаДинамически();
|
||||
Параметры.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически
|
||||
Или Справочники.ВерсииРасширений.РасширенияИзмененыДинамически());
|
||||
|
||||
ДинамическиеИзменения = Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения();
|
||||
ДинамическиеИзменения.Вставить("КонфигурацияБазыДанныхИзмененаДинамически", КонфигурацияБазыДанныхИзмененаДинамически);
|
||||
СообщениеПользователю = СтандартныеПодсистемыСервер.ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзменения);
|
||||
ОповещатьПользователя = СтандартныеПодсистемыСервер.ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы();
|
||||
ДинамическиеИзменения.Вставить("СообщениеПользователю", СообщениеПользователю);
|
||||
ДинамическиеИзменения.Вставить("ОповещатьПользователя", ОповещатьПользователя);
|
||||
Параметры.Вставить("ДинамическиеИзмененияКонфигурации", ДинамическиеИзменения);
|
||||
|
||||
ПользователиСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
|
||||
|
||||
@@ -1804,10 +1804,8 @@
|
||||
ОбработкаПродолжения = Новый ОписаниеОповещения(
|
||||
"ПриВыполненииСтандартныхПериодическихПроверокПодсистемаПользователи", ЭтотОбъект, Контекст);
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ОбработкаПродолжения", ОбработкаПродолжения);
|
||||
|
||||
Если Не Параметры.КонфигурацияБазыДанныхИзмененаДинамически Тогда
|
||||
Если Не Параметры.ДинамическиеИзмененияКонфигурации.ОповещатьПользователя
|
||||
Или Не Параметры.КонфигурацияБазыДанныхИзмененаДинамически Тогда
|
||||
ВыполнитьОбработкуОповещения(ОбработкаПродолжения);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -1821,38 +1819,11 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстВопроса =
|
||||
НСтр("ru = 'Версия программы обновлена (внесены изменения в конфигурацию информационной базы).
|
||||
|Для дальнейшей работы рекомендуется перезапустить программу.'");
|
||||
ПоказатьОповещениеПользователя(НСтр("ru = 'Требуется перезапуск'"),,
|
||||
ТекстВопроса, БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное);
|
||||
СообщениеПользователю = СтрЗаменить(Параметры.ДинамическиеИзмененияКонфигурации.СообщениеПользователю, "Ссылка", "");
|
||||
ПоказатьОповещениеПользователя(НСтр("ru = 'Установлено обновление программы'"), "e1cib/app/ОбщаяФорма.КонтрольДинамическогоОбновления",
|
||||
СообщениеПользователю, БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное);
|
||||
|
||||
КнопкиВопроса = Новый СписокЗначений;
|
||||
КнопкиВопроса.Добавить("Перезапустить", НСтр("ru = 'Перезапустить'"));
|
||||
КнопкиВопроса.Добавить("НапомнитьПозже", НСтр("ru = 'Напомнить позже'"));
|
||||
КнопкиВопроса.Добавить("НеСегодня", НСтр("ru = 'Не напоминать сегодня'"));
|
||||
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения(
|
||||
"ПриВыполненииСтандартныхПериодическихПроверокЗавершение", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, КнопкиВопроса,, "НапомнитьПозже", КлиентскоеПриложение.ПолучитьЗаголовок());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПриВыполненииСтандартныхПериодическихПроверок.
|
||||
Процедура ПриВыполненииСтандартныхПериодическихПроверокЗавершение(Ответ, Контекст) Экспорт
|
||||
|
||||
Если Ответ = "Перезапустить" Тогда
|
||||
ПропуститьПредупреждениеПередЗавершениемРаботыСистемы();
|
||||
ЗавершитьРаботуСистемы(Истина, Истина);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Ответ = "НеСегодня" Тогда
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПриВыполненииСтандартныхПериодическихПроверок";
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, ОбщегоНазначенияКлиент.ДатаСеанса());
|
||||
КонецЕсли;
|
||||
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаПродолжения);
|
||||
ВыполнитьОбработкуОповещения(ОбработкаПродолжения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -313,6 +313,26 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает признак необходимости показа всплывающего уведомления об установленных
|
||||
// обновлениях программы - динамическом обновлении программы, новых патчей и расширений.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - если Истина, то всплывающие уведомления включены.
|
||||
//
|
||||
Функция ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы() Экспорт
|
||||
|
||||
Результат = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
"ОбщиеНастройкиПользователя",
|
||||
"ПоказыватьПредупреждениеОбУстановленныхОбновленияхПрограммы");
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Результат = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает описания форматов сохранения табличного документа.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -1328,6 +1348,62 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует текст для вывода пользователю при необходимости динамического обновления.
|
||||
//
|
||||
Функция ТекстСообщенияПриДинамическомОбновлении(ДинамическиеИзмененияКонфигурации) Экспорт
|
||||
|
||||
Сообщения = Новый Массив;
|
||||
ДинамическиеИзмененияКонфигурации = ДинамическиеИзмененияКонфигурации;
|
||||
Если ДинамическиеИзмененияКонфигурации.КонфигурацияБазыДанныхИзмененаДинамически Тогда
|
||||
ТекстСообщенияКонфигурация = НСтр("ru = 'Версия программы обновлена (внесены изменения в конфигурацию информационной базы).'");
|
||||
Сообщения.Добавить(ТекстСообщенияКонфигурация);
|
||||
КонецЕсли;
|
||||
|
||||
Если ДинамическиеИзмененияКонфигурации.Исправления <> Неопределено Тогда
|
||||
Если ДинамическиеИзмененияКонфигурации.Исправления.Добавлено > 0
|
||||
И ДинамическиеИзмененияКонфигурации.Исправления.Удалено > 0 Тогда
|
||||
ТекстСообщенияПатчи = НСтр("ru = 'Установлены новые исправления (патчи): %1, удалены: %2.'") + "Ссылка";
|
||||
ИначеЕсли ДинамическиеИзмененияКонфигурации.Исправления.Добавлено > 0 Тогда
|
||||
ТекстСообщенияПатчи = НСтр("ru = 'Установлены новые исправления (патчи): %1.'") + "Ссылка";
|
||||
ИначеЕсли ДинамическиеИзмененияКонфигурации.Исправления.Удалено > 0 Тогда
|
||||
ТекстСообщенияПатчи = НСтр("ru = 'Удалены исправления (патчи): %2.'");
|
||||
КонецЕсли;
|
||||
ТекстСообщенияПатчи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщенияПатчи,
|
||||
ДинамическиеИзмененияКонфигурации.Исправления.Добавлено,
|
||||
ДинамическиеИзмененияКонфигурации.Исправления.Удалено);
|
||||
Сообщения.Добавить(ТекстСообщенияПатчи);
|
||||
КонецЕсли;
|
||||
|
||||
Если ДинамическиеИзмененияКонфигурации.Расширения <> Неопределено Тогда
|
||||
Если ДинамическиеИзмененияКонфигурации.Расширения.Добавлено > 0 Тогда
|
||||
ТекстСообщенияРасширения = НСтр("ru = 'Установлены новые расширения: %1.'");
|
||||
ТекстСообщенияРасширения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщенияРасширения,
|
||||
ДинамическиеИзмененияКонфигурации.Расширения.Добавлено);
|
||||
Сообщения.Добавить(ТекстСообщенияРасширения);
|
||||
КонецЕсли;
|
||||
|
||||
Если ДинамическиеИзмененияКонфигурации.Расширения.Удалено > 0 Тогда
|
||||
ТекстСообщенияРасширения = НСтр("ru = 'Удалены расширения: %1.'");
|
||||
ТекстСообщенияРасширения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщенияРасширения,
|
||||
ДинамическиеИзмененияКонфигурации.Расширения.Удалено);
|
||||
Сообщения.Добавить(ТекстСообщенияРасширения);
|
||||
КонецЕсли;
|
||||
|
||||
Если ДинамическиеИзмененияКонфигурации.Расширения.Изменено > 0 Тогда
|
||||
ТекстСообщенияРасширения = НСтр("ru = 'Изменены расширения: %1.'");
|
||||
ТекстСообщенияРасширения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщенияРасширения,
|
||||
ДинамическиеИзмененияКонфигурации.Расширения.Изменено);
|
||||
Сообщения.Добавить(ТекстСообщенияРасширения);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Сообщения.Добавить(НСтр("ru = 'Для того чтобы применить, рекомендуется перезапустить программу и продолжить работу.'"));
|
||||
Сообщения.Добавить(" ");
|
||||
|
||||
Возврат СтрСоединить(Сообщения, Символы.ПС);
|
||||
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики событий подсистем конфигурации.
|
||||
|
||||
@@ -1445,7 +1521,16 @@
|
||||
Дело.Важное = Истина;
|
||||
Дело.Представление = НСтр("ru = 'Скорость работы снижена'");
|
||||
Дело.Форма = "Обработка.РекомендацияПоПовышениюСкоростиРаботы.Форма.Форма";
|
||||
Дело.Владелец = НСтр("ru = 'Скорость работы программы'");
|
||||
Дело.Владелец = НСтр("ru = 'Работа программы'");
|
||||
|
||||
Идентификатор = "КонтрольДинамическогоОбновленияПрограммы";
|
||||
Дело = ТекущиеДела.Добавить();
|
||||
Дело.Идентификатор = Идентификатор;
|
||||
Дело.ЕстьДела = КонфигурацияБазыДанныхИзмененаДинамически() Или Справочники.ВерсииРасширений.РасширенияИзмененыДинамически();
|
||||
Дело.Важное = Ложь;
|
||||
Дело.Представление = НСтр("ru = 'Установлено обновление программы'");
|
||||
Дело.Форма = "ОбщаяФорма.КонтрольДинамическогоОбновления";
|
||||
Дело.Владелец = НСтр("ru = 'Работа программы'");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -640,28 +640,6 @@
|
||||
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
ДвоичныеДанный = Новый ДвоичныеДанные(ПолноеИмяФайла);
|
||||
ЧтениеДанных = Новый ЧтениеДанных(ДвоичныеДанный);
|
||||
|
||||
ЗаписьДанных = Новый ЗаписьДанных(ПолноеИмяФайла);
|
||||
ЗаписьДанных.ЗаписатьБайт(ЧтениеДанных.ПрочитатьБайт());
|
||||
ЗаписьДанных.ЗаписатьБайт(ЧтениеДанных.ПрочитатьБайт());
|
||||
ЗаписьДанных.ЗаписатьБайт(ЧтениеДанных.ПрочитатьБайт());
|
||||
ЗаписьДанных.ЗаписатьБайт(ЧтениеДанных.ПрочитатьБайт());
|
||||
ЗаписьДанных.ЗаписатьБайт(ЧтениеДанных.ПрочитатьБайт());
|
||||
ЗаписьДанных.ЗаписатьБайт(0);
|
||||
ЗаписьДанных.ЗаписатьБайт(6);
|
||||
ЗаписьДанных.ЗаписатьБайт(0);
|
||||
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
|
||||
РезультатЧтенияДанных = ЧтениеДанных.Прочитать();
|
||||
|
||||
ЗаписьДанных.Записать(РезультатЧтенияДанных.ПолучитьДвоичныеДанные());
|
||||
ЗаписьДанных.Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СобратьФайлДокументаDOCX(ПечатнаяФорма)
|
||||
@@ -1434,6 +1412,7 @@
|
||||
Функция ИнициализироватьЗаписьXML(КорневойТэг, ПутьКФайлу = "", Кодировка = "UTF-8", ЗаписатьОбъявление = Истина)
|
||||
|
||||
ЗаписьXML = Новый ЗаписьXML;
|
||||
ЗаписьXML.Отступ = Ложь;
|
||||
Если ПустаяСтрока(ПутьКФайлу) Тогда
|
||||
ЗаписьXML.УстановитьСтроку(Кодировка);
|
||||
Иначе
|
||||
|
||||
@@ -806,9 +806,9 @@
|
||||
|ИЗ
|
||||
| НаборыСвойств КАК НаборыСвойств
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК СвойстваНаборов
|
||||
| ПО (СвойстваНаборов.Ссылка = НаборыСвойств.Набор)
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства
|
||||
| ПО (СвойстваНаборов.Свойство = Свойства.Ссылка)
|
||||
| ПО (СвойстваНаборов.Ссылка = НаборыСвойств.Набор)
|
||||
|ГДЕ
|
||||
| НЕ СвойстваНаборов.ПометкаУдаления
|
||||
| И НЕ Свойства.ПометкаУдаления
|
||||
|
||||
@@ -993,25 +993,41 @@
|
||||
ЭтоCMS = ТипЗнч(ИсходныеДанныеДляПроверки) = Тип("Структура")
|
||||
И ИсходныеДанныеДляПроверки.Свойство("ПараметрыCMS");
|
||||
|
||||
Если ТипЗнч(Подпись) = Тип("Строка") И ЭтоАдресВременногоХранилища(Подпись) Тогда
|
||||
ПодписьДляПроверки = ПолучитьИзВременногоХранилища(Подпись);
|
||||
Иначе
|
||||
ПодписьДляПроверки = Подпись;
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерКриптографииДляПроверки = МенеджерКриптографии;
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
|
||||
ИспользоватьЭлектроннуюПодписьВМоделиСервиса = Не ЭтоXMLDSig И Не ЭтоCMS
|
||||
И ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
|
||||
|
||||
МенеджерКриптографииДляПроверки = МенеджерКриптографии("ПроверкаПодписи",
|
||||
ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса, ОписаниеОшибки);
|
||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.ПоказатьОшибку = ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса;
|
||||
Если ТипЗнч(ПодписьДляПроверки) = Тип("ДвоичныеДанные") Тогда
|
||||
ПараметрыСоздания.АлгоритмПодписи =
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(ПодписьДляПроверки);
|
||||
ИначеЕсли ЭтоXMLDSig Тогда
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(
|
||||
ИсходныеДанныеДляПроверки.КонвертSOAP, Ложь);
|
||||
ПараметрыСоздания.АлгоритмПодписи =
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
|
||||
КонецЕсли;
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено
|
||||
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
|
||||
МенеджерКриптографииДляПроверки = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(
|
||||
"ПроверкаПодписи", ПараметрыСоздания);
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
|
||||
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
|
||||
|
||||
Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПодписьДляПроверки = Подпись;
|
||||
Если ТипЗнч(Подпись) = Тип("Строка") И ЭтоАдресВременногоХранилища(Подпись) Тогда
|
||||
ПодписьДляПроверки = ПолучитьИзВременногоХранилища(Подпись);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоXMLDSig Тогда
|
||||
@@ -1127,19 +1143,6 @@
|
||||
ВызыватьИсключение = ОписаниеОшибки = Null;
|
||||
МенеджерКриптографииДляПроверки = МенеджерКриптографии;
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
|
||||
ИспользоватьЭлектроннуюПодписьВМоделиСервиса =
|
||||
ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
|
||||
|
||||
МенеджерКриптографииДляПроверки = МенеджерКриптографии("ПроверкаСертификата",
|
||||
ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса, ОписаниеОшибки);
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено
|
||||
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
СертификатДляПроверки = Сертификат;
|
||||
|
||||
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
|
||||
@@ -1153,6 +1156,29 @@
|
||||
ДанныеСертификата = СертификатДляПроверки.Выгрузить();
|
||||
КонецЕсли;
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
|
||||
ИспользоватьЭлектроннуюПодписьВМоделиСервиса =
|
||||
ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
|
||||
|
||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.ПоказатьОшибку = ВызыватьИсключение И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса;
|
||||
Если ТипЗнч(ДанныеСертификата) = Тип("ДвоичныеДанные") Тогда
|
||||
ПараметрыСоздания.АлгоритмПодписи =
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата);
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерКриптографииДляПроверки = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(
|
||||
"ПроверкаСертификата", ПараметрыСоздания);
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено Тогда
|
||||
ОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
|
||||
|
||||
Если Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
РежимыПроверкиСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата(
|
||||
ЗначениеЗаполнено(НаДату));
|
||||
|
||||
|
||||
@@ -1277,12 +1277,12 @@
|
||||
Контекст.Вставить("ДляШифрования", ДляШифрования);
|
||||
Контекст.Вставить("ДополнительныеПараметры", ?(ДополнительныеПараметры = Неопределено,
|
||||
ПараметрыЗаписиСертификата(), ДополнительныеПараметры));
|
||||
Контекст.Вставить("ЗаголовокОшибки", ?(Контекст.ДляШифрования = Истина,
|
||||
НСтр("ru = 'Не удалось пройти проверку шифрования по причине:'"),
|
||||
НСтр("ru = 'Не удалось пройти проверку подписания по причине:'")));
|
||||
Контекст.Вставить("ЗаголовокФормы", ?(Контекст.ДляШифрования = Истина,
|
||||
НСтр("ru = 'Проверка шифрования и расшифровки'"),
|
||||
НСтр("ru = 'Проверка установки электронной подписи'")));
|
||||
НСтр("ru = 'Не удалось проверить шифрование и расшифровку'"),
|
||||
НСтр("ru = 'Не удалось проверить установку электронной подписи'")));
|
||||
Контекст.Вставить("ЗаголовокОшибкиПрограммы",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаголовокОшибкиДобавленияСертификата(
|
||||
?(Контекст.ДляШифрования = Истина, "Шифрование", "Подписание")));
|
||||
|
||||
Контекст.Вставить("ДанныеСертификата", Сертификат);
|
||||
Контекст.Вставить("АлгоритмПодписи",
|
||||
@@ -1296,9 +1296,6 @@
|
||||
|
||||
Если ОбщиеНастройки().ПроверятьЭлектронныеПодписиНаСервере Тогда
|
||||
|
||||
Контекст.Вставить("ОшибкаНаСервере",
|
||||
Новый Структура("ОписаниеОшибки, Ошибки", "", Новый Массив));
|
||||
|
||||
СсылкаНаСертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаписатьСертификатПослеПроверки(Контекст);
|
||||
Если СсылкаНаСертификат <> Неопределено Тогда
|
||||
ВыполнитьОбработкуОповещения(ОбработчикЗавершения, СсылкаНаСертификат);
|
||||
|
||||
@@ -366,20 +366,7 @@
|
||||
// * ПоказатьОшибку - Булево - если Истина, тогда будет вызвано исключение, содержащее описание ошибки.
|
||||
//
|
||||
// * ОписаниеОшибки - Строка - возвращаемое описание ошибки, когда функция возвратила значение Неопределено.
|
||||
// - Структура - содержит ошибки обращения к программам, если возвращено Неопределено.
|
||||
// ** ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
|
||||
// ** ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции.
|
||||
// ** ИмяКомпьютера - Строка - имя компьютера при получении менеджера криптографии.
|
||||
// ** Описание - Строка - описание общей ошибки.
|
||||
// ** Общая - Булево - если Истина, то содержит описание ошибки для всех программ,
|
||||
// иначе альтернативное описание массиву Ошибки.
|
||||
// ** КАдминистратору - Булево - для исправления общей ошибки требуются права администратора.
|
||||
// ** Ошибки - Массив - содержит структуры описания ошибок программ со свойствами:
|
||||
// *** Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования.
|
||||
// *** Описание - Строка - содержит представление ошибки.
|
||||
// *** ИзИсключения - Булево - описание содержит краткое представление информации об ошибке.
|
||||
// *** НеУказанПуть - Булево - описание содержит ошибку о неуказанном пути для ОС Linux.
|
||||
// *** КАдминистратору - Булево - для исправления ошибки требуются права администратора.
|
||||
// - Структура - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок
|
||||
//
|
||||
// * Программа - Неопределено - возвращает менеджер криптографии первой
|
||||
// программы из справочника для которой удалось его создать.
|
||||
@@ -422,9 +409,8 @@
|
||||
АлгоритмПодписи = ПараметрыСозданияМенеджераКриптографии.АлгоритмПодписи;
|
||||
|
||||
ИмяКомпьютера = ИмяКомпьютера();
|
||||
|
||||
Ошибки = Новый Массив;
|
||||
Менеджер = НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера, АлгоритмПодписи);
|
||||
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок(ИмяКомпьютера);
|
||||
Менеджер = НовыйМенеджерКриптографии(Программа, ОписаниеОшибок.Ошибки, ИмяКомпьютера, АлгоритмПодписи);
|
||||
|
||||
Если Менеджер <> Неопределено Тогда
|
||||
Возврат Менеджер;
|
||||
@@ -462,43 +448,23 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗаголовокОшибки = СтрЗаменить(ЗаголовокОшибки, "%1", ИмяКомпьютера);
|
||||
ОписаниеОшибок.ЗаголовокОшибки = ЗаголовокОшибки;
|
||||
|
||||
СвойстваОшибки = Новый Структура;
|
||||
СвойстваОшибки.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
|
||||
СвойстваОшибки.Вставить("ИмяКомпьютера", ИмяКомпьютера);
|
||||
СвойстваОшибки.Вставить("КАдминистратору", Истина);
|
||||
СвойстваОшибки.Вставить("Общая", Ложь);
|
||||
СвойстваОшибки.Вставить("Ошибки", Ошибки);
|
||||
|
||||
Если Ошибки.Количество() = 0 Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не предусмотрено использование ни одной программы.'");
|
||||
СвойстваОшибки.Общая = Истина;
|
||||
СвойстваОшибки.Вставить("Инструкция", Истина);
|
||||
СвойстваОшибки.Вставить("НастройкаПрограмм", Истина);
|
||||
|
||||
ИначеЕсли Программа <> Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программа ""%1"" не доступна или не установлена.'"), Программа);
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Ни одна из программ не доступна или не установлена.'");
|
||||
КонецЕсли;
|
||||
СвойстваОшибки.Вставить("Описание", ТекстОшибки);
|
||||
|
||||
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
|
||||
+ НСтр("ru = 'Обратитесь к администратору.'");
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваОшибки.Вставить("ОписаниеОшибки", ЗаголовокОшибки + Символы.ПС + ТекстОшибки);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииЗаполнитьПредставлениеОшибок(
|
||||
ОписаниеОшибок,
|
||||
Программа,
|
||||
АлгоритмПодписи,
|
||||
Пользователи.ЭтоПолноправныйПользователь(,, Ложь),
|
||||
Истина);
|
||||
|
||||
Если ТипЗнч(ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки) = Тип("Структура") Тогда
|
||||
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = СвойстваОшибки;
|
||||
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = ОписаниеОшибок;
|
||||
Иначе
|
||||
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = СвойстваОшибки.ОписаниеОшибки;
|
||||
ПараметрыСозданияМенеджераКриптографии.ОписаниеОшибки = ОписаниеОшибок.ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПоказатьОшибку Тогда
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
ВызватьИсключение ОписаниеОшибок.ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
@@ -572,12 +538,12 @@
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сертификат не найден на сервере по причине:
|
||||
НСтр("ru = 'Сертификат не установлен на сервере по причине:
|
||||
|%1'")
|
||||
+ Символы.ПС,
|
||||
ПредставлениеОшибки);
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Сертификат не найден на сервере.'");
|
||||
ТекстОшибки = НСтр("ru = 'Сертификат не установлен на сервере.'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
|
||||
@@ -892,30 +858,49 @@
|
||||
//
|
||||
Функция ЗаписатьСертификатПослеПроверки(Контекст) Экспорт
|
||||
|
||||
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
|
||||
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
|
||||
|
||||
МенеджерКриптографии = МенеджерКриптографии("", ПараметрыСоздания);
|
||||
|
||||
Контекст.Вставить("ОшибкаНаСервере",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок());
|
||||
|
||||
ЗаголовокОшибкиПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаголовокОшибкиДобавленияСертификата(
|
||||
?(Контекст.ДляШифрования = Истина, "Шифрование", "Подписание"), ИмяКомпьютера());
|
||||
|
||||
Если ТипЗнч(МенеджерКриптографии) <> Тип("МенеджерКриптографии")
|
||||
И ПараметрыСоздания.ОписаниеОшибки.Общая Тогда
|
||||
|
||||
Контекст.ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
|
||||
Контекст.ОшибкаНаСервере.ЗаголовокОшибки = ЗаголовокОшибкиПрограммы;
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ОписанияПрограмм = ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм;
|
||||
СертификатКриптографии = Новый СертификатКриптографии(Контекст.ДанныеСертификата);
|
||||
|
||||
Контекст.Вставить("АлгоритмПодписи",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Контекст.ДанныеСертификата));
|
||||
|
||||
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
|
||||
Неопределено, Новый Массив, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм,
|
||||
Контекст.АлгоритмПодписи);
|
||||
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(,, Ложь);
|
||||
|
||||
Сертификат = Неопределено;
|
||||
ОписаниеОшибки = "";
|
||||
Для каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
|
||||
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.Программа = ОписаниеПрограммы.Ссылка;
|
||||
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
|
||||
ПараметрыСоздания.АлгоритмПодписи = Контекст.АлгоритмПодписи;
|
||||
|
||||
МенеджерКриптографии = МенеджерКриптографии("", ПараметрыСоздания);
|
||||
|
||||
ОшибкаМенеджера = ПараметрыСоздания.ОписаниеОшибки;
|
||||
Если МенеджерКриптографии = Неопределено Тогда
|
||||
Ошибки = ПараметрыСоздания.ОписаниеОшибки.Ошибки;
|
||||
|
||||
Если ОшибкаМенеджера.Ошибки.Количество() > 0 Тогда
|
||||
Контекст.ОшибкаНаСервере.Ошибки.Добавить(ОшибкаМенеджера.Ошибки[0]);
|
||||
Если Ошибки.Количество() > 0
|
||||
И Не (ЗначениеЗаполнено(Контекст.АлгоритмПодписи)
|
||||
И Ошибки[0].НетАлгоритма) Тогда
|
||||
|
||||
Ошибки[0].ЗаголовокОшибки = ЗаголовокОшибкиПрограммы;
|
||||
Контекст.ОшибкаНаСервере.Ошибки.Добавить(Ошибки[0]);
|
||||
КонецЕсли;
|
||||
|
||||
Продолжить;
|
||||
@@ -926,31 +911,19 @@
|
||||
|
||||
Если Контекст.ДляШифрования = Истина Тогда
|
||||
Успех = ПроверитьШифрованиеИРасшифровку(МенеджерКриптографии, Контекст.ДанныеСертификата,
|
||||
СертификатКриптографии, ОписаниеПрограммы, Контекст.ОшибкаНаСервере, Контекст.ОшибкаНаСервере.ОписаниеОшибки);
|
||||
СертификатКриптографии, ОписаниеПрограммы, Контекст.ОшибкаНаСервере, ЭтоПолноправныйПользователь);
|
||||
Иначе
|
||||
Успех = ПроверитьПодписание(МенеджерКриптографии, Контекст.ДанныеСертификата,
|
||||
СертификатКриптографии, ОписаниеПрограммы, Контекст.ОшибкаНаСервере, Контекст.ОшибкаНаСервере.ОписаниеОшибки);
|
||||
СертификатКриптографии, ОписаниеПрограммы, Контекст.ОшибкаНаСервере, ЭтоПолноправныйПользователь);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Успех Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.ДополнительныеПараметры.Программа = ОписаниеПрограммы.Ссылка;
|
||||
|
||||
Попытка
|
||||
Возврат ЭлектроннаяПодпись.ЗаписатьСертификатВСправочник(
|
||||
Контекст.ДанныеСертификата, Контекст.ДополнительныеПараметры);
|
||||
Исключение
|
||||
|
||||
Контекст.ЗаголовокФормы = НСтр("ru = 'Ошибка добавления сертификата'");
|
||||
Контекст.ЗаголовокОшибки = НСтр("ru = 'Не удалось добавить сертификат по причине:'");
|
||||
Контекст.ОшибкаНаСервере.Ошибки = Новый Массив;
|
||||
Контекст.ОшибкаНаСервере.ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецПопытки;
|
||||
Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы);
|
||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаписатьСертификатВСправочник(Контекст,
|
||||
Контекст.ОшибкаНаСервере);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
@@ -1153,6 +1126,7 @@
|
||||
|
||||
ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.АлгоритмПодписи = АлгоритмПодписи;
|
||||
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
|
||||
|
||||
МенеджерКриптографии("ПолучениеСертификатов", ПараметрыСоздания);
|
||||
Форма.МенеджерКриптографииНаСервереОписаниеОшибки = ПараметрыСоздания.ОписаниеОшибки;
|
||||
@@ -1527,7 +1501,7 @@
|
||||
СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии);
|
||||
ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь;
|
||||
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертSOAP, "wsse:BinarySecurityToken");
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(КонвертSOAP);
|
||||
|
||||
ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, СертификатКриптографииBase64, ДанныеАлгоритмаПодписания);
|
||||
|
||||
@@ -2218,7 +2192,7 @@
|
||||
Функция НовыйМенеджерКриптографии(Программа, Ошибки, ИмяКомпьютера, АлгоритмПодписи = "")
|
||||
|
||||
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
|
||||
Программа, Ошибки, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм, АлгоритмПодписи);
|
||||
Программа, Ошибки, ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм);
|
||||
|
||||
Если ОписанияПрограмм = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
@@ -2233,7 +2207,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер = Неопределено;
|
||||
Для каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
|
||||
СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы(
|
||||
ОписаниеПрограммы, ЭтоLinux, Ошибки, Истина, ПутиКПрограммамНаСерверахLinux);
|
||||
@@ -2274,6 +2248,17 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(АлгоритмПодписи) Тогда
|
||||
АлгоритмПодписиПоддерживается =
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмПодписиПоддерживается(ОписаниеПрограммы,
|
||||
ИнформацияМодуля.АлгоритмыПодписи, АлгоритмПодписи, Ошибки, Истина, Программа <> Неопределено);
|
||||
|
||||
Если Не АлгоритмПодписиПоддерживается Тогда
|
||||
Менеджер = Неопределено;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Менеджер = Новый МенеджерКриптографии(
|
||||
СвойстваПрограммы.ИмяПрограммы,
|
||||
@@ -2382,7 +2367,7 @@
|
||||
// Для процедуры ЗаписатьСертификатПослеПроверки.
|
||||
|
||||
Функция ПроверитьШифрованиеИРасшифровку(МенеджерКриптографии, ДвоичныеДанныеСертификата,
|
||||
СертификатКриптографии, ОписаниеПрограммы, ОшибкаНаСервере, ОписаниеОшибки)
|
||||
СертификатКриптографии, ОписаниеПрограммы, ОшибкаНаСервере, ЭтоПолноправныйПользователь)
|
||||
|
||||
ПредставлениеОшибки = "";
|
||||
Попытка
|
||||
@@ -2393,27 +2378,19 @@
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку шифрования по причине:
|
||||
|%2'"),
|
||||
ОписаниеПрограммы.Наименование,
|
||||
ПредставлениеОшибки);
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
|
||||
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
ОшибкаНаСервере,
|
||||
ОписаниеПрограммы,
|
||||
"Шифрование",
|
||||
ПредставлениеОшибки,
|
||||
ЭтоПолноправныйПользователь,
|
||||
Ложь,
|
||||
ИмяКомпьютера());
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИнформацияОбОшибке = Неопределено;
|
||||
ПредставлениеОшибки = "";
|
||||
Попытка
|
||||
РасшифрованныеДанные = МенеджерКриптографии.Расшифровать(ЗашифрованныеДанные);
|
||||
@@ -2424,25 +2401,16 @@
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку расшифровки по причине:
|
||||
|%2'"),
|
||||
ОписаниеПрограммы.Наименование,
|
||||
ПредставлениеОшибки);
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
|
||||
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
ОшибкаНаСервере,
|
||||
ОписаниеПрограммы,
|
||||
"Расшифровка",
|
||||
ПредставлениеОшибки,
|
||||
ЭтоПолноправныйПользователь,
|
||||
ИнформацияОбОшибке = Неопределено,
|
||||
ИмяКомпьютера());
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
@@ -2450,7 +2418,7 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПроверитьПодписание(МенеджерКриптографии, ДвоичныеДанныеСертификата,
|
||||
СертификатКриптографии, ОписаниеПрограммы, ОшибкаНаСервере, ОписаниеОшибки)
|
||||
СертификатКриптографии, ОписаниеПрограммы, ОшибкаНаСервере, ЭтоПолноправныйПользователь)
|
||||
|
||||
ИнформацияОбОшибке = Неопределено;
|
||||
ПредставлениеОшибки = "";
|
||||
@@ -2463,27 +2431,16 @@
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку подписания по причине:
|
||||
|%2'"),
|
||||
ОписаниеПрограммы.Наименование,
|
||||
ПредставлениеОшибки);
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
Если ИнформацияОбОшибке = Неопределено Тогда
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ОшибкаНаСервере.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
ОшибкаНаСервере,
|
||||
ОписаниеПрограммы,
|
||||
"Подписание",
|
||||
ПредставлениеОшибки,
|
||||
ЭтоПолноправныйПользователь,
|
||||
ИнформацияОбОшибке = Неопределено,
|
||||
ИмяКомпьютера());
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
|
||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
||||
ПараметрыСоздания.Программа = Параметры.СертификатПрограмма;
|
||||
ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
|
||||
|
||||
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(Параметры.Операция, ПараметрыСоздания);
|
||||
|
||||
@@ -408,11 +409,13 @@
|
||||
ОписанияПрограмм = Новый Массив;
|
||||
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы);
|
||||
|
||||
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
|
||||
ПараметрыВыполнения.Вставить("Индекс", -1);
|
||||
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
|
||||
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
|
||||
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
|
||||
ПараметрыВыполнения.Вставить("ЭтоLinux", ОбщегоНазначения.ЭтоLinuxСервер());
|
||||
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
|
||||
|
||||
@@ -428,7 +431,7 @@
|
||||
СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы(
|
||||
Контекст.ОписаниеПрограммы,
|
||||
Контекст.ЭтоLinux,
|
||||
Контекст.СвойстваОшибки.Ошибки,
|
||||
Контекст.ОписаниеОшибок.Ошибки,
|
||||
Ложь,
|
||||
ЭлектроннаяПодпись.ПерсональныеНастройки().ПутиКПрограммамЭлектроннойПодписиИШифрования);
|
||||
|
||||
@@ -443,10 +446,10 @@
|
||||
СвойстваПрограммы.ПутьКПрограмме,
|
||||
СвойстваПрограммы.ТипПрограммы);
|
||||
Исключение
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.СвойстваОшибки.Ошибки,
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.ОписаниеОшибок.Ошибки,
|
||||
Неопределено, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
|
||||
Истина, Истина, Истина);
|
||||
ТекстОшибки = НСтр("ru = 'Не установлена на сервере.'") + " " + Контекст.СвойстваОшибки.Ошибки[0].Описание;
|
||||
ТекстОшибки = НСтр("ru = 'Не установлена на сервере.'") + " " + Контекст.ОписаниеОшибок.Ошибки[0].Описание;
|
||||
ОбновитьЗначение(Контекст.ОписаниеПрограммы.РезультатПроверкиНаСервере, ТекстОшибки);
|
||||
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
|
||||
Возврат;
|
||||
@@ -465,7 +468,7 @@
|
||||
ИмяПрограммыПолученное = ИнформацияМодуля.Имя;
|
||||
|
||||
ИмяПрограммыСовпадает = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииИмяПрограммыСовпадает(
|
||||
Контекст.ОписаниеПрограммы, ИмяПрограммыПолученное, Контекст.СвойстваОшибки.Ошибки, Истина);
|
||||
Контекст.ОписаниеПрограммы, ИмяПрограммыПолученное, Контекст.ОписаниеОшибок.Ошибки, Истина);
|
||||
|
||||
Если Не ИмяПрограммыСовпадает Тогда
|
||||
Менеджер = Неопределено;
|
||||
@@ -480,7 +483,7 @@
|
||||
СвойстваПрограммы.ПутьКПрограмме,
|
||||
СвойстваПрограммы.ТипПрограммы);
|
||||
Исключение
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.СвойстваОшибки.Ошибки,
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.ОписаниеОшибок.Ошибки,
|
||||
Неопределено, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
|
||||
Истина, Истина, Истина);
|
||||
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
|
||||
@@ -488,7 +491,7 @@
|
||||
КонецПопытки;
|
||||
|
||||
АлгоритмыУстановлены = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмыУстановлены(
|
||||
Контекст.ОписаниеПрограммы, Менеджер, Контекст.СвойстваОшибки.Ошибки);
|
||||
Контекст.ОписаниеПрограммы, Менеджер, Контекст.ОписаниеОшибок.Ошибки);
|
||||
|
||||
Если Не АлгоритмыУстановлены Тогда
|
||||
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
|
||||
@@ -639,7 +642,9 @@
|
||||
ТекстСостояния.Записать(ВременныеФайлы[0]);
|
||||
АрхивИнформации.Добавить(ВременныеФайлы[0]);
|
||||
|
||||
АдресАрхива = ПоместитьВоВременноеХранилище(АрхивИнформации.ПолучитьДвоичныеДанные());
|
||||
АдресАрхива = ПоместитьВоВременноеХранилище(АрхивИнформации.ПолучитьДвоичныеДанные(),
|
||||
Новый УникальныйИдентификатор);
|
||||
|
||||
Для Каждого ВременныйФайл Из ВременныеФайлы Цикл
|
||||
ФайловаяСистема.УдалитьВременныйФайл(ВременныйФайл);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -138,19 +138,20 @@
|
||||
ОписанияПрограмм = Новый Массив;
|
||||
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы);
|
||||
|
||||
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
|
||||
ПараметрыВыполнения.Вставить("Индекс", -1);
|
||||
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
|
||||
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
|
||||
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
|
||||
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
|
||||
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
|
||||
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
|
||||
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
||||
"НайтиУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст));
|
||||
|
||||
Контекст.Вставить("ПараметрыВыполнения",
|
||||
Новый Структура("СвойстваОшибки", ПараметрыВыполнения.СвойстваОшибки));
|
||||
Контекст.Вставить("ПараметрыВыполнения", Новый Структура("ОписаниеОшибок", ОписаниеОшибок));
|
||||
|
||||
СоздатьМенеджерКриптографииЦиклНачало(ПараметрыВыполнения);
|
||||
|
||||
@@ -160,7 +161,7 @@
|
||||
Процедура НайтиУстановленныеПрограммыЦиклПродолжение(Менеджер, Контекст) Экспорт
|
||||
|
||||
ОписаниеПрограммы = Контекст.ОписаниеПрограммы;
|
||||
Ошибки = Контекст.ПараметрыВыполнения.СвойстваОшибки.Ошибки;
|
||||
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки;
|
||||
|
||||
Если Менеджер <> Неопределено Тогда
|
||||
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверкиНаКлиенте, "");
|
||||
@@ -572,11 +573,11 @@
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сертификат не найден на компьютере по причине:
|
||||
НСтр("ru = 'Сертификат не установлен на компьютере по причине:
|
||||
|%1'"),
|
||||
ПредставлениеОшибки);
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Сертификат не найден на компьютере.'");
|
||||
ТекстОшибки = НСтр("ru = 'Сертификат не установлен на компьютере.'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Контекст.ПоказатьОшибку = Неопределено Тогда
|
||||
@@ -677,11 +678,32 @@
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
Контекст.Вставить("ИсходныеДанные", ИсходныеДанные);
|
||||
Контекст.Вставить("Подпись", Подпись);
|
||||
Контекст.Вставить("АдресПодписи", "");
|
||||
Контекст.Вставить("НаДату", НаДату);
|
||||
Контекст.Вставить("ПроверятьНаСервере",
|
||||
ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере());
|
||||
|
||||
Если ТипЗнч(Контекст.Подпись) = Тип("Строка")
|
||||
И ЭтоАдресВременногоХранилища(Контекст.Подпись) Тогда
|
||||
|
||||
Контекст.АдресПодписи = Контекст.Подпись;
|
||||
Контекст.Подпись = ПолучитьИзВременногоХранилища(Подпись);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Контекст.Подпись) = Тип("ДвоичныеДанные") Тогда
|
||||
Контекст.Вставить("АлгоритмПодписи",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись));
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Контекст.Подпись));
|
||||
|
||||
ИначеЕсли ТипЗнч(ИсходныеДанные) = Тип("Структура")
|
||||
И ИсходныеДанные.Свойство("ПараметрыXMLDSig") Тогда // ЭтоXMLDSig.
|
||||
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(
|
||||
ИсходныеДанные.КонвертSOAP, Ложь);
|
||||
Контекст.Вставить("АлгоритмПодписи",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата));
|
||||
Иначе
|
||||
Контекст.Вставить("АлгоритмПодписи", "");
|
||||
КонецЕсли;
|
||||
|
||||
Если МенеджерКриптографии = Неопределено Тогда
|
||||
|
||||
@@ -760,23 +782,24 @@
|
||||
И ЭтоАдресВременногоХранилища(Контекст.ИсходныеДанные) Тогда
|
||||
|
||||
АдресИсходныхДанных = Контекст.ИсходныеДанные;
|
||||
Иначе
|
||||
Если ТипЗнч(Контекст.ИсходныеДанные) = Тип("Структура")
|
||||
И Контекст.ИсходныеДанные.Свойство("ПараметрыCMS") Тогда
|
||||
|
||||
ИначеЕсли ТипЗнч(Контекст.ИсходныеДанные) = Тип("ДвоичныеДанные") Тогда
|
||||
Контекст.ИсходныеДанные.ПараметрыCMS.ВключениеСертификатовВПодпись =
|
||||
ВключениеСертификатовВПодписьСтрокой(
|
||||
Контекст.ИсходныеДанные.ПараметрыCMS.ВключениеСертификатовВПодпись);
|
||||
КонецЕсли;
|
||||
АдресИсходныхДанных = ПоместитьВоВременноеХранилище(Контекст.ИсходныеДанные);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Контекст.Подпись) = Тип("Строка")
|
||||
И ЭтоАдресВременногоХранилища(Контекст.Подпись) Тогда
|
||||
|
||||
АдресПодписи = Контекст.Подпись;
|
||||
|
||||
ИначеЕсли ТипЗнч(Контекст.Подпись) = Тип("ДвоичныеДанные") Тогда
|
||||
АдресПодписи = ПоместитьВоВременноеХранилище(Контекст.Подпись);
|
||||
Если Не ЗначениеЗаполнено(Контекст.АдресПодписи) Тогда
|
||||
Контекст.АдресПодписи = ПоместитьВоВременноеХранилище(Контекст.Подпись);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибки = "";
|
||||
Результат = ЭлектроннаяПодписьСлужебныйВызовСервера.ПроверитьПодпись(
|
||||
АдресИсходныхДанных, АдресПодписи, ОписаниеОшибки);
|
||||
АдресИсходныхДанных, Контекст.АдресПодписи, ОписаниеОшибки);
|
||||
|
||||
Если Результат <> Истина Тогда
|
||||
Результат = ОписаниеОшибки;
|
||||
@@ -791,13 +814,7 @@
|
||||
// Продолжение процедуры ПроверитьПодпись.
|
||||
Процедура ПроверитьПодписьНаКлиенте(Контекст)
|
||||
|
||||
Подпись = Контекст.Подпись;
|
||||
|
||||
Если ТипЗнч(Подпись) = Тип("Строка") И ЭтоАдресВременногоХранилища(Подпись) Тогда
|
||||
Подпись = ПолучитьИзВременногоХранилища(Подпись);
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.Вставить("ДанныеПодписи", Подпись);
|
||||
Контекст.Вставить("ДанныеПодписи", Контекст.Подпись);
|
||||
|
||||
ЭтоXMLDSig = (ТипЗнч(Контекст) = Тип("Структура")
|
||||
И ТипЗнч(Контекст.ИсходныеДанные) = Тип("Структура")
|
||||
@@ -1012,7 +1029,7 @@
|
||||
Процедура ПроверитьСертификатПослеОпределенияАлгоритмаПодписания(ДанныеСертификата, Контекст) Экспорт
|
||||
|
||||
Контекст.Вставить("АлгоритмПодписи",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(Контекст.Сертификат));
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(ДанныеСертификата));
|
||||
|
||||
ПродолжитьПроверкуСертификатаНаКлиенте(Контекст);
|
||||
|
||||
@@ -1236,25 +1253,14 @@
|
||||
// Оповещение - ОписаниеОповещения - оповещение о результате выполнения следующих типов:
|
||||
// МенеджерКриптографии - инициализированный менеджер криптографии.
|
||||
// Строка - описание ошибки при создании менеджера криптографии.
|
||||
// Структура - если ПоказатьОшибку = Неопределено. Содержит ошибки обращения к программам.
|
||||
// * ОписаниеОшибки - Строка - описание ошибки, когда оно возвращается строкой.
|
||||
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции.
|
||||
// * Описание - Строка - описание общей ошибки.
|
||||
// * Общая - Булево - если Истина, то содержит описание ошибки для всех программ,
|
||||
// иначе альтернативное описание массиву Ошибки.
|
||||
// * КАдминистратору - Булево - для исправления общей ошибки требуются права администратора.
|
||||
// * Ошибки - Массив - содержит структуры описания ошибок программ со свойствами:
|
||||
// * Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования.
|
||||
// * Описание - Строка - содержит представление ошибки.
|
||||
// * ИзИсключения - Булево - описание содержит краткое представление информации об ошибке.
|
||||
// * НеУказанПуть - Булево - описание содержит ошибку о неуказанном пути для ОС Linux.
|
||||
// * КАдминистратору - Булево - для исправления ошибки требуются права администратора.
|
||||
// Структура - см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок
|
||||
// если ПоказатьОшибку = Неопределено.
|
||||
//
|
||||
// Операция - Строка - если не пустая, то должна содержать одну из строк, которые определяют
|
||||
// операцию для вставки в описание ошибки: Подписание, ПроверкаПодписи, Шифрование,
|
||||
// Расшифровка, ПроверкаСертификата, ПолучениеСертификатов.
|
||||
// ПараметрыСозданияМенеджераКриптографии - см. ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии.
|
||||
|
||||
//
|
||||
Процедура СоздатьМенеджерКриптографии(Оповещение, Операция, ПараметрыСозданияМенеджераКриптографии = Неопределено) Экспорт
|
||||
|
||||
Если ПараметрыСозданияМенеджераКриптографии = Неопределено Тогда
|
||||
@@ -1313,46 +1319,42 @@
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось выполнить операцию по причине:'");
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваОшибки = Новый Структура;
|
||||
СвойстваОшибки.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
|
||||
СвойстваОшибки.Вставить("Общая", Ложь);
|
||||
СвойстваОшибки.Вставить("КАдминистратору", Ложь);
|
||||
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||
ОписаниеОшибок.ЗаголовокОшибки = ЗаголовокОшибки;
|
||||
|
||||
Если Не Подключено Тогда
|
||||
ТекстОшибки =
|
||||
НСтр("ru = 'В браузере требуется установить расширение
|
||||
|для работы с электронной подписью и шифрованием.'");
|
||||
|
||||
СвойстваОшибки.Вставить("Описание", ТекстОшибки);
|
||||
СвойстваОшибки.Вставить("Общая", Истина);
|
||||
СвойстваОшибки.Вставить("Ошибки", Новый Массив);
|
||||
СвойстваОшибки.Вставить("Расширение", Истина);
|
||||
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
|
||||
СвойстваОшибки.Описание = ТекстОшибки;
|
||||
СвойстваОшибки.НетРасширения = Истина;
|
||||
|
||||
ОписаниеОшибок.Общая = Истина;
|
||||
ОписаниеОшибок.Ошибки.Добавить(СвойстваОшибки);
|
||||
ОписаниеОшибок.ОписаниеОшибки = СокрЛП(ЗаголовокОшибки + Символы.ПС + ТекстОшибки);
|
||||
|
||||
СвойстваОшибки.Вставить("ОписаниеОшибки", СокрЛП(ЗаголовокОшибки + Символы.ПС + ТекстОшибки));
|
||||
Если Контекст.ПоказатьОшибку = Неопределено Тогда
|
||||
ОписаниеОшибки = СвойстваОшибки;
|
||||
ОписаниеОшибки = ОписаниеОшибок;
|
||||
Иначе
|
||||
ОписаниеОшибки = СвойстваОшибки.ОписаниеОшибки;
|
||||
ОписаниеОшибки = ОписаниеОшибок.ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Контекст.ПоказатьОшибку = Истина Тогда
|
||||
ПоказатьОшибкуОбращенияКПрограмме(
|
||||
ЗаголовокФормы, ЗаголовокОшибки, СвойстваОшибки, Новый Структура);
|
||||
ПоказатьОшибкуОбращенияКПрограмме(ЗаголовокФормы, "", ОписаниеОшибок, Новый Структура);
|
||||
КонецЕсли;
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОписаниеОшибки);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.Вставить("ЗаголовокФормы", ЗаголовокФормы);
|
||||
Контекст.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
|
||||
Контекст.Вставить("СвойстваОшибки", СвойстваОшибки);
|
||||
Контекст.Вставить("ОписаниеОшибок", ОписаниеОшибок);
|
||||
// Здесь проверяется что это Linux или macOS клиент.
|
||||
Контекст.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
|
||||
|
||||
СвойстваОшибки.Вставить("Ошибки", Новый Массив);
|
||||
|
||||
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
|
||||
Контекст.Программа, СвойстваОшибки.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм,
|
||||
Контекст.АлгоритмПодписи);
|
||||
Контекст.Программа, ОписаниеОшибок.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм);
|
||||
|
||||
Контекст.Вставить("Менеджер", Неопределено);
|
||||
|
||||
@@ -1383,7 +1385,7 @@
|
||||
СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы(
|
||||
Контекст.ОписаниеПрограммы,
|
||||
Контекст.ЭтоLinux,
|
||||
Контекст.СвойстваОшибки.Ошибки,
|
||||
Контекст.ОписаниеОшибок.Ошибки,
|
||||
Ложь,
|
||||
ЭлектроннаяПодписьКлиент.ПерсональныеНастройки().ПутиКПрограммамЭлектроннойПодписиИШифрования);
|
||||
|
||||
@@ -1415,7 +1417,7 @@
|
||||
|
||||
Если ИнформацияМодуля = Неопределено Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииПрограммаНеНайдена(
|
||||
Контекст.ОписаниеПрограммы, Контекст.СвойстваОшибки.Ошибки, Ложь);
|
||||
Контекст.ОписаниеПрограммы, Контекст.ОписаниеОшибок.Ошибки, Ложь);
|
||||
|
||||
Контекст.Менеджер = Неопределено;
|
||||
СоздатьМенеджерКриптографииЦиклНачало(Контекст);
|
||||
@@ -1426,7 +1428,7 @@
|
||||
ИмяПрограммыПолученное = ИнформацияМодуля.Имя;
|
||||
|
||||
ИмяПрограммыСовпадает = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииИмяПрограммыСовпадает(
|
||||
Контекст.ОписаниеПрограммы, ИмяПрограммыПолученное, Контекст.СвойстваОшибки.Ошибки, Ложь);
|
||||
Контекст.ОписаниеПрограммы, ИмяПрограммыПолученное, Контекст.ОписаниеОшибок.Ошибки, Ложь);
|
||||
|
||||
Если Не ИмяПрограммыСовпадает Тогда
|
||||
Контекст.Менеджер = Неопределено;
|
||||
@@ -1435,6 +1437,23 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.АлгоритмПодписи) Тогда
|
||||
АлгоритмПодписиПоддерживается =
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмПодписиПоддерживается(
|
||||
Контекст.ОписаниеПрограммы,
|
||||
ИнформацияМодуля.АлгоритмыПодписи,
|
||||
Контекст.АлгоритмПодписи,
|
||||
Контекст.ОписаниеОшибок.Ошибки,
|
||||
Ложь,
|
||||
Контекст.Программа <> Неопределено);
|
||||
|
||||
Если Не АлгоритмПодписиПоддерживается Тогда
|
||||
Контекст.Менеджер = Неопределено;
|
||||
СоздатьМенеджерКриптографииЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.Менеджер = Новый МенеджерКриптографии;
|
||||
|
||||
Если Не Контекст.ИнтерактивныйРежим
|
||||
@@ -1465,7 +1484,7 @@
|
||||
Контекст.Менеджер = Неопределено;
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(
|
||||
Контекст.СвойстваОшибки.Ошибки,
|
||||
Контекст.ОписаниеОшибок.Ошибки,
|
||||
Контекст.ОписаниеПрограммы.Ссылка,
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
Ложь, Истина, Истина);
|
||||
@@ -1480,7 +1499,7 @@
|
||||
АлгоритмыУстановлены = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмыУстановлены(
|
||||
Контекст.ОписаниеПрограммы,
|
||||
Контекст.Менеджер,
|
||||
Контекст.СвойстваОшибки.Ошибки);
|
||||
Контекст.ОписаниеОшибок.Ошибки);
|
||||
|
||||
Если Не АлгоритмыУстановлены Тогда
|
||||
СоздатьМенеджерКриптографииЦиклНачало(Контекст);
|
||||
@@ -1495,54 +1514,27 @@
|
||||
// Продолжение процедуры СоздатьМенеджерКриптографии.
|
||||
Процедура СоздатьМенеджерКриптографииПослеЦикла(Контекст)
|
||||
|
||||
Если Контекст.Менеджер <> Неопределено Или Не Контекст.Свойство("ЗаголовокОшибки") Тогда
|
||||
Если Контекст.Менеджер <> Неопределено Или Не Контекст.Свойство("ЗаголовокФормы") Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Менеджер);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваОшибки = Контекст.СвойстваОшибки;
|
||||
|
||||
Если СвойстваОшибки.Ошибки.Количество() = 0 Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не предусмотрено использование ни одной программы.'");
|
||||
СвойстваОшибки.Вставить("Описание", ТекстОшибки);
|
||||
СвойстваОшибки.Общая = Истина;
|
||||
СвойстваОшибки.КАдминистратору = Истина;
|
||||
Если Не СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоПолноправныйПользователь Тогда
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + НСтр("ru = 'Обратитесь к администратору.'");
|
||||
КонецЕсли;
|
||||
СвойстваОшибки.Вставить("Инструкция", Истина);
|
||||
СвойстваОшибки.Вставить("НастройкаПрограмм", Истина);
|
||||
Иначе
|
||||
Если Контекст.Программа <> Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программа ""%1"" не доступна или не установлена на компьютере по причине:
|
||||
|%2'"),
|
||||
ОписаниеОшибок = Контекст.ОписаниеОшибок;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииЗаполнитьПредставлениеОшибок(
|
||||
ОписаниеОшибок,
|
||||
Контекст.Программа,
|
||||
СвойстваОшибки.Ошибки[0].Описание);
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Ни одна из программ не доступна или не установлена на компьютере.'");
|
||||
Для Каждого Ошибка Из СвойстваОшибки.Ошибки Цикл
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программу ""%1"" не удалось использовать по причине:
|
||||
|%2'"),
|
||||
Ошибка.Программа,
|
||||
Ошибка.Описание);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
СвойстваОшибки.Вставить("Описание", ТекстОшибки);
|
||||
КонецЕсли;
|
||||
Контекст.АлгоритмПодписи,
|
||||
СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоПолноправныйПользователь,
|
||||
Ложь);
|
||||
|
||||
СвойстваОшибки.Вставить("ОписаниеОшибки", Контекст.ЗаголовокОшибки + Символы.ПС + ТекстОшибки);
|
||||
Если Контекст.ПоказатьОшибку = Неопределено Тогда
|
||||
ОписаниеОшибки = СвойстваОшибки;
|
||||
ОписаниеОшибки = ОписаниеОшибок;
|
||||
Иначе
|
||||
ОписаниеОшибки = СвойстваОшибки.ОписаниеОшибки;
|
||||
ОписаниеОшибки = ОписаниеОшибок.ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Контекст.ПоказатьОшибку = Истина Тогда
|
||||
ПоказатьОшибкуОбращенияКПрограмме(
|
||||
Контекст.ЗаголовокФормы, Контекст.ЗаголовокОшибки, СвойстваОшибки, Новый Структура);
|
||||
ПоказатьОшибкуОбращенияКПрограмме(Контекст.ЗаголовокФормы, "", ОписаниеОшибок, Новый Структура);
|
||||
КонецЕсли;
|
||||
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ОписаниеОшибки);
|
||||
@@ -2808,7 +2800,8 @@
|
||||
// Продолжение процедуры ПродолжитьОткрытиеНачало.
|
||||
Процедура ПродолжитьОткрытиеНачалоПослеСозданияМенеджераКриптографии(Результат, Контекст) Экспорт
|
||||
|
||||
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии") И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
|
||||
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии")
|
||||
И Не ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда
|
||||
|
||||
ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru = 'Требуется программа электронной подписи и шифрования'"),
|
||||
@@ -3845,13 +3838,9 @@
|
||||
|
||||
ИначеЕсли ЭтоCMS Тогда
|
||||
|
||||
Если Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.НеВключать Тогда
|
||||
Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = "НеВключать";
|
||||
ИначеЕсли Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.ВключатьСертификатСубъекта Тогда
|
||||
Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = "ВключатьСертификатСубъекта";
|
||||
Иначе
|
||||
Данные.ПараметрыCMS.ВключениеСертификатовВПодпись = "ВключатьПолнуюЦепочку";
|
||||
КонецЕсли;
|
||||
Данные.ПараметрыCMS.ВключениеСертификатовВПодпись =
|
||||
ВключениеСертификатовВПодписьСтрокой(
|
||||
Данные.ПараметрыCMS.ВключениеСертификатовВПодпись);
|
||||
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение,
|
||||
ПоместитьВоВременноеХранилище(Данные, Контекст.Форма.УникальныйИдентификатор));
|
||||
@@ -3955,7 +3944,7 @@
|
||||
//
|
||||
Процедура НачатьИнициализациюСертификатаКриптографииДляПроверкиПодписиXMLDSig(ОповещенияПриЗавершении, КонвертSOAP, ДанныеАлгоритмаПодписания, МенеджерКриптографии)
|
||||
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(КонвертSOAP, "wsse:BinarySecurityToken");
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(КонвертSOAP);
|
||||
ДвоичныеДанные = Base64Значение(СертификатКриптографииBase64);
|
||||
|
||||
Контекст = Новый Структура;
|
||||
@@ -4553,7 +4542,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
АтрибутSignatureValue = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "SignatureValue");
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.НайтиВXML(Контекст.КонвертSOAP, "wsse:BinarySecurityToken");
|
||||
СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(Контекст.КонвертSOAP);
|
||||
|
||||
Попытка
|
||||
|
||||
@@ -4979,6 +4968,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для процедур ПроверитьПодписьПослеСозданияМенеджераКриптографии,
|
||||
// ПолучитьДанныеИзОписанияДанныхПродолжение.
|
||||
//
|
||||
Функция ВключениеСертификатовВПодписьСтрокой(ВключениеСертификатовВПодпись)
|
||||
|
||||
Если ТипЗнч(ВключениеСертификатовВПодпись) <> Тип("РежимВключенияСертификатовКриптографии") Тогда
|
||||
Возврат ВключениеСертификатовВПодпись;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.НеВключать Тогда
|
||||
Возврат "НеВключать";
|
||||
ИначеЕсли ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.ВключатьСертификатСубъекта Тогда
|
||||
Возврат "ВключатьСертификатСубъекта";
|
||||
Иначе
|
||||
Возврат "ВключатьПолнуюЦепочку";
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для процедур СохранитьСертификатПродолжение, СохранитьЗапросНаСертификатПослеУстановкиРасширения.
|
||||
|
||||
// Готовит строку для использования в качестве имени файла.
|
||||
@@ -5219,6 +5227,7 @@
|
||||
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии")
|
||||
И Результат.Общая Тогда
|
||||
|
||||
Результат.ЗаголовокОшибки = Контекст.ЗаголовокОшибкиПрограммы;
|
||||
Контекст.Вставить("ОшибкаНаКлиенте", Результат);
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Неопределено);
|
||||
СообщитьОбОшибкеДобавленияСертификата(Контекст);
|
||||
@@ -5239,21 +5248,18 @@
|
||||
|
||||
Контекст.Вставить("СертификатКриптографии", СертификатКриптографии);
|
||||
|
||||
Контекст.Вставить("ОписаниеОшибки", "");
|
||||
Контекст.Вставить("ОшибкаНаКлиенте", Новый Структура);
|
||||
|
||||
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", "");
|
||||
Контекст.ОшибкаНаКлиенте.Вставить("Ошибки", Новый Массив);
|
||||
Контекст.Вставить("ОшибкаНаКлиенте",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок());
|
||||
|
||||
Если Не Контекст.Свойство("АлгоритмПодписи") Тогда
|
||||
Контекст.Вставить("АлгоритмПодписи", "");
|
||||
КонецЕсли;
|
||||
|
||||
ОписанияПрограмм = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииОписанияПрограмм(
|
||||
Неопределено, Контекст.ОшибкаНаКлиенте.Ошибки, ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм,
|
||||
Контекст.АлгоритмПодписи);
|
||||
ОписанияПрограмм = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ОписанияПрограмм;
|
||||
ЭтоПолноправныйПользователь = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоПолноправныйПользователь;
|
||||
|
||||
Контекст.Вставить("ОписанияПрограмм", ОписанияПрограмм);
|
||||
Контекст.Вставить("ЭтоПолноправныйПользователь", ЭтоПолноправныйПользователь);
|
||||
Контекст.Вставить("ОписаниеПрограммы", Неопределено);
|
||||
Контекст.Вставить("Индекс", -1);
|
||||
|
||||
@@ -5299,7 +5305,11 @@
|
||||
|
||||
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии") Тогда
|
||||
|
||||
Если Результат.Ошибки.Количество() > 0 Тогда
|
||||
Если Результат.Ошибки.Количество() > 0
|
||||
И Не (ЗначениеЗаполнено(Контекст.АлгоритмПодписи)
|
||||
И Результат.Ошибки[0].НетАлгоритма) Тогда
|
||||
|
||||
Результат.Ошибки[0].ЗаголовокОшибки = Контекст.ЗаголовокОшибкиПрограммы;
|
||||
Контекст.ОшибкаНаКлиенте.Ошибки.Добавить(Результат.Ошибки[0]);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5348,22 +5358,12 @@
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку шифрования по причине:
|
||||
|%2'"),
|
||||
Контекст.ОписаниеПрограммы.Наименование,
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
|
||||
Контекст.ОшибкаНаКлиенте.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
Контекст.ОшибкаНаКлиенте.ОписаниеОшибки = Контекст.ОшибкаНаКлиенте.ОписаниеОшибки
|
||||
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
Контекст.ОшибкаНаКлиенте,
|
||||
Контекст.ОписаниеПрограммы,
|
||||
"Шифрование",
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
Контекст.ЭтоПолноправныйПользователь);
|
||||
|
||||
ДобавитьСертификатЦиклНачало(Контекст);
|
||||
|
||||
@@ -5386,32 +5386,26 @@
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
|
||||
ЗаполнитьОшибкуПодписания(Контекст.ОшибкаНаКлиенте, Контекст.ОписаниеОшибки, Контекст.ОписаниеПрограммы,
|
||||
ПредставлениеОшибки, ИнформацияОбОшибке = Неопределено);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
Контекст.ОшибкаНаКлиенте,
|
||||
Контекст.ОписаниеПрограммы,
|
||||
"Подписание",
|
||||
ПредставлениеОшибки,
|
||||
Контекст.ЭтоПолноправныйПользователь,
|
||||
ИнформацияОбОшибке = Неопределено);
|
||||
|
||||
ДобавитьСертификатЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.ДополнительныеПараметры.Программа = Контекст.ОписаниеПрограммы.Ссылка;
|
||||
Попытка
|
||||
Сертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаписатьСертификатВСправочник(
|
||||
Контекст.ДанныеСертификата, Контекст.ДополнительныеПараметры);
|
||||
Исключение
|
||||
|
||||
Сертификат = Неопределено;
|
||||
Контекст.ЗаголовокФормы = НСтр("ru = 'Ошибка добавления сертификата'");
|
||||
Контекст.ЗаголовокОшибки = НСтр("ru = 'Не удалось добавить сертификат по причине:'");
|
||||
Контекст.ОшибкаНаКлиенте.Ошибки = Новый Массив;
|
||||
Контекст.ОшибкаНаКлиенте.ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
Сертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаписатьСертификатВСправочник(Контекст,
|
||||
Контекст.ОшибкаНаКлиенте);
|
||||
|
||||
Если Сертификат = Неопределено Тогда
|
||||
СообщитьОбОшибкеДобавленияСертификата(Контекст);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5420,8 +5414,12 @@
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
ЗаполнитьОшибкуПодписания(Контекст.ОшибкаНаКлиенте, Контекст.ОписаниеОшибки, Контекст.ОписаниеПрограммы,
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке), Ложь);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
Контекст.ОшибкаНаКлиенте,
|
||||
Контекст.ОписаниеПрограммы,
|
||||
"Подписание",
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
Контекст.ЭтоПолноправныйПользователь);
|
||||
|
||||
ДобавитьСертификатЦиклНачало(Контекст);
|
||||
|
||||
@@ -5434,6 +5432,7 @@
|
||||
//
|
||||
Процедура ДобавитьСертификатЦиклПослеРасшифровки(РасшифрованныеДанные, Контекст) Экспорт
|
||||
|
||||
ИнформацияОбОшибке = Неопределено;
|
||||
ПредставлениеОшибки = "";
|
||||
Попытка
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеРасшифрованныеДанные(РасшифрованныеДанные, ПредставлениеОшибки);
|
||||
@@ -5443,32 +5442,26 @@
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||
|
||||
ЗаполнитьОшибкуРасшифровки(Контекст.ОшибкаНаКлиенте, Контекст.ОписаниеОшибки,
|
||||
Контекст.ОписаниеПрограммы, ПредставлениеОшибки);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
Контекст.ОшибкаНаКлиенте,
|
||||
Контекст.ОписаниеПрограммы,
|
||||
"Расшифровка",
|
||||
ПредставлениеОшибки,
|
||||
Контекст.ЭтоПолноправныйПользователь,
|
||||
ИнформацияОбОшибке = Неопределено);
|
||||
|
||||
ДобавитьСертификатЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.ДополнительныеПараметры.Программа = Контекст.ОписаниеПрограммы.Ссылка;
|
||||
Попытка
|
||||
Сертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаписатьСертификатВСправочник(
|
||||
Контекст.ДанныеСертификата, Контекст.ДополнительныеПараметры);
|
||||
Исключение
|
||||
|
||||
Сертификат = Неопределено;
|
||||
Контекст.ЗаголовокФормы = НСтр("ru = 'Ошибка добавления сертификата'");
|
||||
Контекст.ЗаголовокОшибки = НСтр("ru = 'Не удалось добавить сертификат по причине:'");
|
||||
Контекст.ОшибкаНаКлиенте.Ошибки = Новый Массив;
|
||||
Контекст.ОшибкаНаКлиенте.ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
Сертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаписатьСертификатВСправочник(Контекст,
|
||||
Контекст.ОшибкаНаКлиенте);
|
||||
|
||||
Если Сертификат = Неопределено Тогда
|
||||
СообщитьОбОшибкеДобавленияСертификата(Контекст);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5476,8 +5469,13 @@
|
||||
Процедура ДобавитьСертификатЦиклПослеОшибкиРасшифровки(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ЗаполнитьОшибкуРасшифровки(Контекст.ОшибкаНаКлиенте, Контекст.ОписаниеОшибки,
|
||||
Контекст.ОписаниеПрограммы, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ЗаполнитьОшибкуДобавленияСертификата(
|
||||
Контекст.ОшибкаНаКлиенте,
|
||||
Контекст.ОписаниеПрограммы,
|
||||
"Расшифровка",
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
Контекст.ЭтоПолноправныйПользователь);
|
||||
|
||||
ДобавитьСертификатЦиклНачало(Контекст);
|
||||
|
||||
@@ -5491,61 +5489,7 @@
|
||||
КонтекстДобавления.ОшибкаНаСервере, Новый Структура);
|
||||
|
||||
ПоказатьОшибкуОбращенияКПрограмме(КонтекстДобавления.ЗаголовокФормы,
|
||||
КонтекстДобавления.ЗаголовокОшибки, ОшибкаНаКлиенте, ОшибкаНаСервере, Новый Структура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
// Параметры:
|
||||
// Ошибка - Структура - со свойствами:
|
||||
// * Ошибки - Массив - .
|
||||
//
|
||||
Процедура ЗаполнитьОшибкуПодписания(Ошибка, ОписаниеОшибки, ОписаниеПрограммы, ПредставлениеОшибки, ПустыеДанные)
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку подписания по причине:
|
||||
|%2'"),
|
||||
ОписаниеПрограммы.Наименование,
|
||||
ПредставлениеОшибки);
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
|
||||
Если Не ПустыеДанные Тогда
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Ошибка.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки
|
||||
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Ошибка - Структура - со свойствами:
|
||||
// * Ошибки - Массив - .
|
||||
//
|
||||
Процедура ЗаполнитьОшибкуРасшифровки(Ошибка, ОписаниеОшибки, ОписаниеПрограммы, ПредставлениеОшибки)
|
||||
|
||||
ТекстТекущейОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1:
|
||||
|Не удалось пройти проверку расшифровки по причине:
|
||||
|%2'"),
|
||||
ОписаниеПрограммы.Наименование,
|
||||
ПредставлениеОшибки);
|
||||
|
||||
ТекущаяОшибка = Новый Структура;
|
||||
ТекущаяОшибка.Вставить("Описание", ТекстТекущейОшибки);
|
||||
ТекущаяОшибка.Вставить("Инструкция", Истина);
|
||||
ТекущаяОшибка.Вставить("НастройкаПрограмм", Истина);
|
||||
|
||||
Ошибка.Ошибки.Добавить(ТекущаяОшибка);
|
||||
|
||||
Ошибка.ОписаниеОшибки = Ошибка.ОписаниеОшибки
|
||||
+ Символы.ПС + Символы.ПС + ТекстТекущейОшибки;
|
||||
"", ОшибкаНаКлиенте, ОшибкаНаСервере);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5643,17 +5587,20 @@
|
||||
Процедура ПослеСбораТехническойИнформации(ИнформацияОПрограммах, Контекст) Экспорт
|
||||
|
||||
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + ИнформацияОПрограммах;
|
||||
Контекст.Вставить("АдресАрхива", ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
|
||||
Контекст.СопроводительныйТекст, Контекст.ДополнительныеФайлы));
|
||||
|
||||
ФайловаяСистемаКлиент.СохранитьФайл(Новый ОписаниеОповещения(
|
||||
"СформироватьТехническуюИнформациюПослеСохраненияФайла", ЭтотОбъект, Контекст.ОбработчикЗавершения),
|
||||
ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
|
||||
Контекст.СопроводительныйТекст, Контекст.ДополнительныеФайлы), "service_info.zip");
|
||||
"СформироватьТехническуюИнформациюПослеСохраненияФайла", ЭтотОбъект, Контекст),
|
||||
Контекст.АдресАрхива, "service_info.zip");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СформироватьТехническуюИнформациюПослеСохраненияФайла(СохраненныеФайлы, ОповещениеОЗавершении) Экспорт
|
||||
Процедура СформироватьТехническуюИнформациюПослеСохраненияФайла(СохраненныеФайлы, Контекст) Экспорт
|
||||
|
||||
Если ОповещениеОЗавершении <> Неопределено Тогда
|
||||
ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, СохраненныеФайлы <> Неопределено);
|
||||
УдалитьИзВременногоХранилища(Контекст.АдресАрхива);
|
||||
Если Контекст.ОбработчикЗавершения <> Неопределено Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения, СохраненныеФайлы <> Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -63,55 +63,90 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура - содержит ошибки выполнения операций программами.
|
||||
// * ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
|
||||
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
|
||||
// когда операция одна (не заполнен, когда операций несколько).
|
||||
// * Общая - Булево - если Истина, то одна ошибка общая для всех программ.
|
||||
// * ИмяКомпьютера - Строка - имя компьютера при выполнении операции на стороне сервера.
|
||||
// * Ошибки - Массив Из см. НовыеСвойстваОшибки
|
||||
//
|
||||
Функция НовоеОписаниеОшибок(ИмяКомпьютера = "") Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
Описание.Вставить("ОписаниеОшибки", "");
|
||||
Описание.Вставить("ЗаголовокОшибки", "");
|
||||
Описание.Вставить("Общая", Ложь);
|
||||
Описание.Вставить("ИмяКомпьютера", ИмяКомпьютера);
|
||||
Описание.Вставить("Ошибки", Новый Массив);
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает свойства ошибки выполнения одной операции одной программой.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
|
||||
// когда операций несколько (не заполнен, когда операция одна).
|
||||
// * Описание - Строка - краткое представление ошибки.
|
||||
// * ИзИсключения - Булево - описание ошибки содержит краткое представление информации об ошибке.
|
||||
// * НетРасширения - Булево - не подключилось расширение для работы с ЭП (требуется установить).
|
||||
// * КАдминистратору - Булево - для исправления ошибки требуются права администратора.
|
||||
// * Инструкция - Булево - для исправления требуется инструкция по работе с программами ЭП.
|
||||
// * НастройкаПрограмм - Булево - для исправления ошибки требуется настройка программ.
|
||||
// * Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - если не
|
||||
// заполнено, значит ошибка, общая для всех программ.
|
||||
// * НетАлгоритма - Булево - менеджер криптографии не поддерживает алгоритм, указанный
|
||||
// для его создании в дополнение к указанной программе.
|
||||
// * НеУказанПуть - Булево - для программы не указан путь, необходимый для ОС Linux.
|
||||
//
|
||||
Функция НовыеСвойстваОшибки() Экспорт
|
||||
|
||||
ПустаяПрограмма = ПредопределенноеЗначение("Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка");
|
||||
|
||||
СвойстваОшибки = Новый Структура;
|
||||
СвойстваОшибки.Вставить("ЗаголовокОшибки", "");
|
||||
СвойстваОшибки.Вставить("Описание", "");
|
||||
СвойстваОшибки.Вставить("ИзИсключения", Ложь);
|
||||
СвойстваОшибки.Вставить("НетРасширения", Ложь);
|
||||
СвойстваОшибки.Вставить("КАдминистратору", Ложь);
|
||||
СвойстваОшибки.Вставить("Инструкция", Ложь);
|
||||
СвойстваОшибки.Вставить("НастройкаПрограмм", Ложь);
|
||||
СвойстваОшибки.Вставить("Программа", ПустаяПрограмма);
|
||||
СвойстваОшибки.Вставить("НетАлгоритма", Ложь);
|
||||
СвойстваОшибки.Вставить("НеУказанПуть", Ложь);
|
||||
|
||||
Возврат СвойстваОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм, АлгоритмПодписи = "") Экспорт
|
||||
Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм) Экспорт
|
||||
|
||||
Если Программа <> Неопределено Тогда
|
||||
|
||||
ПрограммаНеНайдена = Истина;
|
||||
ПрограммаНайдена = Ложь;
|
||||
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
|
||||
Если ОписаниеПрограммы.Ссылка = Программа Тогда
|
||||
ПрограммаНеНайдена = Ложь;
|
||||
ПрограммаНайдена = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ПрограммаНеНайдена Тогда
|
||||
Если Не ПрограммаНайдена Тогда
|
||||
МенеджерКриптографииДобавитьОшибку(Ошибки, Программа,
|
||||
НСтр("ru = 'Не предусмотрена для использования.'"), Истина);
|
||||
НСтр("ru = 'Программа не предусмотрена для использования.'"), Истина);
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ОписанияПрограмм = Новый Массив;
|
||||
ОписанияПрограмм.Добавить(ОписаниеПрограммы);
|
||||
|
||||
ИначеЕсли Не ПустаяСтрока(АлгоритмПодписи) Тогда
|
||||
|
||||
Если СтрНайти(АлгоритмПодписи, ",") > 0 Тогда
|
||||
|
||||
ВозможныеАлгоритмы = СтрРазделить(АлгоритмПодписи, ",", Ложь);
|
||||
Для СчетчикАлгоритмов = 0 По ВозможныеАлгоритмы.Количество() - 1 Цикл
|
||||
ВозможныеАлгоритмы[СчетчикАлгоритмов] = СокрЛП(ВозможныеАлгоритмы[СчетчикАлгоритмов]);
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
ВозможныеАлгоритмы = Новый Массив;
|
||||
ВозможныеАлгоритмы.Добавить(СокрЛП(АлгоритмПодписи));
|
||||
КонецЕсли;
|
||||
|
||||
ПрограммыСУказаннымАлгоритмом = Новый Массив;
|
||||
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
|
||||
|
||||
Если ВозможныеАлгоритмы.Найти(ОписаниеПрограммы.АлгоритмПодписи) <> Неопределено Тогда
|
||||
ПрограммыСУказаннымАлгоритмом.Добавить(ОписаниеПрограммы);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПрограммыСУказаннымАлгоритмом;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОписанияПрограмм;
|
||||
@@ -157,6 +192,37 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция МенеджерКриптографииАлгоритмПодписиПоддерживается(ОписаниеПрограммы, АлгоритмыПодписи,
|
||||
АлгоритмПодписи, Ошибки, ЭтоСервер, ДобавлятьОшибку) Экспорт
|
||||
|
||||
ВозможныеАлгоритмы = СтрРазделить(АлгоритмПодписи, ",", Ложь);
|
||||
|
||||
Для Каждого ВозможныйАлгоритм Из ВозможныеАлгоритмы Цикл
|
||||
ВозможныйАлгоритм = СокрЛП(ВозможныйАлгоритм);
|
||||
Если АлгоритмыПодписи.Найти(ВозможныйАлгоритм) <> Неопределено Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ДобавлятьОшибку Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВозможныеАлгоритмы.Количество() = 1 Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программа не поддерживает алгоритм подписи %1.'"), АлгоритмПодписи);
|
||||
Иначе
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программа не поддерживает ни один из алгоритмов подписи %1.'"), АлгоритмПодписи);
|
||||
КонецЕсли;
|
||||
МенеджерКриптографииДобавитьОшибку(Ошибки, ОписаниеПрограммы.Ссылка, ТекстОшибки, ЭтоСервер, Истина);
|
||||
Ошибки[Ошибки.ВГраница()].НетАлгоритма = Истина;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция МенеджерКриптографииАлгоритмыУстановлены(ОписаниеПрограммы, Менеджер, Ошибки) Экспорт
|
||||
|
||||
@@ -286,24 +352,210 @@
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// Ошибки - Массив - .
|
||||
// Ошибки - Массив Из см. НовыеСвойстваОшибки
|
||||
// Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// Описание - Строка
|
||||
// КАдминистратору - Булево
|
||||
// Инструкция - Булево
|
||||
// ИзИсключения - Булево
|
||||
// НеУказанПуть - Булево
|
||||
//
|
||||
Процедура МенеджерКриптографииДобавитьОшибку(Ошибки, Программа, Описание,
|
||||
КАдминистратору, Инструкция = Ложь, ИзИсключения = Ложь, НеУказанПуть = Ложь) Экспорт
|
||||
|
||||
СвойстваОшибки = Новый Структура;
|
||||
СвойстваОшибки.Вставить("Программа", Программа);
|
||||
СвойстваОшибки.Вставить("Описание", Описание);
|
||||
СвойстваОшибки.Вставить("КАдминистратору", КАдминистратору);
|
||||
СвойстваОшибки.Вставить("Инструкция", Инструкция);
|
||||
СвойстваОшибки.Вставить("ИзИсключения", ИзИсключения);
|
||||
СвойстваОшибки.Вставить("НеУказанПуть", НеУказанПуть);
|
||||
СвойстваОшибки.Вставить("НастройкаПрограмм", Истина);
|
||||
СвойстваОшибки = НовыеСвойстваОшибки();
|
||||
Если ЗначениеЗаполнено(Программа) Тогда
|
||||
СвойстваОшибки.Программа = Программа;
|
||||
КонецЕсли;
|
||||
СвойстваОшибки.Описание = Описание;
|
||||
СвойстваОшибки.КАдминистратору = КАдминистратору;
|
||||
СвойстваОшибки.Инструкция = Инструкция;
|
||||
СвойстваОшибки.ИзИсключения = ИзИсключения;
|
||||
СвойстваОшибки.НеУказанПуть = НеУказанПуть;
|
||||
СвойстваОшибки.НастройкаПрограмм = Истина;
|
||||
|
||||
Ошибки.Добавить(СвойстваОшибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеОшибок - см. НовоеОписаниеОшибок
|
||||
// Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// АлгоритмПодписи - Строка
|
||||
// ЭтоПолноправныйПользователь - Булево
|
||||
// ЭтоСервер - Булево
|
||||
//
|
||||
Процедура МенеджерКриптографииЗаполнитьПредставлениеОшибок(ОписаниеОшибок,
|
||||
Программа, АлгоритмПодписи, ЭтоПолноправныйПользователь, ЭтоСервер) Экспорт
|
||||
|
||||
Если ОписаниеОшибок.Ошибки.Количество() = 0 Тогда
|
||||
Если Не ЗначениеЗаполнено(АлгоритмПодписи) Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не предусмотрено использование ни одной программы.'");
|
||||
Иначе
|
||||
ШаблонОшибки = НСтр("ru = 'Не предусмотрено использование ни одной программы
|
||||
|с алгоритмом подписи %1.'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
||||
СтрЗаменить(АлгоритмПодписи, ", ", " " + НСтр("ru = 'или'") + " "));
|
||||
КонецЕсли;
|
||||
ОписаниеОшибок.Общая = Истина;
|
||||
МенеджерКриптографииДобавитьОшибку(ОписаниеОшибок.Ошибки,
|
||||
Неопределено, ТекстОшибки, Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьОбщееПредставлениеОшибок(ОписаниеОшибок, ЭтоПолноправныйПользователь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеОшибок - см. НовоеОписаниеОшибок
|
||||
// ЭтоПолноправныйПользователь - Булево
|
||||
//
|
||||
Процедура ЗаполнитьОбщееПредставлениеОшибок(ОписаниеОшибок, ЭтоПолноправныйПользователь)
|
||||
|
||||
ЧастиОписания = Новый Массив;
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибок.ЗаголовокОшибки) Тогда
|
||||
ЧастиОписания.Добавить(ОписаниеОшибок.ЗаголовокОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
КАдминистратору = Ложь;
|
||||
Для Каждого СвойстваОшибки Из ОписаниеОшибок.Ошибки Цикл
|
||||
Описание = "";
|
||||
Если ЗначениеЗаполнено(СвойстваОшибки.ЗаголовокОшибки) Тогда
|
||||
Описание = Описание + СвойстваОшибки.ЗаголовокОшибки + Символы.ПС;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(СвойстваОшибки.Программа) Тогда
|
||||
Описание = Описание + Строка(СвойстваОшибки.Программа) + ":" + Символы.ПС;
|
||||
КонецЕсли;
|
||||
ЧастиОписания.Добавить(Описание + СвойстваОшибки.Описание);
|
||||
КАдминистратору = КАдминистратору Или СвойстваОшибки.КАдминистратору;
|
||||
КонецЦикла;
|
||||
ОписаниеОшибки = СтрСоединить(ЧастиОписания, Символы.ПС);
|
||||
|
||||
Если КАдминистратору И Не ЭтоПолноправныйПользователь Тогда
|
||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + Символы.ПС
|
||||
+ НСтр("ru = 'Обратитесь к администратору.'");
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибок.ОписаниеОшибки = ОписаниеОшибки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// Контекст - Структура:
|
||||
// * ОписаниеПрограммы - Структура:
|
||||
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// Ошибка - см. НовоеОписаниеОшибок
|
||||
//
|
||||
Функция ЗаписатьСертификатВСправочник(Контекст, Ошибка) Экспорт
|
||||
|
||||
Контекст.ДополнительныеПараметры.Программа = Контекст.ОписаниеПрограммы.Ссылка;
|
||||
Попытка
|
||||
Сертификат = ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаписатьСертификатВСправочник(
|
||||
Контекст.ДанныеСертификата, Контекст.ДополнительныеПараметры);
|
||||
Исключение
|
||||
Сертификат = Неопределено;
|
||||
Контекст.ЗаголовокФормы = НСтр("ru = 'Ошибка добавления сертификата'");
|
||||
|
||||
Ошибка.Общая = Истина;
|
||||
Ошибка.ЗаголовокОшибки = НСтр("ru = 'Не удалось записать сертификат по причине:'");
|
||||
|
||||
СвойстваОшибки = НовыеСвойстваОшибки();
|
||||
СвойстваОшибки.Описание = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
Ошибка.Ошибки.Добавить(СвойстваОшибки);
|
||||
КонецПопытки;
|
||||
|
||||
Возврат Сертификат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция ЗаголовокОшибкиДобавленияСертификата(Операция, ИмяКомпьютера = "") Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(ИмяКомпьютера) Тогда // Признак ЭтоСервер.
|
||||
Если Операция = "Подписание" Тогда
|
||||
ШаблонЗаголовка = НСтр("ru = 'Не удалось пройти проверку подписания на сервере %1 по причине:'");
|
||||
ИначеЕсли Операция = "Шифрование" Тогда
|
||||
ШаблонЗаголовка = НСтр("ru = 'Не удалось пройти проверку шифрования на сервере %1 по причине:'");
|
||||
ИначеЕсли Операция = "Расшифровка" Тогда
|
||||
ШаблонЗаголовка = НСтр("ru = 'Не удалось пройти проверку расшифровки на сервере %1 по причине:'");
|
||||
КонецЕсли;
|
||||
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ШаблонЗаголовка, ИмяКомпьютера);
|
||||
Иначе
|
||||
Если Операция = "Подписание" Тогда
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось пройти проверку подписания на компьютере по причине:'");
|
||||
ИначеЕсли Операция = "Шифрование" Тогда
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось пройти проверку шифрования на компьютере по причине:'");
|
||||
ИначеЕсли Операция = "Расшифровка" Тогда
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось пройти проверку расшифровки на компьютере по причине:'");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ЗаголовокОшибки) Тогда
|
||||
ТекущийТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Некорректное значение параметра Операция ""%1"" в процедуре %2'"),
|
||||
Операция,
|
||||
"ЗаполнитьОшибкуДобавленияСертификата");
|
||||
ВызватьИсключение ТекущийТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗаголовокОшибки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеОшибок - см. НовоеОписаниеОшибок
|
||||
// ОписаниеПрограммы - Структура:
|
||||
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// Операция - Строка
|
||||
// ТекстОшибки - Строка
|
||||
// ЭтоПолноправныйПользователь - Булево
|
||||
// ПустыеДанные - Булево
|
||||
// ИмяКомпьютера - Строка
|
||||
//
|
||||
Процедура ЗаполнитьОшибкуДобавленияСертификата(ОписаниеОшибок, ОписаниеПрограммы, Операция,
|
||||
ТекстОшибки, ЭтоПолноправныйПользователь, ПустыеДанные = Ложь, ИмяКомпьютера = "") Экспорт
|
||||
|
||||
ЗаголовокОшибки = ЗаголовокОшибкиДобавленияСертификата(Операция, ИмяКомпьютера);
|
||||
|
||||
СвойстваОшибки = НовыеСвойстваОшибки();
|
||||
СвойстваОшибки.Описание = ТекстОшибки;
|
||||
СвойстваОшибки.Программа = ОписаниеПрограммы.Ссылка;
|
||||
|
||||
Если Не ПустыеДанные Тогда
|
||||
СвойстваОшибки.ИзИсключения = Истина;
|
||||
СвойстваОшибки.Инструкция = Истина;
|
||||
СвойстваОшибки.НастройкаПрограмм = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибок.Ошибки) Тогда
|
||||
ОписаниеОшибок.ЗаголовокОшибки = ЗаголовокОшибки;
|
||||
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибок.ЗаголовокОшибки) Тогда
|
||||
СвойстваОшибки.ЗаголовокОшибки = ЗаголовокОшибки;
|
||||
|
||||
ИначеЕсли ОписаниеОшибок.ЗаголовокОшибки <> ЗаголовокОшибки Тогда
|
||||
Для Каждого ТекущиеСвойства Из ОписаниеОшибок.Ошибки Цикл
|
||||
ТекущиеСвойства.ЗаголовокОшибки = ОписаниеОшибок.ЗаголовокОшибки;
|
||||
КонецЦикла;
|
||||
ОписаниеОшибок.ЗаголовокОшибки = "";
|
||||
СвойстваОшибки.ЗаголовокОшибки = ЗаголовокОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибок.Ошибки.Добавить(СвойстваОшибки);
|
||||
|
||||
ЗаполнитьОбщееПредставлениеОшибок(ОписаниеОшибок, ЭтоПолноправныйПользователь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция РежимыПроверкиСертификата(ИгнорироватьВремяДействия = Ложь) Экспорт
|
||||
|
||||
@@ -605,6 +857,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция СертификатИзКонвертаSOAP(КонвертSOAP, ВФорматеBase64 = Истина) Экспорт
|
||||
|
||||
СертификатBase64 = НайтиВXML(КонвертSOAP, "wsse:BinarySecurityToken");
|
||||
|
||||
Если ВФорматеBase64 Тогда
|
||||
Возврат СертификатBase64;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Base64Значение(СертификатBase64);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ЭлектроннаяПодписьКлиент.ПредставлениеСертификата.
|
||||
Функция ПредставлениеСертификата(Сертификат, ДобавкаВремени, МодульЭлектроннаяПодписьЛокализацияКлиентСервер) Экспорт
|
||||
|
||||
@@ -1049,41 +1314,57 @@
|
||||
|
||||
Функция АлгоритмПодписи(Данные, ЭтоДанныеСертификата = Ложь)
|
||||
|
||||
Если ТипЗнч(Данные) = Тип("Строка")
|
||||
И ЭтоАдресВременногоХранилища(Данные) Тогда
|
||||
|
||||
ЧтениеДанных = Новый ЧтениеДанных(
|
||||
ПолучитьИзВременногоХранилища(Данные));
|
||||
|
||||
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
|
||||
ЧтениеДанных = Новый ЧтениеДанных(Данные);
|
||||
Если ТипЗнч(Данные) = Тип("Строка") Тогда
|
||||
Если ЭтоАдресВременногоХранилища(Данные) Тогда
|
||||
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Данные);
|
||||
Иначе
|
||||
Возврат "";
|
||||
ОбщегоНазначенияКлиентСервер.Проверить(Ложь,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Недопустимый адрес временного хранилища в параметре Данные:
|
||||
|%1'"), Данные),
|
||||
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи");
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ДвоичныеДанные = Данные;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
|
||||
АнализДанных = Новый Структура;
|
||||
АнализДанных.Вставить("ЕстьОшибка", Ложь);
|
||||
АнализДанных.Вставить("Индекс", 0);
|
||||
АнализДанных.Вставить("Буфер",
|
||||
ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(ДвоичныеДанные));
|
||||
Иначе
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
|
||||
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи",
|
||||
"Данные",
|
||||
Данные, Новый ОписаниеТипов("Строка, ДвоичныеДанные"));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоДанныеСертификата Тогда
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 3);
|
||||
ПропуститьБлок(ЧтениеДанных, 2);
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 1);
|
||||
ПропуститьНачалоБлока(АнализДанных, 3);
|
||||
ПропуститьБлок(АнализДанных, 2);
|
||||
ПропуститьНачалоБлока(АнализДанных, 1);
|
||||
Иначе
|
||||
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 1);
|
||||
ПропуститьБлок(ЧтениеДанных, 1);
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 2);
|
||||
ПропуститьБлок(ЧтениеДанных, 3);
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 3);
|
||||
ПропуститьБлок(ЧтениеДанных, 2);
|
||||
ПропуститьНачалоБлока(ЧтениеДанных, 1);
|
||||
|
||||
ПропуститьНачалоБлока(АнализДанных, 1);
|
||||
ПропуститьБлок(АнализДанных, 1);
|
||||
ПропуститьНачалоБлока(АнализДанных, 2);
|
||||
ПропуститьБлок(АнализДанных, 3);
|
||||
ПропуститьНачалоБлока(АнализДанных, 3);
|
||||
ПропуститьБлок(АнализДанных, 2);
|
||||
ПропуститьНачалоБлока(АнализДанных, 1);
|
||||
КонецЕсли;
|
||||
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ПрочитатьБайт(АнализДанных, 2);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
Идентификатор = Новый Массив;
|
||||
|
||||
БайтSID1 = ЧтениеДанных.ПрочитатьБайт();
|
||||
БайтSID1 = ПрочитатьБайт(АнализДанных);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
Если БайтSID1 < 40 Тогда
|
||||
SID1 = 0;
|
||||
ИначеЕсли БайтSID1 < 80 Тогда
|
||||
@@ -1098,11 +1379,17 @@
|
||||
СоставноеЗначение = Новый Массив;
|
||||
Для Индекс = 1 По РазмерБлока - 1 Цикл
|
||||
|
||||
ТекущийБайт = ЧтениеДанных.ПрочитатьБайт();
|
||||
Если ТекущийБайт <= 128 Тогда
|
||||
ТекущийБайт = ПрочитатьБайт(АнализДанных);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущийБайт > 128 Тогда
|
||||
СоставноеЗначение.Добавить(ТекущийБайт - 128);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СоставноеЗначение.Количество() > 0 Тогда
|
||||
|
||||
СоставноеЗначение.Добавить(ТекущийБайт);
|
||||
|
||||
ЭлементИдентификатора = 0;
|
||||
@@ -1115,69 +1402,84 @@
|
||||
|
||||
Идентификатор.Добавить(Формат(ЭлементИдентификатора, "ЧН=0; ЧГ="));
|
||||
СоставноеЗначение.Очистить();
|
||||
|
||||
Иначе
|
||||
Идентификатор.Добавить(Формат(ТекущийБайт, "ЧН=0"));
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
СоставноеЗначение.Добавить(ТекущийБайт - 128);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OIDАлгоритмаПодписи = СтрСоединить(Идентификатор, ".");
|
||||
ЧтениеДанных.Закрыть();
|
||||
|
||||
Исключение
|
||||
Возврат "";
|
||||
КонецПопытки;
|
||||
|
||||
ПредставлениеАлгоритма = ИдентификаторыАлгоритмовПодписи().Получить(OIDАлгоритмаПодписи);
|
||||
Возврат ?(ПредставлениеАлгоритма = Неопределено, "", ПредставлениеАлгоритма);
|
||||
Если ПредставлениеАлгоритма = Неопределено Тогда
|
||||
Возврат "";
|
||||
Иначе
|
||||
Возврат ПредставлениеАлгоритма;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПропуститьНачалоБлока(ЧтениеДанных, КоличествоИтераций)
|
||||
Процедура ПропуститьНачалоБлока(АнализДанных, КоличествоИтераций)
|
||||
|
||||
Для СчетчикПоследовательностей = 1 По КоличествоИтераций Цикл
|
||||
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ПрочитатьБайт(АнализДанных, 2);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если РазмерБлока > 128 Тогда
|
||||
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(РазмерБлока - 128);
|
||||
ПрочитатьБайт(АнализДанных, РазмерБлока - 128);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПропуститьБлок(ЧтениеДанных,КоличествоИтераций)
|
||||
Процедура ПропуститьБлок(АнализДанных,КоличествоИтераций)
|
||||
|
||||
Для СчетчикДанных = 1 По КоличествоИтераций Цикл
|
||||
|
||||
ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ЧтениеДанных.ПрочитатьБайт();
|
||||
РазмерБлока = ПрочитатьБайт(АнализДанных, 2);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если РазмерБлока <= 128 Тогда
|
||||
ДлинаБлокаДанных = РазмерБлока;
|
||||
Иначе
|
||||
|
||||
Буфер = ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(РазмерБлока - 128);
|
||||
|
||||
ДлинаБлокаДанных = 0;
|
||||
РазмерБуфера = Буфер.Размер - 1;
|
||||
Для ТекущийБайт = 0 По РазмерБуфера Цикл
|
||||
ДлинаБлокаДанных = ДлинаБлокаДанных
|
||||
+ Буфер[ТекущийБайт] * Pow(16, 2*(РазмерБуфера - ТекущийБайт));
|
||||
КонецЦикла;
|
||||
|
||||
РазмерЗаголовка = РазмерБлока - 129;
|
||||
Для ТекущийИндекс = 0 По РазмерЗаголовка Цикл
|
||||
ТекущийБайт = ПрочитатьБайт(АнализДанных);
|
||||
Если АнализДанных.ЕстьОшибка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ЧтениеДанных.ПрочитатьВБуферДвоичныхДанных(ДлинаБлокаДанных);
|
||||
ДлинаБлокаДанных = ДлинаБлокаДанных
|
||||
+ ТекущийБайт * Pow(16, 2*(РазмерЗаголовка - ТекущийИндекс));
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
ПрочитатьБайт(АнализДанных, ДлинаБлокаДанных);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПрочитатьБайт(АнализДанных, КоличествоРаз = 1)
|
||||
|
||||
Если АнализДанных.Индекс + КоличествоРаз <= АнализДанных.Буфер.Размер Тогда
|
||||
Байт = АнализДанных.Буфер.Получить(АнализДанных.Индекс + КоличествоРаз - 1);
|
||||
АнализДанных.Индекс = АнализДанных.Индекс + КоличествоРаз;
|
||||
Иначе
|
||||
Байт = Неопределено;
|
||||
АнализДанных.Индекс = АнализДанных.Буфер.Размер;
|
||||
АнализДанных.ЕстьОшибка = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Байт;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИдентификаторыАлгоритмовПодписи()
|
||||
|
||||
ИдентификаторыАлгоритмов = Новый Соответствие;
|
||||
@@ -1185,6 +1487,7 @@
|
||||
ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.3", "GOST R 34.10-2001");
|
||||
ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.2", "GR 34.10-2012 256, GOST 34.10-2012 256");
|
||||
ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.3", "GR 34.10-2012 512, GOST 34.10-2012 512");
|
||||
ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.5", "RSA_SIGN");
|
||||
|
||||
Возврат ИдентификаторыАлгоритмов;
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c1c9f3af-6471-43d6-9ca7-293f5e4b7d46">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b5d0e798-bd95-497a-be7d-213e9bbe2c4b">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="370eb625-8855-4ebf-9ee7-486eea4e910f"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="b4bc3552-d623-42a5-938b-35fdd8d90ce4"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e4fb3b83-4f74-4c95-8fc9-7bdb773c3660"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="7bddc54c-bd49-49b9-ba63-c69e4d64ee25"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="36c801d5-a4d7-4e94-ae63-c12e8da47988"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1338c1b1-0e9e-465c-8a7a-50043fce3862"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="7e9f14b1-203a-4d3d-9149-b4dfb06d2f32"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="ed99b474-e6eb-4998-ac47-7d94e3ebcb69"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="0244c957-b76c-4026-8efd-daaeb6836e14"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e6c1d39d-b4da-4f66-a06c-0029a1cd8433"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="b1c6b474-a5c3-4457-bde0-4a14452b0160"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="2e0fff63-12f3-46f1-82d5-4788acde587e"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="94a51e71-33ee-450b-aae4-8121d01b952e"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="1c892d25-a5a1-4440-a2bd-b878ec611dde"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>3.1.2.387</version>
|
||||
<version>3.1.2.396</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
@@ -1543,6 +1543,7 @@
|
||||
<commonForms>CommonForm.ДополнительныеОтчетыИОбработки</commonForms>
|
||||
<commonForms>CommonForm.ДополнительныеПараметрыПроксиСервера</commonForms>
|
||||
<commonForms>CommonForm.ИнформацияНеразделенногоПользователя</commonForms>
|
||||
<commonForms>CommonForm.КонтрольДинамическогоОбновления</commonForms>
|
||||
<commonForms>CommonForm.МастерАнкетыПоРазделам</commonForms>
|
||||
<commonForms>CommonForm.МониторСинхронизацииДанныхВМоделиСервиса</commonForms>
|
||||
<commonForms>CommonForm.НапоминаниеПриРедактировании</commonForms>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,2d6b2313-2d14-4e87-8717-ef020ec96907,1,8eb29226-794c-4ed8-9fc2-02b43d69006d,"3.1.2.387","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5933,1,0,c1c9f3af-6471-43d6-9ca7-293f5e4b7d46,c1c9f3af-6471-43d6-9ca7-293f5e4b7d46,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
|
||||
{6,1,1,49cf05a2-226b-4d83-b9cd-b804b693d1f7,1,ed0440f8-e748-45fa-9386-c3abd2e419ab,"3.1.2.396","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5934,1,0,b5d0e798-bd95-497a-be7d-213e9bbe2c4b,b5d0e798-bd95-497a-be7d-213e9bbe2c4b,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
|
||||
@@ -375,13 +375,15 @@
|
||||
|
|
||||
|ИНДЕКСИРОВАТЬ ПО
|
||||
| БИК";
|
||||
|
||||
Запрос.УстановитьПараметр("НедействующиеБанки", НедействующиеБанки);
|
||||
Запрос.УстановитьПараметр("БИК", ДействующиеБанки.ВыгрузитьКолонку("БИК"));
|
||||
Запрос.Выполнить();
|
||||
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| КлассификаторБанков.Ссылка
|
||||
| КлассификаторБанков.Ссылка КАК Ссылка,
|
||||
| КлассификаторБанков.Код КАК Код
|
||||
|ИЗ
|
||||
| НедействующиеБанки КАК НедействующиеБанки
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
|
||||
@@ -392,24 +394,37 @@
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| КлассификаторБанков.Ссылка";
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
ВыборкаБанков = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока ВыборкаБанков.Следующий() Цикл
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлассификаторБанков");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаБанков.Ссылка);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
ВыборкаБанков = Запрос.Выполнить().Выбрать();
|
||||
Пока ВыборкаБанков.Следующий() Цикл
|
||||
БанкОбъект = ВыборкаБанков.Ссылка.ПолучитьОбъект();
|
||||
|
||||
Если БанкОбъект = Неопределено Или БанкОбъект.Код <> ВыборкаБанков.Код Тогда
|
||||
ОтменитьТранзакцию();
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
БанкОбъект.ДеятельностьПрекращена = Истина;
|
||||
БанкОбъект.Записать();
|
||||
КонецЦикла;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
ЗаписатьОшибкуВЖурналРегистрации(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось обновить сведения о банке ""%1"" (БИК %2):
|
||||
|%3'"),
|
||||
ВыборкаБанков.Ссылка,
|
||||
ВыборкаБанков.Код,
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
|
||||
КонецПопытки;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ВыборкаБанков.Количество();
|
||||
|
||||
|
||||
@@ -45,19 +45,19 @@
|
||||
|
||||
Функция ВерсияКалендарей() Экспорт
|
||||
|
||||
Возврат 4;
|
||||
Возврат 5;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВерсияОбновленияПроизводственныхКалендарей() Экспорт
|
||||
|
||||
Возврат "3.1.2.383";
|
||||
Возврат "3.1.2.395";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
|
||||
|
||||
Возврат "3.1.2.366";
|
||||
Возврат "3.1.2.395";
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
+9
-2
@@ -19,7 +19,8 @@
|
||||
<Item Calendar="01" Year="2019" DayType="Суббота" Date="20191007" SwapDate="20191005"/>
|
||||
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
|
||||
<Item Calendar="01" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
|
||||
<Item Calendar="01" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
|
||||
<Item Calendar="01" Year="2020" DayType="Праздник" Date="20200524" SwapDate="20200525"/>
|
||||
<Item Calendar="01" Year="2020" DayType="Воскресенье" Date="20200525" SwapDate="20200524"/>
|
||||
<Item Calendar="01" Year="2020" DayType="Праздник" Date="20201005" SwapDate=""/>
|
||||
<Item Calendar="02" Year="2014" DayType="Праздник" Date="20140728" SwapDate=""/>
|
||||
<Item Calendar="02" Year="2014" DayType="Предпраздничный" Date="20141003" SwapDate=""/>
|
||||
@@ -128,6 +129,7 @@
|
||||
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
|
||||
<Item Calendar="05" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
|
||||
<Item Calendar="05" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
|
||||
<Item Calendar="05" Year="2020" DayType="Праздник" Date="20200526" SwapDate=""/>
|
||||
<Item Calendar="05" Year="2020" DayType="Праздник" Date="20200726" SwapDate="20200727"/>
|
||||
<Item Calendar="05" Year="2020" DayType="Воскресенье" Date="20200727" SwapDate="20200726"/>
|
||||
<Item Calendar="05" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
|
||||
@@ -157,6 +159,7 @@
|
||||
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
|
||||
<Item Calendar="06" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
|
||||
<Item Calendar="06" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
|
||||
<Item Calendar="06" Year="2020" DayType="Праздник" Date="20200526" SwapDate=""/>
|
||||
<Item Calendar="06" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
|
||||
<Item Calendar="06" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/>
|
||||
<Item Calendar="07" Year="2016" DayType="Праздник" Date="20160328" SwapDate=""/>
|
||||
@@ -444,7 +447,12 @@
|
||||
<Item Calendar="20" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Предпраздничный" Date="20200415" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200416" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200523" SwapDate="20200527"/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200524" SwapDate="20200528"/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200526" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Суббота" Date="20200527" SwapDate="20200523"/>
|
||||
<Item Calendar="20" Year="2020" DayType="Воскресенье" Date="20200528" SwapDate="20200524"/>
|
||||
<Item Calendar="20" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
|
||||
<Item Calendar="20" Year="2020" DayType="Праздник" Date="20200731" SwapDate=""/>
|
||||
<Item Calendar="21" Year="2016" DayType="Предпраздничный" Date="20160623" SwapDate=""/>
|
||||
@@ -548,7 +556,6 @@
|
||||
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200318" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200420" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200525" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Праздник" Date="20200608" SwapDate=""/>
|
||||
<Item Calendar="91" Year="2020" DayType="Предпраздничный" Date="20200730" SwapDate=""/>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<Item Code="04" Description="Республика Алтай" Base="РФ"/>
|
||||
<Item Code="05" Description="Республика Дагестан" Base="РФ"/>
|
||||
<Item Code="06" Description="Республика Ингушетия" Base="РФ"/>
|
||||
<Item Code="07" Description="Кабардино-Балкарская республика" Base="РФ"/>
|
||||
<Item Code="07" Description="Кабардино-Балкарская Республика" Base="РФ"/>
|
||||
<Item Code="08" Description="Республика Калмыкия" Base="РФ"/>
|
||||
<Item Code="09" Description="Карачаево-Черкесская Республика" Base="РФ"/>
|
||||
<Item Code="11" Description="Республика Коми" Base="РФ"/>
|
||||
|
||||
+6
-8
@@ -260,20 +260,18 @@
|
||||
ИначеЕсли ИмяРеквизита = "ЮридическийАдрес"
|
||||
Или ИмяРеквизита = "ФактическийАдрес" Тогда
|
||||
|
||||
ПродолжитьПриОшибке = Истина;
|
||||
|
||||
ТекстОшибки = ОшибкиПроверкиАдреса(ЗначениеРеквизита);
|
||||
Если ПустаяСтрока(ТекстОшибки) Тогда
|
||||
|
||||
ПродолжитьПриОшибке = Истина;
|
||||
ТекстОшибки = ПроверитьАдрес(ЗначениеРеквизита);
|
||||
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ТекстНезаполненного, ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
||||
Если СтрНайти(ТекстНезаполненного, "%1") > 0 Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ТекстНезаполненного, ТекстОшибки);
|
||||
Иначе
|
||||
ТекстСообщения = ТекстНезаполненного + ". " + ТекстОшибки;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ИмяРеквизита = "Телефон" Тогда
|
||||
|
||||
@@ -3308,9 +3308,6 @@
|
||||
МодульАдресныйКлассификаторКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдресныйКлассификаторКлиент");
|
||||
МодульАдресныйКлассификаторКлиент.АвторизоватьНаСайтеПоддержкиПользователей(Оповещение, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
УстановитьНаселенныйПунктПослеВыбора(ДанныеОбАдресе);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+1
-1
@@ -154,7 +154,7 @@
|
||||
;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ВЫБРАТЬ
|
||||
ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
ВЫБОР
|
||||
КОГДА Взаимодействия.Ссылка ССЫЛКА Документ.Встреча
|
||||
ТОГДА ВЫБОР
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@
|
||||
;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ВЫБРАТЬ
|
||||
ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
ВЫБОР
|
||||
КОГДА Взаимодействия.Ссылка ССЫЛКА Документ.Встреча
|
||||
ТОГДА ВЫБОР
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
Попытка
|
||||
|
||||
БлокировкаДанных = Новый БлокировкаДанных;
|
||||
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("Справочник.Файлы");
|
||||
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Строка.Файл.Метаданные().ПолноеИмя());
|
||||
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Строка.Файл);
|
||||
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Разделяемый;
|
||||
|
||||
@@ -90,9 +90,9 @@
|
||||
КонецЦикла;
|
||||
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
|
||||
ЗафиксироватьТранзакцию();
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
|
||||
@@ -101,7 +101,7 @@
|
||||
|%2'"),
|
||||
Строка.Файл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
|
||||
Строка.Ссылка.Метаданные(), Строка.Ссылка, ТекстСообщения);
|
||||
Строка.Файл.Метаданные(), Строка.Файл, ТекстСообщения);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Процедуре РегистрыСведений.СведенияОФайлах.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые файлы файлов (пропущены): %1'"),
|
||||
НСтр("ru = 'Процедуре РегистрыСведений.СведенияОФайлах.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые файлы (пропущены): %1'"),
|
||||
ПроблемныхОбъектов);
|
||||
ВызватьИсключение ТекстСообщения;
|
||||
Иначе
|
||||
|
||||
@@ -89,8 +89,7 @@
|
||||
Команда.Важность = "СмТакже";
|
||||
Команда.ТипПараметра = ОписаниеТипаПараметраКоманды;
|
||||
Команда.Менеджер = "Отчет.ДвиженияДокумента";
|
||||
Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.L, Ложь, Истина, Истина);
|
||||
Команда.ТолькоВоВсехДействиях = Истина;
|
||||
Команда.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.A, Ложь, Истина, Истина);
|
||||
|
||||
Возврат Команда;
|
||||
|
||||
|
||||
@@ -3756,91 +3756,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.СписокЗапрещенныхРасширений</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Update</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Edit</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.СвязиАдресныхОбъектов</name>
|
||||
<right>
|
||||
<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>
|
||||
<right>
|
||||
<name>ReadDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ReadDataHistoryOfMissingData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistoryOfMissingData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistorySettings</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistoryVersionComment</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ViewDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EditDataHistoryVersionComment</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SwitchToDataHistoryVersion</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -3928,6 +3843,91 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.СписокЗапрещенныхРасширений</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Update</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Edit</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.СвязиАдресныхОбъектов</name>
|
||||
<right>
|
||||
<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>
|
||||
<right>
|
||||
<name>ReadDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ReadDataHistoryOfMissingData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistoryOfMissingData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistorySettings</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataHistoryVersionComment</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ViewDataHistory</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EditDataHistoryVersionComment</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SwitchToDataHistoryVersion</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.СообщениеОбменаДаннымиИзГлавногоУзла</name>
|
||||
<right>
|
||||
|
||||
@@ -1548,6 +1548,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.КонтрольДинамическогоОбновления</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ОграничиватьДоступНаУровнеЗаписейУниверсально</name>
|
||||
<right>
|
||||
|
||||
@@ -1364,6 +1364,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.КонтрольДинамическогоОбновления</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.ОграничиватьДоступНаУровнеЗаписейУниверсально</name>
|
||||
<right>
|
||||
|
||||
@@ -5206,6 +5206,45 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.СписокЗапрещенныхРасширений</name>
|
||||
<right>
|
||||
@@ -5330,45 +5369,6 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Constant.СообщениеОбменаДаннымиИзГлавногоУзла</name>
|
||||
<right>
|
||||
|
||||
+1
@@ -267,5 +267,6 @@
|
||||
<content>CommonModule.МультиязычностьПереопределяемый</content>
|
||||
<content>SessionParameter.ОсновнойЯзык</content>
|
||||
<content>CommonModule.МультиязычностьПовтИсп</content>
|
||||
<content>CommonForm.КонтрольДинамическогоОбновления</content>
|
||||
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
Reference in new issue
Block a user