1CLenta.ru  

Удаление строк табличной части, таблицы значений, массива

Программирование системы     24.12.2016 11:03     4858

При удалении элементов из таких коллекций как: табличная часть, таблица значений, массив, индексы оставшихся элементов пересчитываются. Поэтому если удалять элементы при последовательном переборе в цикле, то результат будет некорректным. Для корректного удаления можно применить обратный перебор или цикл Пока.

Пример удаления элементов из массива циклом Пока.


Процедура УдалитьЭлементы1()

Массив = Новый Массив;
Массив.Добавить("один");
Массив.Добавить("два");
Массив.Добавить("три");

Индекс = 0;
Пока Индекс < Массив.Количество() Цикл

Если Условие = Истина Тогда
Массив.Удалить(Индекс);
Иначе
Индекс = Индекс + 1;
КонецЕсли;

КонецЦикла;

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

Пример удаления элементов из массива обратным перебором.


Процедура УдалитьЭлементы2()

Массив = Новый Массив;
Массив.Добавить("один");
Массив.Добавить("два");
Массив.Добавить("три");

ИндексПоследнего = Массив.Количество() - 1;

Для Индекс = -ИндексПоследнего По 0 Цикл

Если Условие = Истина Тогда
Массив.Удалить(-Индекс);
КонецЕсли;

КонецЦикла;

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

Комментарии (0)