Все происходит ровно так, как в примере
http://microsoft-dynamics-ax-erp.blo...ders-with.html , только имя класса и таблицы другое.
Да, перебирать собираюсь именно эти 2 строки.
Вот методы:
SalesAutoCreate.construct такой:
static SalesAutoCreate construct(Common buffer = null,
Object object = null)
{
switch (buffer.tableId)
{
case tablenum(tmpsalesline) : return new SalesAutoCreate_TmpsalesLine(buffer,object);
case tablenum(PurchLine) : return new SalesAutoCreate_ProjPurchLine(buffer,object);
case tablenum(TmpSalesItemReq) : return new SalesAutoCreate_TmpSalesItemReq(buffer,object);
case tablenum(SalesBasketLine) : return new SalesAutoCreate_Basket(buffer,object);
case tablenum(TmpFrmVirtual) : return SalesAutoCreate_Purch::construct(buffer,object);
//BUOV 30.10.12 ZNO002 --->
case tablenum(FromCacheSalesLine) : return new SalesAutoCreate_ISTU(buffer,object);
//BUOV 30.10.12 ZNO002 --->
default : throw error(strFmt("@SYS23419",tableId2Name(buffer.tableId)));
}
}
SalesAutoCreate_ISTU.new :
void new(Common _initFromBuffer, Object _callBackClass)
{
;
select forupdate fromCacheSalesLine
where fromCacheSalesLine.RecId == _initFromBuffer.recId;
super(_initFromBuffer,_callBackClass);
FromCacheSalesLine = _initFromBuffer;
}
SalesAutoCreate.create() стандартный:
void create()
{
;
try
{
setPrefix("@SYS55110");
ttsbegin;
while (this.recordExist())
{
this.setCust();
setPrefix(#PreFixField(CustTable,AccountNum));
this.setSalesTable();
this.setSalesLine();
setPrefix(#PreFixField(SalesLine,ItemId));
this.nextRecord();
}
this.endUpdate();
ttscommit;
}
catch (Exception:

eadlock)
{
retry;
}
}