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