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

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

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

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

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

А затем:

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

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

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