diff --git a/src/Итератор/Ext/ObjectModule.bsl b/src/Итератор/Ext/ObjectModule.bsl index 08161a9..919ec7a 100644 --- a/src/Итератор/Ext/ObjectModule.bsl +++ b/src/Итератор/Ext/ObjectModule.bsl @@ -251,6 +251,13 @@ ЭтотОбъект.СброситьПозицию(); Возврат ЭтотОбъект; КонецФункции +Функция НачатьСРазмером(Знач Размер) Экспорт + ЭтотОбъект.Начать(); + Если 0 < Размер Тогда + ЭтотОбъект.Вставить(Размер - 1, Неопределено); + КонецЕсли; + Возврат ЭтотОбъект; +КонецФункции Функция НачатьС(_Значение) Экспорт Возврат ЭтотОбъект.Начать().Добавить(_Значение); КонецФункции @@ -770,8 +777,7 @@ КонецЦикла; // заполнение новой коллекции - ЭтотОбъект.Начать(); - ЭтотОбъект.Вставить(КлючиПоПорядку.ВГраница(), Неопределено); + ЭтотОбъект.НачатьСРазмером(КлючиПоПорядку.Количество()); Для Каждого ТекПара Из Набор Цикл Индекс = КлючиПоПорядку.Найти(ТекПара.Ключ); ЭтотОбъект.Установить(Индекс, ТекПара); diff --git a/test/Тест_Итератор/Ext/ObjectModule.bsl b/test/Тест_Итератор/Ext/ObjectModule.bsl index 9791593..6aa65e3 100644 --- a/test/Тест_Итератор/Ext/ObjectModule.bsl +++ b/test/Тест_Итератор/Ext/ObjectModule.bsl @@ -23,6 +23,7 @@ НаборТестов.Добавить("Тест_ОтклБезопасныйРежим"); НаборТестов.Добавить("Тест_Начать"); + НаборТестов.Добавить("Тест_НачатьСРазмером"); НаборТестов.Добавить("Тест_НачатьС"); НаборТестов.Добавить("Тест_ВзятьИз"); НаборТестов.Добавить("Тест_РазделитьСтроку"); @@ -174,6 +175,10 @@ Ожидаем.Что(Итератор.Пустой()).ЭтоИстина(); КонецПроцедуры +Процедура Тест_НачатьСРазмером() Экспорт + Ожидаем.Что(Итератор().НачатьСРазмером(42).Количество()).Равно(42); + Ожидаем.Что(Итератор().НачатьСРазмером(1).Первый()).ЭтоНеопределено(); +КонецПроцедуры Процедура Тест_НачатьС() Экспорт Итератор = Итератор().НачатьС("тест");