Очистка движений перед добавлением новых. #331889


#0 by Cancell
ситуация следующая: В модуле документа (у документа автоматически не удаляются движения) хочу перед записью движений удалить предыдущие, делаю следующим образом: Вроде в Наборе движений все находит, очищает, но остаются старые движения.
#1 by Cancell
т.е. сразу после этого делаю    НаборДвижений   = Движения.ВзаиморасчетыСКонтрагентами; чтобы записать новые и в набореДвижений те старые еще висят
#2 by Cancell
Может как то еще надо зафиксировать очистку? или в этом месте это вообще делать нельзя?
#3 by selenat
#4 by Cancell
наверное это имелось ввиду: Только все равно после каждого перепроведения кол-во записей увеличивается.
#5 by selenat
имелось в виду то, что написано в . Этот код очищает движения...
#6 by Cancell
все равно добавляет: Можт проблема в том что я это делаю в модуле самого документа, прямо перед добавлением новых записей. Просто сразу после этого я делаю:        и т.д. ... и в НабореДвижений еще есть старые записи
#7 by ValA
Так новые записи добавляй в набор который очистил, а не получай новый набор.
#8 by iSeRG
Коллекция движений Движения.ВзаиморасчетыСКонтрагентами должна быть пустой, ты ее случайно не читаешь раньше?
#9 by selenat
т.е. после каждого выполнения этого кода количество строк движений увеличивается?
#10 by iSeRG
не обязательно
#11 by Cancell
ну по идее новый набор и так должен быть пустым, я же для этого и очишаю предыдущие записи. Раньше не читаю, а она не пустая, возвращает предыдушие записи, которые я и пытаюсь очистить Именно )
#12 by ValA
а есть уверенность в том что Движения.МойРегистр будет читать данные из ИБ, а не брать их из кэша, транзакция то одна.
#13 by Cancell
А вообще вот как происходит: Если я захожу в документ, провожу его, то там только нужные записи, и если выйду и зайду и снова проведу то все будет ок, ничего не добавится, а если я буду в нем находится и перепроводить то записи будут добавлятся
#14 by Cancell
вот и я о чем то в таком роде задумываюсь...
#15 by selenat
попробуй вынести этот код в процедуру общего модуля, которую вызывай из модуля документа...
#16 by iSeRG
При проведении документа движения пишутся из коллекции Движения. Если она у тебя содержит предыдущие записи, то понятно почему они добавляются. Очищать записи в БД имеет смысл если тебе нужно, чтобы их там не было во время проведения.
#17 by iSeRG
Если автоматически движения не удаляются, то надо чистить записи в БД и коллекцию Движения
#18 by Cancell
Безрезультатно( Очистка Коллекции помогла)    Движения.ВзаиморасчетыСКонтрагентами.Записать; Всем спасибо за помощь!
#19 by ValA
надо очистить набор записей и в него добавить новые записи. все.
#20 by iSeRG
зависит от задачи У него вообще не понятно каким образом Движения содержат предыдущие движения
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С