Имя: Пароль:
1C
1С v8
Удаление части записей и регистра накоплений(в чём ошибка?)
0 Александра1с
 
03.10.22
18:55
Доброго вечера, подскажите пожалуйста почему удаляются не все строки равные условию?
Набор = Набор.РегистрыНакопления.СебестоимостьТоваров.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Значение = Выборка.Регистратор;
Набор.Прочитать();
Для каждого Стр из Набор Цикл
Если НЕ Стр.Количество = 0 Тогда
Набор.Удалить(Стр);
КонецЕсли;    
КонецЦикла;
Попытка
Набор.Записать();
Исключение
КонецПопытки
1 saaken
 
03.10.22
19:00
какому условию?
2 Said_We
 
03.10.22
19:00
(0)

Набор.Прочитать();
Набор.Очистить();
Набор.Записать();
3 Said_We
 
03.10.22
19:01
(1) По регистратору по всей видимости.
4 Said_We
 
03.10.22
19:03
Такое условие ставится?
Набор.Отбор.Количество.Значение = 0;
5 Said_We
 
03.10.22
19:05
(0) Ошибка тут.

Для каждого Стр из Набор Цикл
Если НЕ Стр.Количество = 0 Тогда
Набор.Удалить(Стр);

Нельзя идти по коллекции для каждого и менять количество записей набора.
6 Александра1с
 
03.10.22
19:16
(4) нет не ставится ругается что значение кол-во нет
7 Александра1с
 
03.10.22
19:16
(1) условие из если\конецесли кол-во = 0
8 Александра1с
 
03.10.22
19:17
(5) а как нужно делать подскажите пожалуйста? нужно удалить проводки с кол-вом  не = 0
9 Said_We
 
03.10.22
19:17
(6) Значит либо цикл по количеству записей либо выгружай в другую коллекцию там фильтр на количество = 0 и загружай в набор обратно.
10 Said_We
 
03.10.22
19:18
(8) Цикл с последней записи до начала можно...
11 Александра1с
 
03.10.22
19:20
(9) а как получить строку набора по индексу? я пробовала  через набор[индекс] шиш там
12 Said_We
 
03.10.22
19:21
(0) Можно так...

  НаборЗаписей = РегистрыНакопления.Взаиморасчеты.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Объект.Документ);
    НаборЗаписей.Прочитать();
    
    УдаляемыеЗаписи = Новый Массив;
    
    Для каждого Запись из НаборЗаписей цикл
        Если Запись.Договор.Организация = Объект.Организация тогда
            УдаляемыеЗаписи.Добавить(Запись);
        КонецЕсли;
    КонецЦикла;
    
    Для каждого УдаляемаяЗапись из УдаляемыеЗаписи цикл
        НаборЗаписей.Удалить(УдаляемаяЗапись);
    КонецЦИкла;
    НаборЗаписей.Записать();
13 Александра1с
 
03.10.22
19:22
(12) принято, сейчас попробую, спасибо
14 Said_We
 
03.10.22
19:23
(13) А где же фотка в аккаунте? :-)
15 Александра1с
 
03.10.22
19:35
(14) спасибо получилось + 1 нюанс знаю, мб есть какие статьи где описываются такие нюансы? а по поводу фотки зачем вам моё мужское фото?=)
16 Александра1с
 
03.10.22
19:37
(14) если писать от женского имени, то товарищи которые заходят "застебать новичка" сразу отлетают=)
17 H A D G E H O G s
 
03.10.22
19:41
Набор.Отбор.Регистратор.Значение = Выборка.Регистратор;
не устанавливает автоматически Использовать в Истина
а
НаборЗаписей.Отбор.Регистратор.Установить(Объект.Документ);
устанавливает
18 Amra
 
03.10.22
19:42
(16) Могут отправить борщ варить, это лучше?)
19 Александра1с
 
03.10.22
19:46
задача закрыта спасибо
20 Александра1с
 
03.10.22
19:47
(18) не ну если мне помогут и отправят варить борщ, то пойду сделаю, всё равно готовить то нужно
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший