2 Tays
примерно так:
X++:
PurchFormLetter = PurchFormLetter::construct(DocumentStatus);
purchParmUpdate.clear();
purchParmUpdate.SpecQty = _purchUpdate;
purchParmUpdate.DocumentStatus = DocumentStatus;
purchParmUpdate.SumBy = AccountOrder::Account;
purchParmUpdate.ParmId = PurchFormLetter.parmId();
PurchFormLetter.purchTable(localPurchTable);
PurchFormLetter.purchParmUpdate(purchParmUpdate);
PurchFormLetter.initLinesQuery();
PurchTotals = PurchTotals::construct(localPurchTable, _purchUpdate, AccountOrder::Account, PurchFormLetter.parmId(), '', DocumentStatus);
PurchTotals.calc();
tmpTaxWorkTrans.setTmpData(PurchTotals.tax().tmpTaxWorkTrans());
taxRegulation = taxRegulation::NewTaxRegulation(tmpTaxWorkTrans);
tmpTaxRegulationWork.setTmpData(taxRegulation.tmpTaxRegulation());
while select sum(SourceTaxAmountCur) from tmpTaxRegulationBase group by TaxCode
{
select forupdate firstonly tmpTaxRegulationWork where
tmpTaxRegulationWork.TaxCode == tmpTaxRegulationBase.TaxCode;
if (tmpTaxRegulationWork.RecId &&
tmpTaxRegulationWork.SourceRegulateAmountCur != tmpTaxRegulationBase.SourceTaxAmountCur)
{
tmpTaxRegulationWork.SourceRegulateAmountCur = tmpTaxRegulationBase.SourceTaxAmountCur;
tmpTaxRegulationWork.update();
taxRegulation.calcAndSaveTaxInCostPrice(tmpTaxRegulationWork);
}
}
taxRegulation.saveTaxRegulation();ЗЫ. В tmpTaxRegulationBase и tmpTaxRegulationWork записаны построчно данные от поставщика: налоговый код и сумма.