+ Пронумеровать + тест

This commit is contained in:
2022-09-01 14:38:21 +03:00
parent 7c5b6ee480
commit ce425712e2
2 changed files with 41 additions and 0 deletions

View File

@@ -733,3 +733,33 @@
Результат = 1 = ЭтотОбъект.Клонировать().Фильтр("Условие = Элемент").Количество();
Возврат Результат;
КонецФункции
Функция Пронумеровать(Знач ПервыйНомер=0) Экспорт
Если ЭтотОбъект.Пустой() Тогда
Возврат ЭтотОбъект;
КонецЕсли;
// создание пары Ключ => Значение
Набор = Новый Соответствие;
КлючиПоПорядку = Новый Массив;
ЭтотОбъект.СброситьПозицию();
Счетчик = ПервыйНомер;
Пока ЭтотОбъект.Следующий() Цикл
Набор.Вставить(Счетчик, ЭтотОбъект.ТекущийЭлемент());
КлючиПоПорядку.Добавить(Счетчик);
Счетчик = 1 + Счетчик;
КонецЦикла;
ЭтотОбъект.СброситьПозицию();
// заполнение новой коллекции
ЭтотОбъект.Начать();
ЭтотОбъект.Вставить(КлючиПоПорядку.ВГраница(), Неопределено);
Для Каждого ТекПара Из Набор Цикл
Индекс = КлючиПоПорядку.Найти(ТекПара.Ключ);
ЭтотОбъект.Установить(Индекс, ТекПара);
КонецЦикла;
Возврат ЭтотОбъект;
КонецФункции