Имя: Пароль:
1C
1С v8
Как удалить строки вне отбора в табличной части документа
,
0 pedagog
 
22.09.15
22:06
Есть табличная часть документа "ТОвары". Допустим Установили отбор Цена>=500. Как удалить строки, которые стали не видны, т.е. цена которых <500.
1 RomanYS
 
22.09.15
22:08
обычные формы?
2 pedagog
 
22.09.15
22:10
да
3 фобка
 
22.09.15
22:10
Не отбирать прост,, а удалять
4 RomanYS
 
22.09.15
22:24
(0) поможет ПроверитьСтроку()
5 pedagog
 
22.09.15
22:24
именно удалить нужно
6 Amra
 
22.09.15
22:28
(0) Вроде же ответили в Удалить позиции вне отбора ?
7 фобка
 
22.09.15
22:31
(6) забавно...
8 RomanYS
 
22.09.15
22:32
(7) очень... каждый квартал... поздно вечером...
9 pedagog
 
22.09.15
22:36
задача так и не решена.
10 фобка
 
22.09.15
22:37
(8) ждем в 20х числах декабря теперь
11 фобка
 
22.09.15
22:39
(9) сказали же: выгружаешь результат отбора в тз (любым способом), чистишь тч, заполняешь из тз
12 RomanYS
 
22.09.15
22:40
(9) интересно какие усилия приложил, чтобы ее решить

инд = ТабличнаяЧасть1.Количество();
Пока инд > 0  Цикл
    инд = инд - 1;
    Стр = ТабличнаяЧасть1[инд];
    Если НЕ ЭлементыФормы.ТабличнаяЧасть1.ПроверитьСтроку(Стр) Тогда
        ТабличнаяЧасть1.Удалить(Стр);        
    КонецЕсли;
КонецЦикла;
13 pedagog
 
22.09.15
23:39
спасибо. все заработало.
14 ICWiner
 
23.09.15
06:33
(12) Мир больше никогда не будет прежнем... Когда первый раз столкнулся с задачей про перебор и чистку ТЗ, то пошел по стандартному пути - инкрементировал итератор. В этом случае нельзя удалять строки сразу, ибо тогда строка после удаленной не проверится, только после прохода по всей таблице. Приходилось создавать новый массив, запоминать строки для удаления и потом уже проходя по элементам массива чистить ТЗ. С того времени, все эти года пользовался протаренной дорожкой. Боже, насколько