![]() |
#20 |
Banned
|
Способом доступа к переменным. Так мы берем и хакаем через Args, а так мы имеем право сделать обертку и использовать члены напрямую.
Но все равно данный паттерн "обход базового метода с временным присвоением внутреннего условия" он заслуживает патента. У меня сейчас на четвертые сутки запуска на клиенте AX2012 самоудалилось немало заказов на живом приложении. Вылечилось одной строчкой кода для обхода стандартного удаления заголовка интер. закупки при удалении оригинального заказа. Как с таким справится ь в AX7 мне даже страшно ум приложить. По данному паттерну мне в СоС надо X++: RecId recId = _salesTable.RecId;
_salesTable.RecId = 0
next purchTableDelete(_salesTable)
_salesTable.RecId = recId; А overlayering это слишком тупо, да. X++: void purchTableDelete(SalesTable _salesTable) { InterCompanyPurchSalesReference interCompanyPurchSalesReference; PurchTable purchTable; if(!_salesTable) { return; } if (_salesTable.SkipUpdate == InterCompanySkipUpdate::Internal || _salesTable.SkipUpdate == InterCompanySkipUpdate::Both || !this.canCreatePurchOrder()) { return; } while select PurchId from interCompanyPurchSalesReference index hint SalesPurchIdx where interCompanyPurchSalesReference.SalesId == _salesTable.SalesId { select forupdate purchTable index hint PurchIdx where purchTable.PurchId == interCompanyPurchSalesReference.PurchId && purchTable.InterCompanyOrder; if (purchTable.isInterCompanyOrder() && purchTable.SalesOSInterOrigin != SalesOSInterOrigin::Sourcing) // добавлено { purchTable.SkipUpdate = InterCompanySkipUpdate::Internal; purchTable.delete(); } } } Хороший рябчик, да ![]() |
|
Теги |
chain of command, extensions |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|