From f29e0c2423226f00c6aaa1311e6b49117d0c706b Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Sun, 12 Jan 2025 02:56:58 +0300 Subject: [PATCH] =?UTF-8?q?fix(cli):=20=D0=9E=D1=87=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cli/src/core/Классы/КомандаПриложения.os | 13 ++++++++++ lib/cli/src/core/Классы/ПараметрКоманды.os | 25 +++++++++++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/lib/cli/src/core/Классы/КомандаПриложения.os b/lib/cli/src/core/Классы/КомандаПриложения.os index 5107ec9..77e342b 100644 --- a/lib/cli/src/core/Классы/КомандаПриложения.os +++ b/lib/cli/src/core/Классы/КомандаПриложения.os @@ -505,6 +505,7 @@ Подчиненнаякоманда.КомандыРодители = КомандыРодителиДляПодчиненной; КонецЦикла; + ОчиститьЗначенияПараметров(); ДобавитьОпцииВИндекс(); ДобавитьАргументыВИндекс(); @@ -808,6 +809,18 @@ КонецФункции +Процедура ОчиститьЗначенияПараметров() + + Для Каждого Опция Из Опции Цикл + Опция.Ключ.Очистить() + КонецЦикла; + + Для Каждого Аргумент Из Аргументы Цикл + Аргумент.Ключ.Очистить() + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область Работа_с_индексом_опций_и_аргументов diff --git a/lib/cli/src/core/Классы/ПараметрКоманды.os b/lib/cli/src/core/Классы/ПараметрКоманды.os index 0764c0c..8c1f45a 100644 --- a/lib/cli/src/core/Классы/ПараметрКоманды.os +++ b/lib/cli/src/core/Классы/ПараметрКоманды.os @@ -55,6 +55,7 @@ Перем ТипПараметра; // Опция и аргумент Перем ТипЗначенияПараметра; // Произвольный класс реализуемые несколько обязательных методов Перем РазделительМассива; // Строка +Перем ЗначениеНачальное; // Произвольный Перем Лог; @@ -67,6 +68,7 @@ Синонимы = СтрРазделить(ПолноеИмя, " ", Ложь); Имя = Синонимы[0]; Значение = ЗначениеПоУмолчанию; + ЗначениеНачальное = ЗначениеПоУмолчанию; Описание = ОписаниеПараметра; ПеременнаяОкружения = ПеременнаяОкруженияПараметра; СкрытьЗначение = Ложь; @@ -114,16 +116,27 @@ КонецФункции -// Процедура очищает, Значение параметра, для типа Массив -// +// Процедура очищает значение параметра Процедура Очистить() Экспорт - Если Не ЭтоМассив() Тогда - Возврат; + Если ЭтоМассив() Тогда + Значение.Очистить(); + ИначеЕсли Значение <> ЗначениеНачальное Тогда + ТипЗначенияПоУмолчанию = ТипЗнч(ЗначениеНачальное); + + Если ТипОпции = ТипЗначенияПоУмолчанию Тогда + Значение = ЗначениеНачальное; + ИначеЕсли ТипОпции = Тип("Булево") Тогда + Значение = Ложь; + ИначеЕсли ТипОпции = Тип("Число") Тогда + Значение = 0; + ИначеЕсли ТипОпции = Тип("Дата") Тогда + Значение = '00010101'; + Иначе + Значение = ""; + КонецЕсли КонецЕсли; - Значение.Очистить(); - КонецПроцедуры // Возвращает строковое представление значения параметра