Имя: Пароль:
1C
1С v8
КД. Удалить строку документа.
0 Молодой 1Снег
 
28.09.12
15:34
Есть Торговля и склад (релиз 954, внесено много доработок) и Бухгалтерия предприятия 2.0.

В некоторых документах в ТиС есть документы поступления, в которых есть строки с нулевым количеством. Разумеется в бухгалтерии такие доки не проводятся.
Как удалить эти строки в момент обмена?

Внес в ПКО_ПоступлениеТоваровУслуг_ПослеЗагрузкиОбъекта следующее дополнение:

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

Срока с нулевой позицией удаляется, но глюк в том, что если сразу за ней опять идет строка с нулевой позицией, то она не удаляется. Как будто после удаления следующая строка становится текущей, оператор Продолжить возвращает в начало цикла, который в свою очередь еще раз получает следующую строку.

Если убрать Продолжить то выдает ошибку: "Выполнение операции невозможно, так как строка была удалена."

Как правильно удалить строки в документах где Количество = 0 ?
1 Молодой 1Снег
 
28.09.12
15:36
(0) Второе предложение читать в следующей редакции: "В некоторых документах поступления в ТиС есть строки с нулевым количеством."
2 Alex S D
 
28.09.12
15:37
в ПКГС Передвыгрузкой

Если ОбъектКОллекции.количество = 0 Тогда
Отказ = Истина;
КонецЕсли;
3 Жан Пердежон
 
28.09.12
15:42
сделай что и в торговле док. не проводился
4 Молодой 1Снег
 
28.09.12
15:53
(2) Спасибо!

(3) Да, с этим будем бороться. Сейчас надо загрузить 100500 документов которые уже введены в ТиС.
5 timurhv
 
03.10.12
17:28
(0)
Для каждого СтрокаТоваров Из Объект.Товары Цикл
  Объект.Товары.Удалить(СтрокаТоваров);
КонецЦикла;

Проверь для себя что получится и подумай можно ли так писать. Должна остаться половина от исходной.