Имя: Пароль:
1C
1С v8
Разъясните пожалуйста смысл кода из типовой 1с 8 Комплексная автоматизация
0 Serega103
 
11.03.15
12:02
Здравствуйте.
Копаясь в типовом коде набрел на такую строку, смысл которой мне непонятен
        Для Каждого Движение Из СтруктураПараметров.Движения Цикл
            Если Движение.Значение.Модифицированность() Тогда
                Движение.Значение.Записать(Ложь);
                Движение.Значение.Очистить();
            КонецЕсли;
        КонецЦикла;    

Разъясните пожалуйста.
1 Serega103
 
11.03.15
12:03
Это выполняется при проведении документа "Расчет себестоимости выпуска"
2 Гёдза
 
11.03.15
12:04
записываются движения. Скорее всего они потом где то используются в дальнейшем проведении
3 Serega103
 
11.03.15
12:10
(2) Конкретно непонятно вот это
Движение.Значение.Очистить();
Зачем сначала записать движения а потом очистить коллекцию?
Я так понимаю что если очистить коллекцию движений, то записи в регистре остаются? или не так?
4 ДенисЧ
 
11.03.15
12:12
(3) Память освобождается. И место для новых движений
5 Serega103
 
11.03.15
12:17
(4) спасибо, теперь понятно зачем.
6 Гёдза
 
11.03.15
12:18
(3) потому что будем добавлять записи новые.
см. Записать(Ложь)
7 Гёдза
 
11.03.15
12:18
(4) Память вообще не причем
8 Новиков
 
11.03.15
12:21
У тебя в свойства документа "Запись при проведении" видимо установлено в "Записывать выбранные". Посему в цикле для каждого набора записей указывается свойство - записывать ли его или нет. У тебя стоит ложь, посему ответ очевиден. Это по первой строчке. По второй, зачем нужно делать очистить.
9 Serega103
 
11.03.15
12:26
(8) там стоит "записывать модифицированные".
"По второй, зачем нужно делать очистить."
Самому интересно)). конфа типовая.
(6) я правильно понимаю что
Движение.Значение.Очистить() не равно наборзаписейрегистра.Очистить()?
10 Новиков
 
11.03.15
12:31
А форма - обычная или управляемая?
11 Гёдза
 
11.03.15
12:33
(9) Равно
12 Serega103
 
11.03.15
12:34
(10) обычная
13 ДенисЧ
 
11.03.15
12:35
(7) нуну
14 Serega103
 
11.03.15
12:37
Тогда не очень понимаю              
Движение.Значение.Записать(Ложь);
//мы записали набор записей регистра
Движение.Значение.Очистить();
//мы очистили этот же самый набор

а что поменялось?
В отладчике я посмотрел
после выполнения кода движения очистились и всё, а до этого они были.
15 Wern
 
11.03.15
12:43
Ну как минимум стоит посмотреть на модуль набора записей регистра. При таком подходе выполнятся предопределенные процедурки.
16 Новиков
 
11.03.15
12:48
А что показывает свойство удаление движений?
17 Serega103
 
11.03.15
12:56
(16) "Не удалять автоматически"
(15) там тоже ничего особенного. свертка набора и приведение пустых значений субконто.