+ Пронумеровать + тест
This commit is contained in:
parent
7c5b6ee480
commit
ce425712e2
@ -733,3 +733,33 @@
|
||||
Результат = 1 = ЭтотОбъект.Клонировать().Фильтр("Условие = Элемент").Количество();
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция Пронумеровать(Знач ПервыйНомер=0) Экспорт
|
||||
Если ЭтотОбъект.Пустой() Тогда
|
||||
Возврат ЭтотОбъект;
|
||||
КонецЕсли;
|
||||
|
||||
// создание пары Ключ => Значение
|
||||
Набор = Новый Соответствие;
|
||||
КлючиПоПорядку = Новый Массив;
|
||||
|
||||
ЭтотОбъект.СброситьПозицию();
|
||||
Счетчик = ПервыйНомер;
|
||||
Пока ЭтотОбъект.Следующий() Цикл
|
||||
Набор.Вставить(Счетчик, ЭтотОбъект.ТекущийЭлемент());
|
||||
КлючиПоПорядку.Добавить(Счетчик);
|
||||
|
||||
Счетчик = 1 + Счетчик;
|
||||
КонецЦикла;
|
||||
ЭтотОбъект.СброситьПозицию();
|
||||
|
||||
// заполнение новой коллекции
|
||||
ЭтотОбъект.Начать();
|
||||
ЭтотОбъект.Вставить(КлючиПоПорядку.ВГраница(), Неопределено);
|
||||
Для Каждого ТекПара Из Набор Цикл
|
||||
Индекс = КлючиПоПорядку.Найти(ТекПара.Ключ);
|
||||
ЭтотОбъект.Установить(Индекс, ТекПара);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
@ -97,6 +97,8 @@
|
||||
НаборТестов.Добавить("Тест_ВерноЛюбое");
|
||||
НаборТестов.Добавить("Тест_ВерноТолькоОдно");
|
||||
|
||||
НаборТестов.Добавить("Тест_Пронумеровать");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗапускомТеста() Экспорт
|
||||
@ -611,4 +613,13 @@
|
||||
).ЭтоИстина();
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_Пронумеровать() Экспорт
|
||||
Ожидаем.Что(Итератор()
|
||||
.ВзятьИз("АБВГД")
|
||||
.Пронумеровать()
|
||||
.Карта("Результат = СтрШаблон(""%1.%2"", Элемент.Ключ, Элемент.Значение)")
|
||||
.СобратьСтроку(" ")
|
||||
).Равно("0.А 1.Б 2.В 3.Г 4.Д");
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user