Содержание проводки
Добавлено: 08 сен 2011, 09:34
Здравствуйте!
Помогите разобраться как заполнить поле содержание проводки.
Из одного vip-а раскладываются проводки по разным счетам, в соответствии со счетом нужно заполнить Содержание проводки. Как это сделать в одном vip-е ?
Помогите разобраться как заполнить поле содержание проводки.
Из одного vip-а раскладываются проводки по разным счетам, в соответствии со счетом нужно заполнить Содержание проводки. Как это сделать в одном vip-е ?
Код: Выделить всё
#include TxoApi.vih
VipInterface TXO_SnabUsl implements ObjTxoIdentPlugin;
Interface TXO_SnabUsl;
Create View
From KatSopr (Readonly),Katpodr, SoprOrdB,
Spsopr (ReadOnly),
ConnectDoc (ReadOnly);
function GetInfo : String;
{
GetInfo := 'Приобретение коммунальных услуг';
}
function ParamMaster : String;
{
Message('<режим 0 - организации> - дебет'#13+
'<режим 1 - организации> - кредит'#13+
'8.13_Приобретение услу, выполненых работ(прочих)'#13+
'Нужно задавать циклическую обработку.');
ParamMaster := '';
}
//-------------------------------------------------------------------------------
procedure StoreCycles ( hTxo : LongInt; buf : TTxoApiInfoDoc );
var SchetD: String[10];
cSpKau101 : Comp;
{
if ( GetFirst KatSopr Where (( buf.cSoprDoc == KatSopr.nrec )) <> tsOk )
Exit;
if ( GetFirst KatSopr Where (( buf.cSoprDoc == KatSopr.nrec )) = tsOk )
{
_loop Spsopr where (( KatSopr.nrec == SpSopr.cSopr and
Spsopr.nrec == Soprordb.cspsopr))
{
_Loop SoprOrdB where (( SoprordB.cpodr == Katpodr.nrec ))
and substr(Katpodr.kod,1,1) <> '4'
{
if (Getfirst KatUsl Where ((Spsopr.cmcusl == Katusl.nrec )) = tsOk )
{
if ( MatchesMask(KatUsl.kod, '33#;63_002;32_001;71_028;71_025;71_049;71_005;|33_039;33_100') ) SchetD := '8041.06' ;
if ( MatchesMask(KatUsl.kod, '35_011;35_012;36_001;81_001')) SchetD := '8041.11' ;
if ( MatchesMask(KatUsl.kod, '61#;|61_016;61_022;61_017;61_019;61_020')) SchetD := '8041.12' ;
if ( MatchesMask(KatUsl.kod, '85#')) SchetD := '8041.16' ;
if ( MatchesMask(KatUsl.kod, '68_001;61_016;61_022') ) SchetD := '8041.17' ;
if ( MatchesMask(KatUsl.kod, '38_004;43_034;74_010;84_023;84_021;86#')) SchetD := '8041.18' ;
}
{ if (SchetD='8041.17') SchetK:='3362.01'; else SchetK:='3311.01'; }
cSpKau101 := Comp(0);
// Отраслевой сегмент
if ( GetFirst ConnectDoc Where (( LINKPODRKAU101 == ConnectDoc.Vid and
SoprordB.cpodr == ConnectDoc.cDoc2 )) = tsOk )
cSpKau101 := ConnectDoc.cDoc1;
if ( GetFirst BuhSchet Where (( coGetTune( 'FIN.USER.CPLANSSCH' ) == BuhSchet.cPlansSch and
SchetD == BuhSchet.Code )) = tsOk )
TxoBodyClear(hTxo);
//дебет // потому что циклическая обработка
TxoBodyAddSchet ( hTxo, wFlKau_mode0, BuhSchet.Schet, BuhSchet.SubSch );
TxoBodyAddKau ( hTxo, wFlKau_mode0, 101, cSpKau101);
TxoBodyAddKau ( hTxo, wFlKau_mode0, cgKau_KatPodr, Katpodr.nrec );
TxoBodyAddKau ( hTxo, wFlKau_mode0, cgKau_KatUsl, SpSopr.cmcusl );
//кредит
if ( GetFirst BuhSchet Where (( coGetTune( 'FIN.USER.CPLANSSCH' ) == BuhSchet.cPlansSch and
SchetK == BuhSchet.Code )) = tsOk )
TxoBodyAddSchet ( hTxo, wFlKau_mode1, BuhSchet.Schet, BuhSchet.SubSch );
TxoBodyAddKau ( hTxo, wFlKau_mode1, 101, cSpKau101);
TxoBodySetSum ( hTxo,SoprOrdB.price,0,0);
TxoBodyInsert ( hTxo );
}
}
}
}
end.