Удалить(Индекс) удаляет элемент по индексу. Все элементы после него сдвигаются на одну позицию влево, Количество() уменьшается на 1.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
Индекс | Число | Да | индекс удаляемого элемента, от 0 до ВГраница() |
Возвращает: — (ничего не возвращает).
Массив = Новый Массив;
Массив.Добавить("яблоко");
Массив.Добавить("груша");
Массив.Добавить("вишня");
Массив.Удалить(1);
// Массив: ["яблоко", "вишня"]Удаление по значению — сначала Найти(), потом Удалить:
Индекс = Массив.Найти("яблоко");
Если Индекс <> Неопределено Тогда
Массив.Удалить(Индекс);
КонецЕсли;При удалении нескольких элементов в цикле важно идти с конца к началу — иначе после каждого Удалить индексы оставшихся элементов сдвигаются, и цикл начинает пропускать или задваивать элементы. Для...По... в 1С считает только вперёд, поэтому для обратного хода нужен Пока с ручным декрементом индекса:
Индекс = Массив.ВГраница();
Пока Индекс >= 0 Цикл
Если Массив[Индекс] = Неопределено Тогда
Массив.Удалить(Индекс);
КонецЕсли;
Индекс = Индекс - 1;
КонецЦикла;Чтобы удалить сразу всё — Очистить().
Если в конфигурации подключена БСП — для удаления по значению или по типу не обязательно писать Найти + Удалить или цикл с Пока вручную: в общем модуле ОбщегоНазначенияКлиентСервер уже есть готовые функции для этого, реализованные через безопасный обход с конца, см. БСП: функции для массивов.
← Массивы