Перейти к содержанию
bslls:DeletingCollectionItem

Удаление элемента при обходе коллекции посредством оператора "Для каждого ... Из ... Цикл" (DeletingCollectionItem)

  • Тип: Ошибка
  • Важность: Важный
  • Включена по умолчанию: Да
  • Теги: standard, error

Описание диагностики

Не следует непосредственно удалять элементы коллекции при ее обходе через синтаксическую конструкцию Для каждого ... Из ... Цикл. Т.к. при удалении элемента сдвигается индекс следующего элемента.

Например:

Для Каждого Элемент Из Коллекция Цикл
   Коллекция.Удалить(Элемент)
КонецЦикла;

Как вариант удаляйте элементы с конца:

ТекущийИндекс = Числа.ВГраница();
Пока ТекущийИндекс >= 0 Цикл
    Если Числа[ТекущийИндекс] < 10 Тогда
        Числа.Удалить(ТекущийИндекс);
    КонецЕсли;
    ТекущийИндекс = ТекущийИндекс  1;
КонецЦикла;

Источники

Соответствие стандартам

Нет подтверждённых связей со стандартами.

Источник диагностики