Код: Выделить всё
#include TxoApi.vih
#include ExtAttr.vih
#include KauConst.inc
#include Tpp_Key.inc
#Component "F_TXOAPI"
VipInterface Txo_SostavOS Implements ObjTxoIdentPlugin Licensed(Free);
// интерфейс для расчета амортизации по составляющим
Interface Txo_SostavOS;
// Логическая таблица
create view
var
CurSoprDoc : comp;
sostav : boolean;
as select
*
from
spmove (readonly)
,spmoveos (readonly)
,katos (readonly)
,osmc (readonly)
,katmc (readonly)
,SPOSMC (readonly)
,attrval (readonly)
where
((
CurSoprDoc == SPMove.Nrec
AND spmove.nrec == spmoveos.cspmove (noindex)
AND spmoveos.CKATOS == katos.nrec
AND spmoveos.CKATOS == osmc.ckatos (noindex)
AND katmc.nrec == osmc.cmc (noindex)
AND osmc.nrec == SPOSMC.COSMC (noindex)
AND cogettune('OS.USER.METUM')== SPOSMC.CNASTROS (noindex)
AND OSMC.nrec == attrval.cRec (noindex)
AND word(3109) == attrval.wtable (noindex)
! comp(00010000000002AFh) == attrval.cattrnam договор
! AND comp(00010000000002AEh) == attrval.cattrnam Организация
))
!AND OSMC.cmc <> comp(0)
AND OSMC.DATEK <> comp(0)
AND katmc.kgroupmc = '9002' // фильтр на группу мц
;
function GetInfo : string;
{
GetInfo := 'Циклическая обработка состава ОС';
}
function ParamMaster : string;
{
Message('!!!');
ParamMaster :='';
}
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
CurSoprDoc := buf.cSoprDoc;
TxoAllowRecallStoreCycles (hTxo);
if(getfirst spmove = tsok)
{
_loop spmoveos
{
sostav := false;
_loop osmc
{
if(getfirst sposmc = tsok)
{
sostav := true;
TxoBodyClear (hTxo);
_loop attrval
{
if (attrval.cattrnam = comp(00010000000002AFh)) // ссылка на организацию
{
TxoBodyAddKau (hTxo, wFlKau_Auto, 14, attrval.vcomp);
TxoDebugMsg (hTxo, 'SostavOS','Dogovor attrval.VSTRING = ' + string(attrval.VSTRING));
}
if (attrval.cattrnam = comp(00010000000002AEh)) // ссылка на договор
{
TxoBodyAddKau (hTxo, wFlKau_Auto, 1, attrval.vcomp)
TxoDebugMsg (hTxo, 'SostavOS','KatOrg attrval.VSTRING = ' + string(attrval.VSTRING));
}
}
TxoDebugMsg (hTxo, 'SostavOS',' SPOSMC.SIZNM = ' + string(SPOSMC.SIZNM));
TxoBodyAddKau (hTxo, wFlKau_auto, cgKau_KatPodr,katos.CPODR);
TxoBodySetSum (hTxo, SPOSMC.SIZNM, 0,0);
TxoBodyInsert (hTxo);
}
}
}
}
}
end.
Без внешних атрибутов работает, но проводка без аналитики по счету никому не нужна.
Как все таки эту аналитику сформировать в рамках данной задачи ?