PHP код:
void clicked()
{
SalesLine salesLineSelect;
InventTrans inventTrans;
InventDim oldInventDim, newInventDim;
;
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.InventTransId, true);
if (inventTrans)
{
inventTrans.inventDimId = newInventDim.InventDimId;
inventTrans.doUpdate();
}
//а вот теперь меняем аналитику в строке на новую
salesLineSelect.InventDimId = newInventDim.InventDimId;
salesLineSelect.update();
}
TTSCOMMIT;
Salesline_ds.research();
}
А стандартные методы, работающие для других аналитик, не всегда работают так же с ГТД. feature наверное