Имя: Пароль:
1C
1С v8
ТЗ - удалить строки по отбору
0 spectre1978
 
18.02.14
09:12
Добрый день!

Как красивее всего удалить из ТЗ строки, которые соответствуют некоторому отбору (структура)? Есть метод НайтиСтроки () по отбору, но нет соответствующего метода УдалитьСтроки ().
1 ДенисЧ
 
18.02.14
09:12
Найти строки возвращает массив строк. Циклом его обойди и удали каждую смтроку
2 zulu_mix
 
18.02.14
09:14
запросом выбрать только нужные и ввалить обратно в эту же ТЗ
3 spectre1978
 
18.02.14
09:14
(1) ну это ежу понятно. А изящнее никак?
4 Wobland
 
18.02.14
09:16
(3) ТабличечкаЗначеньиц.Удалить(ОчереднаяНайденнаяСтрочечкаТабличечки)
5 spectre1978
 
18.02.14
09:16
(2) выбрать только нужные нельзя, нет внятного критерия. Критерий есть только на ненужные.
6 Wobland
 
18.02.14
09:16
(5) у нас ненужная - это НЕ нужная. а у вас?
7 Рэйв
 
18.02.14
09:17
(5) а знак <> в условии уже отменили?
8 spectre1978
 
18.02.14
09:17
(4) Ясно, значит, других вариантов нет. ОК.
9 Рэйв
 
18.02.14
09:17
(6)ну или так.
10 zulu_mix
 
18.02.14
09:18
(5) нужные = НЕ ненужные
11 TeMochkiN
 
18.02.14
09:18
ТЗ = Новый ТаблицаЗначений;
//Заполняем ТЗ чем-либо
Отбор = Новый Структура;
//Заполняем структуру отбора
МассивУдаляемыхСтрок = ТЗ.НайтиСтроки(Отбор);
Для Каждого ЭлементМассива Из МассивУдаляемыхСтрок Цикл
    ТЗ.Удалить(ЭлементМассива);
КонецЦикла;
12 spectre1978
 
18.02.14
09:19
(11) Делаю так. Вопрос закрыт, спасибо.
13 Рэйв
 
18.02.14
09:21
(12)Можно было сказать спасибо еще на первом посту:-)
14 TeMochkiN
 
18.02.14
09:21
(13) чувак думал, что можно изящнее
15 TeMochkiN
 
18.02.14
09:23
Наверно, он хотел

ТЗ.Удалить(ТЗ.НайтиСтроки(Отбор))
16 Рэйв
 
18.02.14
09:24
(15)Ну, если было бы наследование в 1С, то можно было бы:-) А так - пусть довольствуется тем что есть.