![]() |
![]() |
![]() |
|
Туплю с удалением движений УТ 10.3. | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
09.01.13
✎
17:29
|
У документов стоит удаление движений "Не удалять движения автоматически".
Смотрю код, типовая вначале очищает регистры прямой записью в регистр и еще и коллекции движений ДокументОбъект.Движения очищает. Вопрос - а пишутся ли данные из .Движения в базу или нет? Судя по коду УТ сама пишет во все движения регистров, а как она добивается того, чтобы из .Движения в базу не писалось? У меня 81. |
|||
1
Гений 1С
гуру
09.01.13
✎
17:40
|
||||
2
MrStomak
09.01.13
✎
17:42
|
Движения.Записывать
|
|||
3
acsent
09.01.13
✎
17:42
|
(2) это в 8.2
|
|||
4
gosn1ck
09.01.13
✎
17:46
|
я один прочитал 3 раза и ничего не понял?
|
|||
5
MrStomak
09.01.13
✎
17:48
|
(3) а в 8.1 разве не всегда принудительная запись?
|
|||
6
Гений 1С
гуру
09.01.13
✎
17:48
|
(2) в 81 нету.
(4) а че непонятного. Судя по коду УТ коллекция Движения автоматом не записывается. Как этого добиться? |
|||
7
Гений 1С
гуру
09.01.13
✎
17:48
|
(5) там можно поставить у документов признак удаление движений "Не удалять движения автоматически"
|
|||
8
Гений 1С
гуру
09.01.13
✎
17:49
|
вообще проблема связана с тем, что замер производительности показывает, что 1С тупит, ибо дважды пишет в регистр партий - сначала его чистит, потом пишет новые данные.
Причем на чистку тратит до фига времени. Вот хотелось бы оставить только одну запись, но я запутался, как не накосячить, пришлось понять, когда записывается коллекция Движения, понять не могу. |
|||
9
MrStomak
09.01.13
✎
17:56
|
(8) 1)Для контроля остатков в любом случае надо чистить.
2)Типовой код в любом случае тоже два раза пишет - очистка и новые движения То, что всё это длительное время происходит, скорее всего связано с большой таблицей остатков, надо проверять вывод в 0. |
|||
10
MrStomak
09.01.13
✎
17:58
|
//Судя по коду УТ сама пишет во все движения регистров, а как она добивается того, чтобы из .Движения в базу не писалось?
Тут надо отметить, что платформа автоматически анализирует модифицированность таблицы движений. Если движения не менялись, записи не происходит. |
|||
11
Гений 1С
гуру
09.01.13
✎
17:58
|
(9) Да это понятно, но просто уж любопытно стало, как защититься от записи коллекции Движения
|
|||
12
Гений 1С
гуру
09.01.13
✎
17:59
|
(10) че, реально? но ведь она же вначале ее чистит, значит вносит модифицированность. Тогда по логике, записанные в базу данные движения должны перетереться вручную.
|
|||
13
Гений 1С
гуру
09.01.13
✎
17:59
|
(10) хотя удаление движений вызывается передЗаписью, а не в ОбработкаПроведения, так что может быть и логично.
Но зачем они в ПередЗаписью коллекцию Движения чистян, непонятно |
|||
14
Гений 1С
гуру
09.01.13
✎
18:00
|
хотя нет же, из обработки проведения таки вызвают очистку движений
|
|||
15
MrStomak
09.01.13
✎
18:02
|
(13) Немного неясно - ты пишешь и про прямую запись в регистр, и про модификацию Движений. Так что происходит? Важно понимать, что если напрямую чистить регистр и не перечитать свойство Движения, то модифицированности не будет
|
|||
16
Гений 1С
гуру
09.01.13
✎
18:09
|
(15) я это уже понял, посмотрел отладчиком - реально регистр партий на выходе имеет пустую коллекцию Движения и Модифицированность = ложь
а вот регистр Продажи на выходе имеет заполненные Движения и Модифицированность = истина. Но зачем они в процедуре УдалитьДвиженияРегистратора, вызываемой в начале ОбработкаПровдеения, еще и очищают коллекцию всех элементов коллекции Движения: // Процедура очищает коллекцию движений документа // Процедура ОчисткаКоллекцииДвиженийДокумента(ДокументОбъект) Экспорт Для Каждого Движение ИЗ ДокументОбъект.Движения Цикл Если Движение.Количество() > 0 Тогда Движение.Очистить(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
17
Гений 1С
гуру
09.01.13
✎
18:18
|
В общем тупо сделал затычку, чтобы по партиям регистр не чистился.
ну и спасибо (9) напишу обработку по закрытию регистра партий для зависших сумм при нулевом количестве. |
|||
18
Гений 1С
гуру
09.01.13
✎
18:32
|
Хотя по ходу, чтобы почистить регистр партий, обработку писать не нужно. Нашлась тут:
http://forum.infostart.ru/forum24/topic28982/ Спасибо автору. |
|||
19
hhhh
09.01.13
✎
20:14
|
(17) регистр надо чистить обязательно, потому что юзер может поменять дату на более позднюю и документ будет свои собственные движения видеть в остатках.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |