Показать сообщение отдельно
Старый 29.03.2016, 12:05   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Ax2012. TaxWorkRegulation не чистится после разноски накладной по продаже
Всем привет!

Если разнести из заказа на продажу накладную по кнопке накладная (это важно), а не счет фактура, предварительно скорректировав налог, случается сабж.

Это нормально? Или это бага какая то стандартная? Или фича? При накоплении полумиллиона записей в этой таблице корректировка налога начинает адско подтормаживать.

Фишка вот в чем
\Classes\TaxRegulation\newTaxRegulation
X++:
if (SysCountryRegionCode::isLegalEntityInConsolidatedCountryRegion() && _tax.getTaxAdjustmentTypes().in(TaxAdjustmentType::Detail))
    {
        taxRegulation = TaxRegulationDetail::construct();
    }
    else
    {
    taxRegulation = new TaxRegulation();
    }
Если вызывается корректировка налога из формы разноски накладной, то выполняется IF и ссылке в этой табличке на SalesLine, если из формы разноски фактуры - выполняется ELSE и ссылки в этой табличке на SalesTable

При этом в
\Classes\TaxSalesInvoice\deleteTaxRegulation

X++:
void deleteTaxRegulation()
{
    TaxWorkRegulation taxWorkRegulation;
    ;
    delete_from taxWorkRegulation
    where taxWorkRegulation.HeadingTableId == origHeadingTableId
       && taxWorkRegulation.HeadingRecId == origHeadingRecId;
}
origHeadingTableId = SalesTable

То есть фишка в том, что если разносить по кнопке счет фактура - все чиститься корректно, если по кнопке накладная - то не чистится. При этом тестировал - разнес накладную(с корректировкой налога), удалил все записи в TaxWorkRegulation, разнес затем фактуру - все корректно, налоги везде верные.
Если разнести накладную, потом фактуру, то записи тоже не чистятся.

Мне кажется тут что то не так...


Заранее спасибо!

Последний раз редактировалось Sada; 29.03.2016 в 12:25.