Skip to content

Commit fa6c0db

Browse files
authored
Merge pull request #11 from khorevaa/feature/delete-field
fix #9 Добавление возможности удаления поля из индекса
2 parents 65a7527 + ce5278e commit fa6c0db

File tree

3 files changed

+68
-2
lines changed

3 files changed

+68
-2
lines changed

src/Классы/internal/Классы/ПолеКонструктораПараметров.os

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,4 +235,18 @@
235235

236236
КонецФункции
237237

238+
// Удаляет поле из конструктора параметров
239+
//
240+
// Параметры:
241+
// ИмяПоля - Строка - имя поля, возможно передача синонима поля.
242+
//
243+
// Возвращаемое значение:
244+
// Объект.КонструкторПараметров - ссылка на текущий элемент класса <КонструкторПараметров>
245+
//
246+
Функция УдалитьПоле(Знач ИмяПоля) Экспорт
247+
248+
Возврат РодительКонструктор.УдалитьПоле(ИмяПоля);
249+
250+
КонецФункции
251+
238252
#КонецОбласти

src/Классы/КонструкторПараметров.os

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,39 @@
288288

289289
КонецФункции
290290

291+
// Удаляет поле из конструктора параметров
292+
//
293+
// Параметры:
294+
// ИмяПоля - Строка - имя поля, возможно передача синонима поля.
295+
//
296+
// Возвращаемое значение:
297+
// Объект.КонструкторПараметров - ссылка на текущий элемент класса <КонструкторПараметров>
298+
//
299+
Функция УдалитьПоле(Знач ИмяПоля) Экспорт
300+
301+
УдаляемоеПоле = ИндексСинонимовПолей[ИмяПоля];
302+
303+
Если УдаляемоеПоле = Неопределено Тогда
304+
Возврат ЭтотОбъект;
305+
КонецЕсли;
306+
307+
ИндексПолей.Удалить(УдаляемоеПоле);
308+
309+
Возврат ЭтотОбъект;
310+
311+
КонецФункции
312+
313+
// Возвращает индекс полей конструктора параметров
314+
//
315+
// Возвращаемое значение:
316+
// Соответствие - текущий индекс полей
317+
//
318+
Функция ПолучитьИндексПолей() Экспорт
319+
320+
Возврат ИндексПолей;
321+
322+
КонецФункции
323+
291324
#КонецОбласти
292325

293326
#Область Работа_с_чтением_и_выгрузкой_параметров
@@ -727,7 +760,8 @@
727760

728761
Возврат СтрШаблон("Некорректный формат даты [%1]", Значение);
729762

730-
КонецФункции // ИсключениеНекорректныйФорматДаты(
763+
КонецФункции
764+
731765
#КонецОбласти
732766

733767
Лог = Логирование.ПолучитьЛог("oscript.lib.configor.constructor");

tests/КонструкторНастройки_test.os

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
ИменаТестов = Новый Массив;
1515

1616
ИменаТестов.Добавить("ТестДолжен_ПроверитьЧтениеПараметровИзКонструктора");
17-
// ИменаТестов.Добавить("ТестДолжен_ПроверитьВыгрузкуПараметровВКласс");
17+
ИменаТестов.Добавить("ТестДолжен_ПроверитьУдалениеПоляИзКонструктора");
1818
// ИменаТестов.Добавить("ТестДолжен_ПроверитьПоискИЧтениеФайлаПараметров");
1919
// ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингОпций");
2020
// ИменаТестов.Добавить("ТестДолжен_ПроверитьПарсингМассивовОпций");
@@ -103,6 +103,24 @@
103103

104104
КонецПроцедуры
105105

106+
Процедура ТестДолжен_ПроверитьУдалениеПоляИзКонструктора() Экспорт
107+
108+
ИндексПараметров = Новый Соответствие;
109+
110+
КонструкторПараметров = Новый КонструкторПараметров(ИндексПараметров, "ТестовыйКонструктор");
111+
КонструкторПараметров.ПолеСтрока("Поле1 fiels-1")
112+
.ПолеСтрока("Поле2 fiels-2")
113+
;
114+
КонструкторПараметров.УдалитьПоле("Поле1")
115+
.УдалитьПоле("fiels-2")
116+
;
117+
118+
ИндексПолей = КонструкторПараметров.ПолучитьИндексПолей();
119+
120+
Ожидаем.Что(ИндексПолей.Количество(), "Индекс полей должен быть пустым").Равно(0);
121+
122+
КонецПроцедуры
123+
106124
Процедура ПроверитьРезультат(Значение1, Значение2)
107125
Утверждения.ПроверитьРавенство(Значение1, Значение2, "Результат должен совпадать с ожиданиями.");
108126
КонецПроцедуры

0 commit comments

Comments
 (0)