|
|
Задвоение движений |
☑ |
|
0
Andrey77
30.10.12
✎
13:47
|
Добрый день. Подскажите, почему в обычной открытой форме при проведении документа задваиваются движения, а в управляемой нет? Спасибо.
|
|
|
1
Нуф-Нуф
30.10.12
✎
13:50
|
отладчик наше все
|
|
|
2
Andrey77
30.10.12
✎
13:52
|
:)
|
|
|
3
Нуф-Нуф
30.10.12
✎
13:54
|
че ржешь. лезь в отладчик :))))
|
|
|
4
Andrey77
30.10.12
✎
13:55
|
В принципе, перед записью движений можно просто их очищать. Но интересно, почему происходит собственно задвоение. Именно, когда открыта форма. Из списка документ перепроводится нормально, а вот когда открыта форма, такая вот ерунда.
Модуль проведения прост:
// регистр ОстаткиНоменклатуры Приход
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура;
Движение.Склад = Склад;
Движение.Партия = Ссылка;
Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество;
Движение.Себестоимость = ТекСтрокаСписокНоменклатуры.Сумма;
КонецЦикла;
|
|
|
5
Andrey77
30.10.12
✎
15:49
|
Все. Вроде бы нашел, почему. Если кому интересно (вдруг, кто будет искать):
Очистка движений в модуле (которая реализована в конструкторе и которую рекомендуется реализовать в модулях разработчикам конфигураций) необходима для поддержки многократного проведения документа одним объектом (экземпляром объекта в памяти), чтобы не происходила повторная запись движений. Это требуется, прежде всего, для работы обычных форм, так как они не создают каждый раз объект. © Нуралиев С.
|
|