Вход | Регистрация


Удалить строки таблицы значений по условию на форме.

Удалить строки таблицы значений по условию  на форме.
Я
   tabarigen
 
29.12.18 - 12:40
Всем добра.
Пробую удалить строки ТЗ  на УФ. По какому либо условию.
Пока делаю так, сначала нахожу все строки которые не попадают под мое условие, помещаю в новую ТЗ, потом эту временную ТЗ загружаю в исходную ТЗ.
а хотелось бы как то так.

&НаСервере
Процедура ОчиститьНаСервере()
    Для Каждого стр из Объект.Таблица Цикл
        Если стр.Цена < 1000 Тогда
            индекс = стр.ПолучитьИдентификатор();
            Объект.Таблица.Удалить(индекс);
        КонецЕсли;    
    КонецЦикла;    
КонецПроцедуры

&НаКлиенте
Процедура Очистить(Команда)
    ОчиститьНаСервере();
КонецПроцедуры

Но так не получается, потому, что после каждой итерации удаления индекс у строки ТЗ меняется, и соответственно возникает чехарда..
 
 
   Галахад
 
1 - 29.12.18 - 12:42
Удалять надо с конца.
   lxs
 
2 - 29.12.18 - 12:43
В массив загоняй строки:

Массив.Добавить(Стр);

А затем:

Для каждого ЭлементМассива Из Массив Цикл
   Объект.Таблица.Удалить(ЭлементМассива);
КонецЦикла;
   lxs
 
3 - 29.12.18 - 12:43
(1) ректальное программирование.. ну-ну
   tabarigen
 
4 - 29.12.18 - 12:46
Еще пробуют так.
Строки = Таблица.НайтиСтроки(Новый Структура("Цена",0));

Интересно могу ли я в параметрах отбора задать условие меньше 1000
   tabarigen
 
5 - 29.12.18 - 12:46
ща гляну как сп
   IOANNscrp
 
6 - 29.12.18 - 12:46
сч=              Объект.Таблица.Количество()-1;
Пока сч>=0 цикл
  Если Объект.Таблица[сч].Цена <1000 тогда
    док.Товары.Удалить(сч);
  КонецЕслИ;    
  сч=сч-1;
Конеццикла;
   Галахад
 
7 - 29.12.18 - 12:49
(3) Чо это?
   lxs
 
8 - 29.12.18 - 12:50
(7) То, что предлагаешь ты..
   lxs
 
9 - 29.12.18 - 12:50
(4) В структуре ты можешь указать какое-то конкретное значение. Вариант твой конечно жизнеспособен, но именно с таким нюансом.
   tabarigen
 
10 - 29.12.18 - 12:56
(1) так что ль
&НаСервере
Процедура ОчиститьНаСервере()    
    
    Для Индекс = -Объект.Таблица.Количество()+1 По 0 Цикл
        Если Объект.Таблица[-Индекс].Цена < 1000 Тогда
            Объект.Таблица.Удалить(-Индекс);
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

&НаКлиенте
Процедура Очистить(Команда)
    ОчиститьНаСервере();
КонецПроцедуры
 
 Рекламное место пустует
   IOANNscrp
 
11 - 29.12.18 - 12:56
Увидел минусы, дальше не стал смотреть))
   tabarigen
 
12 - 29.12.18 - 12:58
(11) ну ладно...
потому и спрашиваю, как
   tabarigen
 
13 - 29.12.18 - 12:58
лучше
   IOANNscrp
 
14 - 29.12.18 - 12:59
убрать минусы где обращаетесь к элементу по индексу
   tabarigen
 
15 - 29.12.18 - 12:59
(14) зато работает. да и  судя по всему, многие так и делают.
   IOANNscrp
 
16 - 29.12.18 - 13:00
Виноват
   tabarigen
 
17 - 29.12.18 - 13:01
(16) хватит агрить =[
   IOANNscrp
 
18 - 29.12.18 - 13:04
(17) не, серьезно, я виноват, не внимательно код посмотрел

Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует