Показать сообщение отдельно
Старый 24.02.2004, 15:12   #7  
ДК is offline
ДК
Участник
 
43 / 10 (1) +
Регистрация: 24.06.2003
Адрес: Краснодар
PHP код:
void clicked()
{
    
SalesLine           salesLineSelect;
    
InventTrans         inventTrans;
    
InventDim           oldInventDimnewInventDim;
    ;
        
TTSBEGIN;
        while 
select forupdate salesLineSelect where salesLineSelect.SalesId == SalesTable.SalesId
        
{
            
//получили аналитику строки
            
oldInventDim InventDim::find(salesLineSelect.inventDimId);
            
//установили "пустую" ГТД
            
oldInventDim.InventGtdId_RU "";
            
//нашли / создали новую аналитику
            
newInventDim InventDim::findOrCreate(oldInventDim);
            
//если есть проводки - правим InventDim в проводке
            
inventTrans InventTrans::findTransId(salesLineSelect.InventTransIdtrue);
            if (
inventTrans)
            {
                
inventTrans.inventDimId newInventDim.InventDimId;
                
inventTrans.doUpdate();
            }
            
//а вот теперь меняем аналитику в строке на новую
            
salesLineSelect.InventDimId newInventDim.InventDimId;
            
salesLineSelect.update();
        }
        
TTSCOMMIT;
        
Salesline_ds.research();

А стандартные методы, работающие для других аналитик, не всегда работают так же с ГТД. feature наверное
__________________
-----------------------------------------
Искренне Ваш, ДК.