Имя: Пароль:
1C
 
Удалить движения документа с отбором
0 tatoshka0403
 
10.10.17
17:47
Суть такова, документ при проведении делает две записи в регистр в одной сумма + в другой сумма -. Хочу удалить только +. Написал код:

Движ1 = Док.ПолучитьОбъект().Движения.РасчетыСКлиентами;
Движ1.Прочитать();
    Для каждого Стр из Движ1 цикл
        Попытка
        Если Стр.Сумма>0 ИЛИ Стр.Сумма=0 тогда
            Стр.Очистить()
        КонецЕсли;
        Исключение
        КонецПопытки;
    КонецЦикла;
Движ1.Записать();


Не работает( Пожалуйста подскажите как это реализовать.
1 YFedor
 
10.10.17
17:48
(0) где этот код выполняется, в обработке?
2 tatoshka0403
 
10.10.17
17:48
(1) Да
3 tatoshka0403
 
10.10.17
17:49
Движ1.Прочитать();
Движ1.Очистить();
Движ1.Записать();

Вот так отчищает все, но мне это не надо
4 YFedor
 
10.10.17
17:52
(2) При перепроведении что будешь делать?
5 tatoshka0403
 
10.10.17
17:54
(4) их запрещено перепроводить)
6 _Дайвер_
 
10.10.17
17:57
(5) Пиши запрос, делай соединение с регистром, и удаляй
7 craxx
 
10.10.17
17:58
(6) не обязательно, можно в цикле по записям из набора почикать согласно условиям.
8 h-sp
 
10.10.17
17:58
(5) Стр.Очистить() что это такое?

надо  Движ1.Удалить(Стр);
9 azernot
 
10.10.17
18:01
Движ1 = РегистрыНакопления.РасчетыСКлиентами.СоздатьНаборЗаписей();
Движ.Отбор.Регистратор.Установить(Док.Ссылка);

Движ1.Прочитать();
Для каждого Стр из Движ1 цикл
  Если Стр.Сумма>0 ИЛИ Стр.Сумма=0 тогда
      Движ1.Удалить(Стр)
  КонецЕсли;
КонецЦикла;
Движ1.Записать();
10 craxx
 
10.10.17
18:02
(9) неа. сначала в массив складываешь, а потом из массива удаляешь.
11 azernot
 
10.10.17
18:04
(10) В (0) сказано про 2 записи, удаляется одна. В таких условиях (9) сработает.
12 craxx
 
10.10.17
18:06
(11) сработает, только вот случайным образом, а не тем которым надо ТС
13 tatoshka0403
 
10.10.17
18:11
(8-12) Спасибо помогло