Показать сообщение отдельно
Старый 06.04.2010, 14:01   #1  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Не работает SummaryUpdate
Мне нужно запостить инвойс из кода, предварительно заполнив PurchFormLetter по определенному алгоритму. Это получилось, но мне еще нужно, чтобы один ваучер был для нескольких Purchase order'ов, которые попали в инвойс, и чтобы суммирование шло по InvoiceAccount'у.

При создании экземпляра PurchFormLetter я пишу такое:

X++:
                
                formLetter  = new PurchFormLetter_SpecialInvoice();

                formLetter.transDate(systemdateget());
                formLetter.specQty(PurchUpdate::All);
                          
               // manually obtaining ParmId, because it is disabled in PurchFormLetter
                numSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(ParmId))));
                parmId = numSeq.num();

                formLetter.parmId(parmId);
                formLetter.sumBy(AccountOrder::Account);
                formLetter.createParmUpdate();

                ttsbegin;
                select forupdate firstonly purchParmUpdate where
                    purchParmUpdate.RecId == formLetter.purchParmUpdate().RecId;

                purchParmUpdate.SumBy = AccountOrder::Account;
                purchParmUpdate.update();
                ttscommit;
…а в конце, когда все данные подготовлены, пишу такое:


X++:
                formLetter.reArrangeNow(true);
                formLetter.reArrange();
                formLetter.run();
…и рассчитываю, что инвойс запостится с одним ваучером, но этого не происходит.

ПризнаЮ, что механизм SummaryUpdate мне не очень знаком, поэтому, возможно, я забиваю гвозди микроскопом. Подскажите, пожалуйста, что может быть не так, что упущено?

Последний раз редактировалось Shannon; 06.04.2010 в 14:07. Причина: ошибки