Имя: Пароль:
1C
1С v8
Где я косячу?: Подписка на события. обработка проведения.
0 Черепахыч
 
04.10.16
12:00
Парни привет!

я создал подписку на событие "обработка проведения" для документОбъект.КорректировкаДолга

там я меняю "Движение-приход"  на "Движение расход" с отрицательной суммой.


Процедура ПроведениеКорректировкиДолгаОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
    
    //по взаиморасчетам.. приход делаем как расход минусом,чтобы не увеличивала обороты
    
//    источник = Документы.КорректировкаДолга.СоздатьДокумент();
    
    Если  источник.ВидОперации <> Перечисления.ВидыОперацийКорректировкаДолга.ПроведениеВзаимозачета тогда
        возврат
    Конецесли;
    
    ДвиженияВзаиморасчеты = источник.движения.ВзаиморасчетыСКонтрагентами;
    //ДвиженияВзаиморасчеты.прочитать();    
    
    Для каждого Движ из ДвиженияВзаиморасчеты цикл
        
        
        если ЗначениеЗаполнено(движ.Сделка) и (движ.ВидДвижения=ВидДвиженияНакопления.Приход)  тогда
            //Наш случай.. корректировка на уменьшение
            движ.ВидДвижения=ВидДвиженияНакопления.Расход;
            движ.СуммаВзаиморасчетов = - движ.СуммаВзаиморасчетов;
            движ.СуммаУпр = - движ.СуммаУпр;
        Конецесли;
            
        
    Конеццикла;
    
    ДвиженияВзаиморасчеты.Записать(истина);
    
    //ДвиженияНДСНачисленный.записать();
                
    
    
КонецПроцедуры




если я провожу документ из формы по кнопке провести или "ок" - то все отрабатывает на "ура".  - движения видны, делаю их обход и меняю их..

а если запускаю из группового проведения - то движения не видны.. цикл не срабатывает.. и тупо движения затриаются.

как сделать грамотно чтобы в любом проведении было все ок?
1 mehfk
 
04.10.16
12:04
Вангую, что "групповое проведение" на самом деле проведением не является.
2 Черепахыч
 
04.10.16
12:10
отладчик в подписку проваливается. но цикл не срабатывает. движений не видит.. либо они не записаны чтоле на этот момент.
3 Черепахыч
 
04.10.16
12:11
такое ощущение. что если я я провожу из форму, то в подписку проваливаюсь уже как бы с записанными движениям.. как бы после провдедения, а если групповуха, то в подписке оказываюсь без движений, либо считать не могу, т.к. они не записаны
4 mehfk
 
04.10.16
12:11
(2) Делай подписку на перед записью набора регистра накопления.
5 aleks_default
 
04.10.16
12:16
ДвиженияВзаиморасчеты.Записать(истина); убери
6 Черепахыч
 
04.10.16
12:18
(4) угу. я Вас понял. пошел проверять
7 Cyberhawk
 
04.10.16
12:27
"Примечание:

При вызове с параметром <Замещать> равным Ложь после записи в информационную базу набор записей очищается (удаляются записи из набора). " // Возможно, где-то до твоей подписки набор записей уже был записан с параметром "Ложь"