|
Удаление строк из табличной части |
☑ |
0
galimovmaks
05.11.13
✎
11:39
|
Пишу так
Для Каждого Элемент Из Массив Цикл
Для Каждого ТекСтрока Из ДокументРП_ПоступлениеОплаты.Оплата Цикл
Если Элемент.Ссылка <> ТекСтрока.Договор.НаправлениеДеятельности Тогда
ДокументРП_ПоступлениеОплаты.Оплата.Удалить(ТекСтрока);
КонецЕсли;
КонецЦикла;
надо удалить строки из ТЧ, которые не удовлетворяют требованию. Удаляются не все строки. где ошибка?
|
|
1
Fish
гуру
05.11.13
✎
11:40
|
(0) В логике.
|
|
2
Ненавижу 1С
гуру
05.11.13
✎
11:40
|
в логике кода
|
|
3
Wobland
05.11.13
✎
11:41
|
можно найти нужные строки и поудалять их циклически, можно с конца идти...
|
|
4
PR
05.11.13
✎
11:41
|
Здравствуй, стопицотмиллиардовпервая такая ветка :))
Проходи с конца в начало.
|
|
5
galimovmaks
05.11.13
✎
11:42
|
(4) то есть с конца в начало?
|
|
6
1dvd
05.11.13
✎
11:43
|
(4) прошлая была юбилейная, значит. А мы не отметили...
|
|
7
Wobland
05.11.13
✎
11:43
|
(5) да. с конца в начало
|
|
8
PR
05.11.13
✎
11:44
|
(5) Да
|
|
9
Wobland
05.11.13
✎
11:44
|
(6) 0x2D79883D2001 - не такая уж юбилейная
|
|
10
1dvd
05.11.13
✎
11:47
|
(9) вообще-то 0х5B677ACCC800
|
|
11
Wobland
05.11.13
✎
11:47
|
стопицот - это 100*500?
|
|
12
Wobland
05.11.13
✎
11:48
|
ну и 1 я зря прибавил, раз речь о прошлой
|
|
13
1dvd
05.11.13
✎
11:48
|
стопицотмиллиардовпервая = 100 500 000 000 001
|
|
14
Wobland
05.11.13
✎
11:50
|
сто раз по пицот мильярдов же - 100*500*10^9
|
|
15
1dvd
05.11.13
✎
11:51
|
(14) почитай интернеты. стопицот = 100500
|
|
16
Фокусник
05.11.13
✎
11:52
|
(0) В общем слушай: когда ты делаешь ДокументРП_ПоступлениеОплаты.Оплата.Удалить(ТекСтрока)
при этом текущая строка у тебя становится "следующая" за удаленной. А потом новый цикл ЕЩЕ РАЗ смещает строку на "следующую", поэтому строки после удаленных выпадают из проверки и остаются не удаленные.
Вариантов много, самые очевидные:
1. Делать перебор строк с конца
2. Первым проходом собирать удаляемые строки в массив, вторым проходом удалять строки из массива. (я за этот способ, как более наглядный)
3. И еще куча менее очевидных и более креативных способов
:)
|
|
17
Wobland
05.11.13
✎
11:53
|
(15) а, ну если именно "пицот", то всё может быть ;)
|
|
18
Wobland
05.11.13
✎
11:54
|
а так "100500" воспинимается как строка, как заменитель "стопицот". но смысловая нагрузка выражения имхо как раз "100 по 500"
|
|
19
DexterMorgan
05.11.13
✎
12:30
|
(16) Зануда
|
|
20
Фокусник
05.11.13
✎
13:59
|
(19) Программист обязан быть занудой ;)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший