Вход | Регистрация

1С:Предприятие ::

Метки: 

Туплю с удалением движений УТ 10.3.

Я
   Гений 1С
 
09.01.13 - 17:29
У документов стоит удаление движений "Не удалять движения автоматически".

Смотрю код, типовая вначале очищает регистры прямой записью в регистр и еще и коллекции движений ДокументОбъект.Движения очищает.

Вопрос - а пишутся ли данные из .Движения в базу или нет?
Судя по коду УТ сама пишет во все движения регистров, а как она добивается того, чтобы из .Движения в базу не писалось?

У меня 81.
 
 
   Гений 1С
 
1 - 09.01.13 - 17:40
   MrStomak
 
2 - 09.01.13 - 17:42
Движения.Записывать
   acsent
 
3 - 09.01.13 - 17:42
(2) это в 8.2
   gosn1ck
 
4 - 09.01.13 - 17:46
я один прочитал 3 раза и ничего не понял?
   MrStomak
 
5 - 09.01.13 - 17:48
(3) а в 8.1 разве не всегда принудительная запись?
   Гений 1С
 
6 - 09.01.13 - 17:48
(2) в 81 нету.
(4) а че непонятного.
Судя по коду УТ коллекция Движения автоматом не записывается. Как этого добиться?
   Гений 1С
 
7 - 09.01.13 - 17:48
(5) там можно поставить у документов признак удаление движений "Не удалять движения автоматически"
   Гений 1С
 
8 - 09.01.13 - 17:49
вообще проблема связана с тем, что замер производительности показывает, что 1С тупит, ибо дважды пишет в регистр партий - сначала его чистит, потом пишет новые данные.
Причем на чистку тратит до фига времени.
Вот хотелось бы оставить только одну запись, но я запутался, как не накосячить, пришлось понять, когда записывается коллекция Движения, понять не могу.
   MrStomak
 
9 - 09.01.13 - 17:56
(8) 1)Для контроля остатков в любом случае надо чистить.
   2)Типовой код в любом случае тоже два раза пишет - очистка  и новые движения
То, что всё это длительное время происходит, скорее всего связано с большой таблицей остатков, надо проверять вывод в 0.
   MrStomak
 
10 - 09.01.13 - 17:58
//Судя по коду УТ сама пишет во все движения регистров, а как она добивается того, чтобы из .Движения в базу не писалось? 
 

Тут надо отметить, что платформа автоматически анализирует модифицированность таблицы движений. Если движения не менялись, записи не происходит.
 
 Рекламное место пустует
   Гений 1С
 
11 - 09.01.13 - 17:58
(9) Да это понятно, но просто уж любопытно стало, как защититься от записи коллекции Движения
   Гений 1С
 
12 - 09.01.13 - 17:59
(10) че, реально? но ведь она же вначале ее чистит, значит вносит модифицированность. Тогда по логике, записанные в базу данные движения должны перетереться вручную.
   Гений 1С
 
13 - 09.01.13 - 17:59
(10) хотя удаление движений вызывается передЗаписью, а не в ОбработкаПроведения, так что может быть и логично.

Но зачем они в ПередЗаписью коллекцию Движения чистян, непонятно
   Гений 1С
 
14 - 09.01.13 - 18:00
хотя нет же, из обработки проведения таки вызвают очистку движений
   MrStomak
 
15 - 09.01.13 - 18:02
(13) Немного неясно - ты пишешь и про прямую запись в регистр, и про модификацию Движений. Так что происходит? Важно понимать, что если напрямую чистить регистр и не перечитать свойство Движения, то модифицированности не будет
   Гений 1С
 
16 - 09.01.13 - 18:09
(15) я это уже понял, посмотрел отладчиком - реально регистр партий на выходе имеет пустую коллекцию Движения и Модифицированность = ложь

а вот регистр Продажи на выходе имеет заполненные Движения и Модифицированность = истина.

Но зачем они в процедуре УдалитьДвиженияРегистратора, вызываемой в начале ОбработкаПровдеения, еще и очищают коллекцию всех элементов коллекции Движения:

// Процедура очищает коллекцию движений документа
 
//
Процедура ОчисткаКоллекцииДвиженийДокумента(ДокументОбъект) Экспорт
        
    Для Каждого Движение ИЗ ДокументОбъект.Движения Цикл
        Если Движение.Количество() > 0 Тогда
            Движение.Очистить();
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
   Гений 1С
 
17 - 09.01.13 - 18:18
В общем тупо сделал затычку, чтобы по партиям регистр не чистился.

ну и спасибо (9) напишу обработку по закрытию регистра партий для зависших сумм при нулевом количестве.
   Гений 1С
 
18 - 09.01.13 - 18:32
Хотя по ходу, чтобы почистить регистр партий, обработку писать не нужно. Нашлась тут:
http://forum.infostart.ru/forum24/topic28982/

Спасибо автору.
   hhhh
 
19 - 09.01.13 - 20:14
(17) регистр надо чистить обязательно, потому что юзер может поменять дату на более позднюю и документ будет свои собственные движения видеть в остатках.


Список тем форума
Рекламное место пустует Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует