Здраствыйте !
Никак немогу найти решение для изменения SalesLinе SаlesQty поля . Дело в том , что как менеджер введет все данные для заказа , есть сделана такая мелочь как подсчитание % для увеличивания количеств ( ето из за своих нужд мы можем добавить к конракт несколько % .. ) .
Код:
ttsbegin;
while select forupdate salesLin
index hint SalesLineIdx
where salesLin.SalesId == salesTbl.SalesId
{
nDec = Unit::decimals(salesLin.SalesUnit);
nOld = salesLin.SalesQty;
nSkt = ( nOld * nProc ) / 100;
nSkt = round(nSkt,nDec);
nNew = nOld + nSkt;
if ( nNew != nOld )
{
salesLin.SalesQty = nNew;
SalesLine::modifySalesQty(salesLin,InventDim::find(salesLin.InventDimId));
salesLin.update();
}
}
ttscommit;
Всё хорошо - количества изменяеться . Но ... если посмотреть раядом SalesLinе в "Запросы" -> "Развертывание" , то там на "Требуемое количество" ( ReqTrans ) стоит старое значение ..

. Если я в ручную поправляю количество в SalesLine , то тогда в "Развертываниях" "Требуемое кол." изменяеться . По моему всю работу для изменения етих данных должен быть SalesLine::modifySalesQty(salesLin,InventDim::find(salesLin.InventDimId)) метод , который используеться в методе "modified" для SаlesQty в SalesLine_ds . Но почему то в ручную он дейстует , а идя по цикл - нет ... Помогите пожалуйста , чего там нехватает в данном примере для того , чтобы достичь желаемого результата ...
С уважением , Римантас