diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
index b57e7f2a8..5cdf86e76 100644
--- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl
@@ -16,7 +16,7 @@
Если ИменаПараметровСеанса = Неопределено
Или ИменаПараметровСеанса.Найти("УстановленныеРасширения") <> Неопределено Тогда
- ПараметрыСеанса.УстановленныеРасширения = УстановленныеРасширения();
+ ПараметрыСеанса.УстановленныеРасширения = УстановленныеРасширения(Истина);
УстановленныеПараметры.Добавить("УстановленныеРасширения");
КонецЕсли;
@@ -24,7 +24,7 @@
Или ИменаПараметровСеанса.Найти("ПодключенныеРасширения") <> Неопределено Тогда
Расширения = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные);
- ПараметрыСеанса.ПодключенныеРасширения = КонтрольныеСуммыРасширений(Расширения);
+ ПараметрыСеанса.ПодключенныеРасширения = КонтрольныеСуммыРасширений(Расширения, "БезопасныйРежим");
УстановленныеПараметры.Добавить("ПодключенныеРасширения");
КонецЕсли;
@@ -59,7 +59,7 @@
// * Основные - Строка - контрольная сумма всех расширений, кроме исправительных расширений.
// * Исправления - Строка - контрольная сумма всех исправительных расширений.
//
-Функция УстановленныеРасширения() Экспорт
+Функция УстановленныеРасширения(ПриЗапуске = Ложь) Экспорт
Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
@@ -70,7 +70,35 @@
Неразделенные = Ложь;
КонецЕсли;
- Расширения = РасширенияКонфигурации.Получить();
+ РасширенияБазыДанных = РасширенияКонфигурации.Получить();
+ Если ПриЗапуске Тогда
+ РасширенияПриЗапуске = Новый Соответствие;
+ АктивныеРасширения = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансАктивные);
+ Для Каждого Расширение Из АктивныеРасширения Цикл
+ РасширенияПриЗапуске.Вставить(КонтрольнаяСуммаРасширения(Расширение), Расширение);
+ КонецЦикла;
+ НеподключенныеРасширения = РасширенияКонфигурации.Получить(, ИсточникРасширенийКонфигурации.СеансОтключенные);
+ Для Каждого Расширение Из НеподключенныеРасширения Цикл
+ РасширенияПриЗапуске.Вставить(КонтрольнаяСуммаРасширения(Расширение), Расширение);
+ КонецЦикла;
+ ДобавленныеРасширения = Новый Соответствие;
+ Расширения = Новый Массив;
+ Для Каждого Расширение Из РасширенияБазыДанных Цикл
+ КонтрольнаяСумма = КонтрольнаяСуммаРасширения(Расширение);
+ РасширениеПриЗапуске = РасширенияПриЗапуске.Получить(КонтрольнаяСумма);
+ Если РасширениеПриЗапуске <> Неопределено Тогда
+ ДобавленныеРасширения.Вставить(КонтрольнаяСумма, Истина);
+ Расширения.Добавить(РасширениеПриЗапуске);
+ КонецЕсли;
+ КонецЦикла;
+ Для Каждого ОписаниеРасширения Из РасширенияПриЗапуске Цикл
+ Если ДобавленныеРасширения.Получить(ОписаниеРасширения.Ключ) = Неопределено Тогда
+ Расширения.Добавить(ОписаниеРасширения.Значение);
+ КонецЕсли;
+ КонецЦикла;
+ Иначе
+ Расширения = РасширенияБазыДанных;
+ КонецЕсли;
Основные = Новый Массив;
Исправления = Новый Массив;
@@ -94,8 +122,8 @@
УстановленныеРасширения = Новый Структура;
УстановленныеРасширения.Вставить("Основные", КонтрольныеСуммыРасширений(Основные));
УстановленныеРасширения.Вставить("Исправления", КонтрольныеСуммыРасширений(Исправления));
- УстановленныеРасширения.Вставить("ОсновныеСостояние", КонтрольныеСуммыРасширений(Основные, Истина));
- УстановленныеРасширения.Вставить("ИсправленияСостояние", КонтрольныеСуммыРасширений(Исправления, Истина));
+ УстановленныеРасширения.Вставить("ОсновныеСостояние", КонтрольныеСуммыРасширений(Основные, "Все"));
+ УстановленныеРасширения.Вставить("ИсправленияСостояние", КонтрольныеСуммыРасширений(Исправления, "Все"));
Возврат Новый ФиксированнаяСтруктура(УстановленныеРасширения);
@@ -491,7 +519,6 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось удалить расширение ""%1"" по причине:
- |
|%2'"),
УдаляемоеРасширение,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
@@ -508,7 +535,6 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После удаления, при обработке случая удаления всех расширений, произошла ошибка:
- |
|%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки;
КонецЕсли;
@@ -520,7 +546,6 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'После удаления, при подготовке оставшихся расширений к работе, произошла ошибка:
- |
|%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки;
КонецЕсли;
@@ -592,19 +617,12 @@
// Возвращаемое значение:
// Строка - строки вида "<Имя расширения> (<Версия расширения>) <Контрольная сумма>".
//
-Функция КонтрольныеСуммыРасширений(Расширения, УчитыватьСостояниеРасширений = Ложь)
+Функция КонтрольныеСуммыРасширений(Расширения, СвойстваПодключения = "")
Список = Новый СписокЗначений;
Для Каждого Расширение Из Расширения Цикл
- КонтрольнаяСумма = Расширение.Имя + " (" + Расширение.Версия + ") " + Base64Строка(Расширение.ХешСумма);
- Если УчитыватьСостояниеРасширений Тогда
- КонтрольнаяСумма = КонтрольнаяСумма
- + " Активно:" + Расширение.Активно
- + " БезопасныйРежим:" + Расширение.БезопасныйРежим
- + " ПередаватьВПодчиненныеУзлыРИБ:" + Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе;
- КонецЕсли;
- Список.Добавить(КонтрольнаяСумма);
+ Список.Добавить(КонтрольнаяСуммаРасширения(Расширение, СвойстваПодключения));
КонецЦикла;
Если Список.Количество() <> 0 Тогда
@@ -621,6 +639,25 @@
КонецФункции
+// Для функций КонтрольныеСуммыРасширений и УстановленныеРасширения.
+Функция КонтрольнаяСуммаРасширения(Расширение, СвойстваПодключения = "")
+
+ КонтрольнаяСумма = Расширение.Имя + " (" + Расширение.Версия + ") " + Base64Строка(Расширение.ХешСумма);
+
+ Если ЗначениеЗаполнено(СвойстваПодключения) Тогда
+ КонтрольнаяСумма = КонтрольнаяСумма + " БезопасныйРежим:" + Расширение.БезопасныйРежим;
+ КонецЕсли;
+
+ Если СвойстваПодключения = "Все" Тогда
+ КонтрольнаяСумма = КонтрольнаяСумма
+ + " ПередаватьВПодчиненныеУзлыРИБ:" + Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе
+ + " Активно:" + Расширение.Активно;
+ КонецЕсли;
+
+ Возврат КонтрольнаяСумма;
+
+КонецФункции
+
// Возвращает текущую версию расширений.
// Для поиска версии используется описание подключенных расширений.
//
@@ -787,7 +824,8 @@
// Для процедуры ЗарегистрироватьИспользованиеВерсииРасширений.
Процедура ОбновитьПоследнююВерсиюРасширений(ВерсияРасширений)
- Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда
+ Если КонфигурацияБазыДанныхИзмененаДинамически()
+ Или РасширенияИзмененыДинамически() Тогда
Возврат;
КонецЕсли;
diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form
index 450f98c71..941bec232 100644
--- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form
+++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Form.form
@@ -5396,7 +5396,7 @@
32
ru
- Удалить данные версии файла
+ Удалить данные файла