Есть Торговля и склад (релиз 954, внесено много доработок) и Бухгалтерия предприятия 2.0.
В некоторых документах в ТиС есть документы поступления, в которых есть строки с нулевым количеством. Разумеется в бухгалтерии такие доки не проводятся.
Как удалить эти строки в момент обмена?
Внес в ПКО_ПоступлениеТоваровУслуг_ПослеЗагрузкиОбъекта следующее дополнение:
// Корректируем количество с учетом коэффициента
Для каждого СтрокаТоваров Из Объект.Товары Цикл
//добавил я
Если СтрокаТоваров.Количество = 0 тогда
Объект.Товары.Удалить(СтрокаТоваров);
Продолжить;
Конецесли;
//=========
СтрокаТоваров.Количество = СтрокаТоваров.Количество * СтрокаТоваров.Коэффициент;
Если СтрокаТоваров.Коэффициент <> 0 Тогда
СтрокаТоваров.Цена = СтрокаТоваров.Цена / СтрокаТоваров.Коэффициент;
КонецЕсли;
КонецЦикла;
Срока с нулевой позицией удаляется, но глюк в том, что если сразу за ней опять идет строка с нулевой позицией, то она не удаляется. Как будто после удаления следующая строка становится текущей, оператор Продолжить возвращает в начало цикла, который в свою очередь еще раз получает следующую строку.
Если убрать Продолжить то выдает ошибку: "Выполнение операции невозможно, так как строка была удалена."
Как правильно удалить строки в документах где Количество = 0 ?
(0)
Для каждого СтрокаТоваров Из Объект.Товары Цикл
Объект.Товары.Удалить(СтрокаТоваров);
КонецЦикла;
Проверь для себя что получится и подумай можно ли так писать. Должна остаться половина от исходной.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс