Имя: Пароль:
1C
 
Внешняя обработка по удаление срок с пустой ценой из документа.
0 tatoshka0403
 
16.12.14
11:39
Написал обработку, интересно работает удаляет не все пустые строки, а только часть, если нажать 5-7 то "вычищает" все ок.
Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт
                                                       
                                                 
    
    Для каждого СтрТабличнойЧасти Из Объект.Товары Цикл
        
        Если СтрТабличнойЧасти.ЦенаВРознице<>0 тогда
        
    Иначе
        
        Объект.Товары.Удалить(СтрТабличнойЧасти);
    КонецЕсли
    
        
    КонецЦикла;
    
КонецПроцедуры
1 vicof
 
16.12.14
11:40
Очень интересно. Только кто-то не в курсе про удаление из таблиц значений.
2 tatoshka0403
 
16.12.14
11:42
(1) Не понял...
3 vicof
 
16.12.14
11:43
(2) Индекс смещается. Или с конца удаляй, или по отбору.
4 Симпатяга
 
16.12.14
11:44
Идет смещение индекса. Поэтому пропускает часть строк.
Можно в массив засунуть удаляемые строки, а потом перебрать массив, и удалят из ТЗ как вариант
5 DmitriyDI
 
16.12.14
11:45
(0)

Для а=1 по Объект.Товары.Количество() Цикл
СтрТабличнойЧасти = Объект.Товары[Объект.Товары.Количество()-а]
КонецЦикла;
6 pessok
 
16.12.14
11:46
(3) лучше по отбору, а то потом начнутся другие вопросы...

МассивКУдалению = Новый Массив();
Для каждого СтрТабличнойЧасти Из Объект.Товары Цикл
        
        Если СтрТабличнойЧасти.ЦенаВРознице=0 тогда
МассивКУдалению.Добавить(СтрТабличнойЧасти);
КонецЦикла

Для Каждого Эл Из МассивКУдалению ЦИкл
Объект.Товары.Удалить(Эл)
КонецЦикла
7 tatoshka0403
 
16.12.14
11:49
(3)(4)(5)(6) Всем спасибо.
8 DmitriyDI
 
16.12.14
11:57
(5) только тут не правильно так надо:
КоличествоСтрок = Объект.Товары.Количество();
Для а=1 по КоличествоСтрок   Цикл
СтрТабличнойЧасти = Объект.Товары[КоличествоСтрок-а];
КонецЦикла;
Закон Брукера: Даже маленькая практика стоит большой теории.