|
Удаление строк из тч документа | ☑ | ||
---|---|---|---|---|
0
Простенький вопросик
20.12.11
✎
09:19
|
написал такой код. вроде не работает. как правильно удаляется строка?
Процедура КнопкаВыполнитьНажатие(Кнопка) док= этотобъект.Реквизит1.ПолучитьОбъект(); для каждого стр из док.Товары цикл Если не стр.Количество > 0 тогда стр.удалить(); конецесли; конеццикла; КонецПроцедуры |
|||
1
Ursus maritimus
20.12.11
✎
09:20
|
док.Товары.Очистить()
|
|||
2
Простенький вопросик
20.12.11
✎
09:21
|
(1)
мне не все надо, а только строку по условию. Эта команда только строку удалит? |
|||
3
Stim213
20.12.11
✎
09:22
|
за такой код нужно бить линейкой по пальцам
|
|||
4
Stim213
20.12.11
✎
09:23
|
Листинг 3.75. Удаление строк с нулевым количеством
СтруктураДляПоиска = Новый Структура("Количество", 0); ОбъектДок = СсылкаДок.ПолучитьОбъект(); ТабличнаяЧастьДок = ОбъектДок.Товары; МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска); Для каждого Строка Из МассивПустыхСтрок Цикл ТабличнаяЧастьДок.Удалить(Строка); КонецЦикла; ОбъектДок.Записать(); |
|||
5
Простенький вопросик
20.12.11
✎
09:23
|
(3)
ну так скажи код, за который не нужно бить |
|||
6
Ненавижу 1С
гуру
20.12.11
✎
09:23
|
(0) ЧТО ЭТО?
|
|||
7
Lama12
20.12.11
✎
09:25
|
(0) Объект не записывается.
Но сделано криво. В (4) Хороший пример. |
|||
8
Простенький вопросик
20.12.11
✎
09:39
|
(4)
Эта структура вроде только конкретные значения отбирает, вроде количество =0. А как сделать, отобралось количество >0?. Кстати при удалении фича есть, что если удаляется строка, курсор перескакивает через следующую. При этой конструкции такая фича не сработает? |
|||
9
Scooter
20.12.11
✎
09:40
|
(0)классика жанра
(4)+ еще обратный перебор есть |
|||
10
Scooter
20.12.11
✎
09:41
|
(8)построителем отбери нужные строки и удаляй по индексу в обратной последовательности
|
|||
11
Starhan
20.12.11
✎
09:42
|
(8) Ничего не перескакивает. У тя индекс при удалении одной строки у всех следующей за ней смещается на единицу назад.
|
|||
12
Pasha_mix
20.12.11
✎
09:50
|
Процедура КнопкаВыполнитьНажатие(Кнопка)
док= этотобъект.Реквизит1.ПолучитьОбъект(); МассивПустыхСтрок = Новый массив(); для каждого стр из док.Товары цикл Если не стр.Количество > 0 тогда МассивПустыхСтрок.Добавить(стр); конецесли; для каждого стрМассива из МассивПустыхСтрок цикл док.Товары.удалить(стрМассива ); конеццикла; КонецПроцедуры Я так обычно делаю |
|||
13
Pasha_mix
20.12.11
✎
09:51
|
Хотя
док= этотобъект.Реквизит1.ПолучитьОбъект(); - это лишнее. Ты и так в объекте. Просто обращайся сразу к товарам. |
|||
14
Простенький вопросик
20.12.11
✎
09:52
|
в общем я по своему сделал и у меня все работает
Процедура КнопкаВыполнитьНажатие(Кнопка) док= этотобъект.Реквизит1.ПолучитьОбъект(); колстр=док.Товары.Количество()-1; й= колстр; Пока й>0 цикл Если не док.Товары[й].Количество > 0 тогда док.Товары.удалить(док.Товары[й]); конецесли; й=й-1; конеццикла; док.Записать(); КонецПроцедуры |
|||
15
hhhh
20.12.11
✎
09:58
|
(14) этот твой свой способ 757 раз уже описан в яндексе.
|
|||
16
Простенький вопросик
20.12.11
✎
10:01
|
(15)
не совсем. у меня там одна ошибка. "Пока й>0 цикл" надо поменять на "Пока й>=0 цикл" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |