X

Удаление выбранных записей из массива 1с

Простой пример кода для удаления определенных записей из массива в программе 1с. Дополнительно создаем еще один массив. Исходный массив перебирается и по условию  в новый массив добавляются элементы, которые необходимо удалить.Затем обходим массив к удалению и по ссылке удаляем элементы из исходного массива.

 мУд = Новый Массив();
 Для Каждого Стр Из МассивСДанными Цикл
  Если (Стр.ТипЭлемента = Перечисления.ТипыЭлементов.НужныйТип) Тогда
   //напрямую здесь удалять нельзя так как собъется итерация цикла поэтому добавляем ссылку в отдельный массив
   мУд.Добавить(Стр);
  КонецЕсли;
 КонецЦикла;
 //теперь приступим непосредственно к удалению
 Для Каждого Стр Из мУд Цикл
  МассивСДанными.Удалить(Стр);
 КонецЦикла;

Есть еще вариант удаления, если перебирать массив не с начала, а с конца, тогда последовательность массива не собьется:

// получаем количство элементов в массиве
 КолЭлМассива = МассивСДанными.Количество(); 
//начинаем перебор
Для Отсчет = 1  По КолЭлМассива Цикл 
получаем элемент массива начиная с конца
     ЭлМассив = МассивСДанными[КолЭлМассива - Отсчет]; 
// проверяем на нужное условие
     Если (ЭлМассив.ТипЭлемента = Перечисления.ТипыЭлементов.НужныйТип) Тогда 
// если условие выполнено удаляем
          МассивСДанными.Удалить(ЭлМассив); 
     КонецЕсли; 

КонецЦикла;

Смотрите также:Проверка отличающихся значений в полях табличной части или таблице значений 1с

Поделиться ссылкой:

Удаление выбранных записей из массива 1с
Категории Обычные формы
Тэги массив
nna: