diff --git a/src/Классы/КомандаКонфигуратион.os b/src/Классы/КомандаКонфигуратион.os index 277d818..1bfaafd 100644 --- a/src/Классы/КомандаКонфигуратион.os +++ b/src/Классы/КомандаКонфигуратион.os @@ -132,7 +132,7 @@ Для Каждого Настройка из ВсеНастройки Цикл - НастройкиПрекоммита = УправлениеНастройками.НастройкиПриложения(Настройка); + НастройкиПрекоммита = УправлениеНастройками.НастройкиПриложения("Precommit4onecСценарии"); Если НЕ ЗначениеЗаполнено(НастройкиПрекоммита) Тогда @@ -208,21 +208,25 @@ Возврат; КонецЕсли; - + Сообщить("ТокДопы" + ТолькоДополнительные); Если ЗначениеЗаполнено(ПутьКаталога) Тогда ПутьКаталога = ФайловыеОперации.ПолучитьНормализованныйОтносительныйПуть(КаталогРепозитория, ПутьКаталога); - УправлениеНастройками.УдалитьНастройкиПриложения(ПутьКаталога); + Если ПутьКаталога = УправлениеНастройками.ИмяБазовойНастройки() Тогда + ВызватьИсключение "Нельзя удалять базовую настройку отдельно сбросьте все локальные настройки приложения"; + КонецЕсли; + УправлениеНастройками.УдалитьНастройку("Precommit4onecСценарии" , ПутьКаталога); - Иначе + ИначеЕсли ТолькоДополнительные Тогда ВсеНастройки = УправлениеНастройками.ПолучитьПроектыКонфигурации(ТолькоДополнительные); Для Каждого Настройка Из ВсеНастройки Цикл - УправлениеНастройками.УдалитьНастройкиПриложения(Настройка); + УправлениеНастройками.УдалитьНастройку("Precommit4onecСценарии" , Настройка); КонецЦикла; - + Иначе + УправлениеНастройками.УдалитьНастройкиПриложения("Precommit4onecСценарии"); КонецЕсли; КонецПроцедуры diff --git a/src/Классы/КомандаПрекоммит.os b/src/Классы/КомандаПрекоммит.os index f3d39b8..3aae57a 100644 --- a/src/Классы/КомандаПрекоммит.os +++ b/src/Классы/КомандаПрекоммит.os @@ -85,7 +85,7 @@ НастройкиПроектов = УправлениеНастройками.ПолучитьПроектыКонфигурации(); НаборНастроек = Новый Соответствие; - Для Каждого ЭлементНастройки з НастройкиПроектов Цикл + Для Каждого ЭлементНастройки Из НастройкиПроектов Цикл Настройка = Новый Структура("СценарииОбработки, НастройкиСценариев"); Настройка.СценарииОбработки = ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, diff --git a/src/Классы/НастройкиРепозитория.os b/src/Классы/НастройкиРепозитория.os index db7db00..bb280eb 100644 --- a/src/Классы/НастройкиРепозитория.os +++ b/src/Классы/НастройкиРепозитория.os @@ -49,7 +49,7 @@ ВызватьИсключение "Не указано имя приложения"; КонецЕсли; - + Сообщить(ИмяПриложения); ИскомыеНастройки = Конфигурация.Получить(ИмяПриложения); Если ИскомыеНастройки = Неопределено Тогда @@ -84,10 +84,10 @@ Функция ПолучитьПроектыКонфигурации(ТолькоДополнительные = Ложь) Экспорт Массив = Новый Массив; - - Для Каждого Элемент из Конфигурация Цикл + Сообщить(НастройкиПриложения(ИмяПоУмолчанию())); + Для Каждого Элемент Из Конфигурация.Получить(ИмяПоУмолчанию()) Цикл - Если ТолькоДополнительные И Элемент.Ключ = ИмяПоУмолчанию() Тогда + Если ТолькоДополнительные И Элемент.Ключ = ИмяБазовойНастройки() Тогда Продолжить; КонецЕсли; @@ -163,7 +163,7 @@ Процедура УдалитьНастройкиПриложения(ИмяПриложения) Экспорт ПроверкаИнициализации(); - + Сообщить(ИмяПриложения); Если ПустаяСтрока(ИмяПриложения) Тогда ВызватьИсключение "Не указано имя приложения"; @@ -176,6 +176,22 @@ КонецПроцедуры // УдалитьНастройкиПриложения() +Процедура УдалитьНастройку(ИмяПриложения, ИмяНастройки) Экспорт + + ПроверкаИнициализации(); + Сообщить(ИмяПриложения); + Если ПустаяСтрока(ИмяПриложения) Тогда + + ВызватьИсключение "Не указано имя приложения"; + + КонецЕсли; + тмп = Конфигурация.Получить(ИмяПриложения); + Тмп.Удалить(ИмяНастройки); + Конфигурация.Вставить(ИмяПриложения,Тмп); + ОбновитьКонфигурационныйФайл(); + +КонецПроцедуры // УдалитьНастройкиПриложения() + /////////////////////////////////////////////////////////////////// // Служебный функционал /////////////////////////////////////////////////////////////////// @@ -227,6 +243,13 @@ Возврат "Precommit4onecСценарии"; КонецФункции + +Функция ИмяБазовойНастройки() Экспорт + + Возврат "General"; + +КонецФункции + /////////////////////////////////////////////////////////////////// // ПриСозданииОбъекта