Skip to content

Commit 5e40dcb

Browse files
committed
Finish 0.6.0
2 parents 759683f + c5ec0d9 commit 5e40dcb

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,8 @@
319319
ИмяПоля = КлючЗначение.Ключ;
320320
Значение = КлючЗначение.Значение;
321321

322-
Если НадоСоздатьПоляНастройки(ИмяПоля) Тогда
322+
Если ЗначениеПоляЗаполнено(Значение)
323+
ИЛИ НадоСоздатьПоляНастройки(ИмяПоля) Тогда
323324

324325
ЗначениеКлюча = ЗначениеВСтруктуру(Значение);
325326

@@ -440,6 +441,26 @@
440441

441442
КонецФункции
442443

444+
Функция ЗначениеПоляЗаполнено(Знач ЗначениеПоля)
445+
446+
ТипЗначенияПоля = ТипЗнч(ЗначениеПоля);
447+
448+
Если ЭтоПростойТип(ТипЗначенияПоля) Тогда
449+
450+
Возврат ЗначениеЗаполнено(ЗначениеПоля);
451+
452+
ИначеЕсли ТипЗначенияПоля = Тип("Массив") Тогда
453+
454+
Возврат ЗначениеПоля.Количество() > 1;
455+
456+
ИначеЕсли ТипЗначенияПоля = Тип("КонструкторПараметров") Тогда
457+
458+
Возврат ЗначениеПоля.Использован();
459+
460+
КонецЕсли;
461+
462+
КонецФункции
463+
443464
Функция НайтиПолеВИндексеПолей(Знач ИмяПоля)
444465

445466
ИмяПоляВИндексе = ИндексСинонимовПолей[ИмяПоля];

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
СтруктураПараметров = Новый Соответствие();
193193
СтруктураПараметров.Вставить("--custom-feild", "ПроизвольноеПоле");
194194
СтруктураПараметров.Вставить("Поле", "ЗаданноеПоле");
195+
СтруктураПараметров.Вставить("ПолеОбъект3", Новый Соответствие());
195196

196197
МенеджерПараметров = Новый МенеджерПараметров();
197198
Конструктор = МенеджерПараметров.КонструкторПараметров();
@@ -202,11 +203,15 @@
202203
.ПолеСтрока("Ключ2")
203204
;
204205

205-
Конструктор.ПолеОбъект("ПолеОбъект", ПараметрСоответствие, Ложь);
206+
Конструктор.ПолеОбъект("ПолеОбъект1", ПараметрСоответствие, Ложь);
207+
Конструктор.ПолеОбъект("ПолеОбъект2", ПараметрСоответствие);
208+
Конструктор.ПолеОбъект("ПолеОбъект3", ПараметрСоответствие, Ложь);
206209

207210
Конструктор.ИзСоответствия(СтруктураПараметров);
208211
СтруктураПроверки = Конструктор.ВСтруктуру();
209-
Ожидаем.Что(СтруктураПроверки.Свойство("ПолеОбъект"), "Поле должно отсутствовать").Равно(Ложь);
212+
Ожидаем.Что(СтруктураПроверки.Свойство("ПолеОбъект1"), "Поле должно отсутствовать").Равно(Ложь);
213+
Ожидаем.Что(СтруктураПроверки.Свойство("ПолеОбъект2"), "Поле должно присутствовать").Равно(Истина);
214+
Ожидаем.Что(СтруктураПроверки.Свойство("ПолеОбъект3"), "Поле должно присутствовать").Равно(Истина);
210215
ПроверитьРезультат(СтруктураПараметров["Поле"], СтруктураПроверки["Поле"]);
211216

212217
КонецПроцедуры

0 commit comments

Comments
 (0)