Как из массива убрать элемент 1с
« Как стать программистом 1С » Язык 1С » Массив 1С Удалить — удалить значение
Массив 1С Удалить — удалить значение
Метод 1С Массив.Удалить(НомерЯчейки) удаляет новое значение и «ячейку» в которой оно хранилось из массива. Все ячейки после нее сдвигаются в номере -1.
Пример 1С Массив.Удалить:
мЗначений = Новый Массив(3);
мЗначений[0] = 10;
мЗначений[1] = 20;
мЗначений[2] = 30;
//здесь массив выглядит так: 10, 20, 30
мЗначений.Удалить(1);
//здесь массив выглядит так: 10, 30
Проголосовать за этот пост:
УдалитьЗначениеИзМассива (БСП)
Удалить значение из массива. Удаляет одно значение из массива.
// Удаляет одно значение из массива. // // Параметры: // Массив - Массив - массив, из которого необходимо удалить значение; // Значение - Массив - удаляемое значение из массива. // Процедура УдалитьЗначениеИзМассива(Массив, Значение) Экспорт Индекс = Массив.Найти(Значение); Если Индекс <> Неопределено Тогда Массив.Удалить(Индекс); КонецЕсли; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Удаляет одно значение из массива. // // Параметры: // Массив - Массив - массив, из которого необходимо удалить значение; // Значение - Массив - удаляемое значение из массива. // Процедура УдалитьЗначениеИзМассива(Массив, Значение) Экспорт Индекс = Массив.Найти(Значение); Если Индекс <> Неопределено Тогда Массив.Удалить(Индекс); КонецЕсли; КонецПроцедуры /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode ///////////////////////////////////////////////////////////////////////////////////////////////////////
Удаление Элементов Массива По Условию

Не устроил ответ?
Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.
Реклама
Новые вакансии
- Вакансия «Прораммист/разработчи 1С» Екатеринбург от Денис Спеиалист
Вчера в 13:10 - Вакансия Стажер Аналитик от Elizavetashkr
17 ноября 2023 г. - Вакансия Стажер Программист 1С от Elizavetashkr
17 ноября 2023 г.
Как из массива убрать элемент 1с
Если ТипЗнч(ВыбСтрока) = Тип(«Массив») Тогда
КолвоЭлементов = ВыбСтрока.Количество();
Индекс = 0;
Для н = 1 По КолвоЭлементов Цикл
Номенклатура = ВыбСтрока[Индекс].Номенклатура;
ЕдиницаИзмерения = ВыбСтрока[Индекс].ЕдиницаИзмерения;
Цена = ВыбСтрока[Индекс].Цена;
Лимит = ВыбСтрока[Индекс].Лимит;
ВалютаЦены = ВыбСтрока[Индекс].Валюта;
Характеристика = ВыбСтрока[Индекс].ХарактеристикаНоменклатуры;
Склад = ВыбСтрока[Индекс].Склад;
Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
Качество = ВыбСтрока[Индекс].Качество;
Индекс = Индекс + 1;
КонецЦикла
После удаления выборка сбивается.
Если ТипЗнч(ВыбСтрока) = Тип(«Массив») Тогда
КолвоЭлементов = ВыбСтрока.Количество();
Индекс = 0;
Для н = 1 По КолвоЭлементов Цикл
Индекс = КолвоЭлементов — н;
Номенклатура = ВыбСтрока[Индекс].Номенклатура;
ЕдиницаИзмерения = ВыбСтрока[Индекс].ЕдиницаИзмерения;
Цена = ВыбСтрока[Индекс].Цена;
Лимит = ВыбСтрока[Индекс].Лимит;
ВалютаЦены = ВыбСтрока[Индекс].Валюта;
Характеристика = ВыбСтрока[Индекс].ХарактеристикаНоменклатуры;
Склад = ВыбСтрока[Индекс].Склад;
Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
Качество = ВыбСтрока[Индекс].Качество;
Если ТипЗнч(ВыбСтрока) = Тип(«Массив») Тогда
КолвоЭлементов = ВыбСтрока.Количество();
Индекс = 0;
Для н = 1 По КолвоЭлементов Цикл
Номенклатура = ВыбСтрока[Индекс].Номенклатура;
ЕдиницаИзмерения = ВыбСтрока[Индекс].ЕдиницаИзмерения;
Цена = ВыбСтрока[Индекс].Цена;
Лимит = ВыбСтрока[Индекс].Лимит;
ВалютаЦены = ВыбСтрока[Индекс].Валюта;
Характеристика = ВыбСтрока[Индекс].ХарактеристикаНоменклатуры;
Склад = ВыбСтрока[Индекс].Склад;
Серия = Справочники.СерииНоменклатуры.ПустаяСсылка();
Качество = ВыбСтрока[Индекс].Качество;
Индекс = Индекс + 1;
КонецЦикла
Если НужноУдалить Тогда
ВыбСтрока.Удалить(Индекс);
Иначе
Индекс = Индекс+1;
КонецЕси;
Так это получается выборка в обратном порядке.
(4) ессно или см. (3)
ОФФ: чем Вграница() хуже Количество()-1 ?
(6) Много функций надо помнить.
Вграница() есть только у Массива, зато Количество() есть у всех коллекций значений.
Удаление элементов коллекции в цикле
———————————————————————————
При необходимости удаления некоторых элементов из какой-либо коллекции элементов, обладающей свойством неявного сдвига элементов при удалении (например, таблица значений, набор записей регистра и т.д.), необходимо использовать следующий алгоритм:
КолвоЭлементовКоллекции = Коллекция.Количество();
Для ОбратныйИндекс = 1 По КолвоЭлементовКоллекции Цикл
ЭлементКоллекции = Коллекция[КолвоЭлементовКоллекции — ОбратныйИндекс];
Если Тогда
Коллекция.Удалить(ЭлементКоллекции);
КонецЕсли;
Где Коллекция – обрабатываемая коллекция элементов.
предложу екзотический варинт (иногда применяю. ):
МассивКУдалению = Новый Массив();
Для Каждого эл из ТЗ Цикл
Если Тогда
МассивКУдалению.Добавить(Эл);
КонецЕсли;
КонецЦикла;
Для Каждого эл из МассивКУдалению Цикл
ТЗ.Удалить(эл);
КонецЦикла;
