Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 2.39 KB

DeletingCollectionItem.md

File metadata and controls

51 lines (37 loc) · 2.39 KB

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

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL
OS
Важный Да 5 standard
error

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

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

Например:

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

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

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

Источники

Сниппеты

Экранирование кода

// BSLLS:DeletingCollectionItem-off
// BSLLS:DeletingCollectionItem-on

Параметр конфигурационного файла

"DeletingCollectionItem": false