Имя: Пароль:
1C
1С v8
ОбработкаПроведения()
,
0 pzk2
 
03.10.11
16:21
В ОбработкаПроведения() Документа который списывает остатки делаем так:

Остаток = РегистрыНакопления.ЗаказыПоставщикам.Остатки(,отбор,"Номенклатура","Количество");
           Если зак.Количество() = 0 тогда
               заказано = 0;
           иначе
               заказано = зак[0].Количество;
           конецесли;
....
Движение.Количество = Заказанно;



ну например остаток чигенибудь в регистре этом равен 10, при первом проведении документ списывает 10, при перепроведении списывает 0, перепроводим еще раз опять списано 10, еще раз списано ноль!


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

помогите до конца вникнуть в природу данного явления?
1 Maxus43
 
03.10.11
16:22
запросом и получай, что не так?
2 Ненавижу 1С
 
гуру
03.10.11
16:23
(0)
1. указывать границу остатков
2. очищаются ли автоматически и вручную движения?
3 pzk2
 
03.10.11
16:24
да просто интересно почему .Остатки в ОбработкаПроведения() работает с периодом 2?, первый раз учитывает движения тек. документа, второй раз нет =)
4 pzk2
 
03.10.11
16:25
(2) Скорее всего если указать границу ЭтотОбъект.Дата - 1 то тоже будет нормально.
5 Ненавижу 1С
 
гуру
03.10.11
16:26
(4) это неправильно
6 Жан Пердежон
 
03.10.11
16:27
(3) второй раз тоже учитывает
7 pzk2
 
03.10.11
16:27
(6) нет.
8 Wingless
 
03.10.11
16:28
(3)
Что непонятного то. 1е проведение - увидел остаток 10 - записал 10. 2е - увидел остаток 0, записал 0, старые движение стер, остаток 10. 3е - увидел остаток 10...
9 catena
 
03.10.11
16:29
(7)Не "нет", а "так точно".
1. Остаток = 10, списали 10
2. Остаток = 0, списали 0
.....
10 Wingless
 
03.10.11
16:29
И где ответ на 2й вопрос (2)?
11 afk
 
03.10.11
16:30
Остатки(<МоментВремени>, <Отбор>, <Измерения>, <Ресурсы>)
первый параметр
12 pzk2
 
03.10.11
16:30
(10) без указания границы и руч. отчистки движений
13 Сергей-88
 
03.10.11
16:32
У тебя слово- заказанно  в одной строчке с 2 нн в другой с одной
14 afk
 
03.10.11
16:33
(13) и еще четыре точки: "...."
15 pzk2
 
03.10.11
16:34
тоесть выходит отмена проведения происходит после ОбработкаПроведения()  ?
16 Wingless
 
03.10.11
16:35
(12) Тогда или использовать границу - но здесь придется разбираться с оперативным проведением, ибо дата меняется - момент времени другой.
Или установить удаление движений - удалять автоматически.
17 Шапокляк
 
03.10.11
16:35
(15) оригинальный вывод
18 Wingless
 
03.10.11
16:36
(15) отмена проведения происходит, ВНЕЗАПНО, при отмене проведения.
19 pzk2
 
03.10.11
16:47
(18) при проведении уже проведенного документа, ВНЕЗАПНО должно произойти сперва ОтменаПроведения, а потом ОбработкаПроведения !
20 Ненавижу 1С
 
гуру
03.10.11
16:52
(19) кто сказал?
21 ssh2006
 
03.10.11
17:00
(19) свойство док-та удаление движений какое стоит?
22 Ненавижу 1С
 
гуру
03.10.11
17:01
(21) я еще в (2) у него спрашивал
23 Wingless
 
03.10.11
17:05
(19) А кофе 1С не должна приносить?
24 KOCTuK
 
05.10.11
10:23
Была подобная ситуация после обновления платформы 8.2.
Голый документ, без событий и кода в модуле формы. В процедуре  "ОбработкаПроведения()" 3 строчки:
Движение = Движения.Бюджет.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Данная процедура вызывалась 2 раза.

"В свойствах документа "Запись движений при проведении" стоял признак "Записывать выбранные", а надо "Записывать модифицированные".
Помогло вот это. Раньше проблем с добавлениями новых документов не было.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший