diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\273\320\265\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\273\320\265\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" index eeb7187..7504943 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\273\320\265\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\276\320\273\320\265\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" @@ -235,4 +235,18 @@ КонецФункции +// Удаляет поле из конструктора параметров +// +// Параметры: +// ИмяПоля - Строка - имя поля, возможно передача синонима поля. +// +// Возвращаемое значение: +// Объект.КонструкторПараметров - ссылка на текущий элемент класса <КонструкторПараметров> +// +Функция УдалитьПоле(Знач ИмяПоля) Экспорт + + Возврат РодительКонструктор.УдалитьПоле(ИмяПоля); + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" index 54fa9af..883ed86 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.os" @@ -288,6 +288,39 @@ КонецФункции +// Удаляет поле из конструктора параметров +// +// Параметры: +// ИмяПоля - Строка - имя поля, возможно передача синонима поля. +// +// Возвращаемое значение: +// Объект.КонструкторПараметров - ссылка на текущий элемент класса <КонструкторПараметров> +// +Функция УдалитьПоле(Знач ИмяПоля) Экспорт + + УдаляемоеПоле = ИндексСинонимовПолей[ИмяПоля]; + + Если УдаляемоеПоле = Неопределено Тогда + Возврат ЭтотОбъект; + КонецЕсли; + + ИндексПолей.Удалить(УдаляемоеПоле); + + Возврат ЭтотОбъект; + +КонецФункции + +// Возвращает индекс полей конструктора параметров +// +// Возвращаемое значение: +// Соответствие - текущий индекс полей +// +Функция ПолучитьИндексПолей() Экспорт + + Возврат ИндексПолей; + +КонецФункции + #КонецОбласти #Область Работа_с_чтением_и_выгрузкой_параметров @@ -727,7 +760,8 @@ Возврат СтрШаблон("Некорректный формат даты [%1]", Значение); -КонецФункции // ИсключениеНекорректныйФорматДаты( +КонецФункции + #КонецОбласти Лог = Логирование.ПолучитьЛог("oscript.lib.configor.constructor"); diff --git "a/tests/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_test.os" "b/tests/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_test.os" index 88da652..527fdce 100644 --- "a/tests/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_test.os" +++ "b/tests/\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270_test.os" @@ -14,7 +14,7 @@ ИменаТестов = Новый Массив; ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеПараметровИзКонструктора"); - // ИменаТестов.Добавить("ТестДолжен_ПроверитьВыгрузкуПараметровВКласс"); + ИменаТестов.Добавить("ТестДолжен_ПроверитьУдалениеПоляИзКонструктора"); // ИменаТестов.Добавить("ТестДолжен_ПроверитьПоискИЧтениеФайлаПараметров"); // ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингОпций"); // ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингМассивовОпций"); @@ -103,6 +103,24 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьУдалениеПоляИзКонструктора() Экспорт + + ИндексПараметров = Новый Соответствие; + + КонструкторПараметров = Новый КонструкторПараметров(ИндексПараметров, "ТестовыйКонструктор"); + КонструкторПараметров.ПолеСтрока("Поле1 fiels-1") + .ПолеСтрока("Поле2 fiels-2") + ; + КонструкторПараметров.УдалитьПоле("Поле1") + .УдалитьПоле("fiels-2") + ; + + ИндексПолей = КонструкторПараметров.ПолучитьИндексПолей(); + + Ожидаем.Что(ИндексПолей.Количество(), "Индекс полей должен быть пустым").Равно(0); + +КонецПроцедуры + Процедура ПроверитьРезультат(Значение1, Значение2) Утверждения.ПроверитьРавенство(Значение1, Значение2, "Результат должен совпадать с ожиданиями."); КонецПроцедуры