Имя: Пароль:
1C
1С v8
Удаление отбора из ПостроителяОтчета.Не все удаляются отборы
0 serg-lom89
 
09.11.15
12:32
В отборе сразу добавляю несколько полей отбора "Контрагент"(построитель отчета.Отбор)

Затем  программно удаляю эти поля при очистке на форме

    Для каждого Строка Из ПостроительОтчета.Отбор Цикл
        
        Если Строка.Имя <>ОтборКонтрагентДляОтбораНастройки тогда
            Продолжить;
        КонецЕсли;
        
        ПостроительОтчета.Отбор.Удалить(ПостроительОтчета.Отбор.Индекс(ПостроительОтчета.Отбор.Найти(ОтборКонтрагентДляОтбораНастройки)));

        
        
    КонецЦикла;


Но получется что по данному полю не все отборы "Контрагент" удаляются...Походу из за того что сбивается выборка..
Подскажите как обойти этот момент?
1 VikingKosmo
 
09.11.15
12:33
Выбирать в обратном порядке?
2 cw014
 
09.11.15
12:34
(1) +1
3 cw014
 
09.11.15
12:35
500 р и пишу готовый рабочий код
4 runoff_runoff
 
09.11.15
12:45
а чо они не сделали функцию Очистить()..
5 cw014
 
09.11.15
12:46
(4) К великому сожалению для отбора таки и не сделали
6 VikingKosmo
 
09.11.15
12:47
для того, что бы все желающие могли задавать вопросы на Мисте
7 serg-lom89
 
09.11.15
13:38
Может кому пригодиться

    Отбор = ПостроительОтчета.Отбор;
    
    Индекс = Отбор.Количество() - 1;
    Пока Индекс >= 0 Цикл
        ОтборНастройки = Отбор.Найти(ОтборКонтрагентДляОтбораНастройки);
        Если ОтборНастройки<>Неопределено Тогда
            ПостроительОтчета.Отбор.Удалить(ПостроительОтчета.Отбор.Индекс(ПостроительОтчета.Отбор.Найти(ОтборКонтрагентДляОтбораНастройки)));
        КонецЕсли;
            
        
        Индекс = Индекс - 1;
        
        
    КонецЦикла;
8 cw014
 
09.11.15
14:32
Ужас какой
9 cw014
 
09.11.15
14:32
Поверь, это больше никому не пригодится
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс