Имя: Пароль:
1C
1С v8
Удалить строки из табличной части документа
0 Beduin
 
05.12.13
17:47
Пока Выборка.Следующий() Цикл
Стр = ДокУда.РасшифровкаПоНакладным.Найти(Выборка.Накладная);
Если Стр <> Неопределено Тогда
ДокУда.РасшифровкаПоНакладным.Удалить(Стр.НомерСтроки);
КонецЕсли;
КонецЦикла;

Собственно, а почему ищет не все? Поиск сбивается?!
1 zak555
 
05.12.13
17:49
ДокУда ??
2 mikecool
 
05.12.13
17:49
(0) ты угадал
3 palpetrovich
 
05.12.13
17:50
(1) Доколе?! :)
4 Beduin
 
05.12.13
17:50
(1) Одноразовая обработка по удалению. Не буду же я в переменной повесть писать.
5 Beduin
 
05.12.13
17:51
(2) Как сделать так, чтобы поиск не сбивался?
6 Wobland
 
05.12.13
17:51
всё равно СписДок не переплюнуть
7 mikecool
 
05.12.13
17:51
(4) уж будь любезен...
8 salvator
 
05.12.13
17:51
Юзай НайтиСтроки
9 DmitriyDI
 
05.12.13
17:51
(4) там по моему в СП написано, что ищет ток 1 элемент если их несколько ?
10 Wobland
 
05.12.13
17:51
(5) удалять с конца или удалять строки
11 Beduin
 
05.12.13
17:54
(9) У меня там точно 1 элемент. Мне нужно тупо удалить по элементу из табчасти. Перебор элементов снаружи, никак не завязан на табчасть.
12 Hawk_1c
 
05.12.13
17:54
(0)Опять? :)
13 Beduin
 
05.12.13
17:57
(8) Не работает
                              Отбор = Новый Структура;
                              Отбор.Вставить("Накладная", Выборка.Накладная);
                              Стр = ДокУда.РасшифровкаПоНакладным.НайтиСтроки(Отбор);
                              Если Стр.Количество() > 0 Тогда
                                  Стр = Стр[0];
                                  Если Стр <> Неопределено Тогда
                                      ДокУда.РасшифровкаПоНакладным.Удалить(Стр.НомерСтроки);
                                  Иначе
                                      Сообщить(Выборка.Накладная);
                                  КонецЕсли;
                              КонецЕсли;
14 YAGolova
 
05.12.13
17:57
(0) Ты удаляешь по номеру строки, а в метод удалить так то индекс посылается - так что ты удаляешь вообще не то
15 Beduin
 
05.12.13
17:58
(14) Ты голова!!!
16 salvator
 
05.12.13
17:58
(13)
Отбор = Новый Структура;
Отбор.Вставить("Накладная", Выборка.Накладная);
НайденныеСтроки = ДокУда.РасшифровкаПоНакладным.НайтиСтроки(Отбор);
Для Каждого Стр Из НайденныеСтроки Цикл
   ДокУда.РасшифровкаПоНакладным.Удалить(Стр);
КонецЦикла;
17 salvator
 
05.12.13
17:59
Или же просто
НайденныеСтроки = ДокУда.РасшифровкаПоНакладным.НайтиСтроки(Отбор);
ДокУда.РасшифровкаПоНакладным.Удалить(НайденныеСтроки[0]);
18 salvator
 
05.12.13
18:03
+(17) Да и в (0) достаточно просто написать
не
ДокУда.РасшифровкаПоНакладным.Удалить(Стр.НомерСтроки);
а
ДокУда.РасшифровкаПоНакладным.Удалить(Стр);