|
Удаление элементов СпискаЗначений в цикле | ☑ | ||
---|---|---|---|---|
0
BugInBox
03.10.15
✎
13:20
|
Итак. ВРоде банальная процедура, но споткнулся.
Имеется список значений. Нужно удалить из него элементы, которые не содержат слова "КОличество" Когда делаю простым циклом Для Каждого Элемент из СписокЗначений Цикл Если Найти(Элемент, "Количество")<>1 Тогда СписокЗначений.Удалить(Элемент); КонецЕСли; КонецЦикла; То тут не удаляет элемент, если предыдущий был уже удален. Думаю, что проблема в индексе и решил попробовать так Для Индекс = 0 ПО СписокЗначений.Количество()-1 Цикл Если Найти(СписокЗначений[Индекс], "КОличество")<>1 Тогда СписокЗначений.Удалить(СписокЗначений[Индекс]); Индекс=Индекс-1; КонецЕсли; КонецЦикла; То получаю ошибку "Индекс находиться за границами массива. Как правильно организовать настолько банальную задачу? |
|||
1
Lexey_
03.10.15
✎
13:27
|
(0) обратным циклом
|
|||
2
BugInBox
03.10.15
✎
13:28
|
(1) Это как? я просто недавно начал 1Ску
|
|||
3
WebberNSK
03.10.15
✎
13:39
|
(2)
Для Индекс = -СписокЗначений.Количество() + 1 по 0 Цикл ЭлементКоллекции = СписокЗначений[-Индекс]; Если Найти(ЭлементКоллекции, "КОличество")<>1 Тогда СписокЗначений.Удалить(ЭлементКоллекции); КонецЕсли; КонецЦикла; как то так, думаю там у тебя еще ошибка есть |
|||
4
BugInBox
03.10.15
✎
13:41
|
(3) еще ошибка?
|
|||
5
RomanYS
03.10.15
✎
13:41
|
Кстати условие "Найти(ЭлементКоллекции, "КОличество")<>1" = "не начинается с", а вовсе не "не содержит"
|
|||
6
BugInBox
03.10.15
✎
13:43
|
(5) Да, мне именно это и нужно, просто изначально не так выразился.
|
|||
7
BugInBox
03.10.15
✎
13:45
|
(3) Индекс находиться за границами массива
|
|||
8
BugInBox
03.10.15
✎
13:47
|
(3) Хотя нет, это я невнимательный :) Все получилось) Спасибо
А в чем принципиальная разница в прямом и обратном циклах?? |
|||
9
WebberNSK
03.10.15
✎
13:49
|
(8) в том что в одном варианте коллекция обходится с начала, а в другом - с конца...
|
|||
10
torgm
03.10.15
✎
14:27
|
Старая задачка :) 50% кандидатов валились на ней начиная еще с 7.7
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |