Приклади використання розрахункових функцій в програмах користувача

  • Для отримання сальдо и оборотів по дебету зазначеного рахунку 321

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321",0,"",0)

Obj= OSB_CALC(DATN,DATK,"")

OB_Dt =OSB_DT_TURN(Obj,"321", 0,"", 0, "")

OB_Dt1 =OSB_DT_TURN(Obj,"321/1", 0,"", 0, "")

OB_Dt2 =OSB_DT_TURN(Obj,"321/2", 0,"", 0, "")

  • Для отримання сальдо по дебету и оборотів по дебету и кредиту рахунку 321/1 по аналітичній картці (ID- ІД аналіт. картки)

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

ID= ANLCRD_CREATE ("321/1","3507010","1111","","","","","","","","")

CALL OSB_DATA_CLEAR()

CALL OSB_DATA( "321/1", ID, "", 0 )

Obj=OSB_CALC(DATN, DATK,"")

VX_Dt=OSB_DT_BSLD( Obj, "321/1", ID, "" )

OB_Dt=OSB_DT_TURN( Obj, "321/1", ID, "", 0, "" )

OB_Kt=OSB_KT_TURN( Obj, "321/1", ID, "", 0, "" )

IX_Dt=OSB_DT_ESLD( Obj, "321/1", ID, "" )

  • Для отримання оборотів по дебету 321/1 в кореспонденції с 701

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321/1",0,"701",0)

Obj=OSB_CALC(DATN, DATK,"")

OB_Dt =OSB_DT_TURN(Obj,"321/1", ID,"701", 0, "")

  • Для отримання оборотів по дебету та кредиту 321/1 в розрізі кореспондуючих рахунків:

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321/1",0,"*",0)

Obj=OSB_CALC(DATN, DATK,"")

Korr_Sch = OSB_COR_FIRST (Obj, "321/1", 0 )

WHILE Korr_Sch <>""

OB_Dt =OSB_DT_TURN(Obj,"321/1",0 , Korr_Sch,0,"" )

OB_Kt =OSB_KT_TURN(Obj,"321/1",0, Korr_Sch,0,"" )

Korr_Sch = OSB_COR_NEXT (Obj, "321/1",0)

WEND

  • Для отримання оборотів по дебету і кредиту 321/1 в розрізі всіх аналітичних карток:

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA( "321/1",0,"",0)

Obj= OSB_CALC(DATN,DATK,"")

ID=

OSB_ANL_FIRST ( Obj, "321/1")

WHILE ID<>0

OB_DT =OSB_DT_TURN(Obj,"321/1",ID , "",0,"" )

OB_KT =OSB_KT_TURN(Obj,"321/1",ID , "",0,"" )

ID = OSB_ANL_NEXT (Obj,"321/1")

WEND

  • Для отримання оборотів по дебету та кредиту 321/1 по аналітичним карткам зі вказаними реквізитами:

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321/1",0,"",0)

Obj= OSB_CALC(DATN,DATK,"")

ID = OSB_ANL_CDFST (Obj,0, "321/1","3507010", "", "", "", "", "", "", "", "", "")

WHILE ID <> 0

‘ ID — карточка последнего уровня картотеки

IF ANLCRD_GET_LEV(ID) = ANLCRD_LCNTSCH("321/1") THEN

OB_Dt =OSB_DT_TURN(obj, "321/1", ID,"" , 0, "")

OB_Kt =OSB_KT_TURN(obj, "321/1", ID,"" , 0, "")

END IF

ID = OSB_ANL_LNEXT (obj,1,"321/1")

WEND

  • Для отримання перебору проводок по рахунку

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321/1",0,"",0)

Obj = OSB_CALC( DATN, DATK, "" )

CALL OSB_ENTRY_ON ( Obj )

ID_PRW = OSB_GET_FENTRY (Obj, 1)

WHILE ID_PRW <> 0

SCH_DT=ENT_DT(ID_PRW)

ANL_DT=ENT_DT_ANL(ID_PRW)

SCH_KT=ENT_KT(ID_PRW)

ANL_KT=ENT_KT_ANL(ID_PRW)

SUM_ PRW =ENT_SM(ID_PRW)

‘…

ID_PRW =

OSB_GET_NENTRY ( Obj, 1)

WEND

  • Для отримання перебору проводок по дебету рахунку

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

CALL OSB_DATA_CLEAR()

CALL OSB_DATA("321/1",0,"",0)

Obj = OSB_CALC( DATN,DATK, "" )

CALL OSB_ENTRY_ON( Obj )

I=0

ID = OSB_ANL_FIRST( Obj,"321/1")

WHILE ID<>0

I=I+1

SUM_ANL =OSB_DT_TURN(Obj,"321/1", ID,"", 0, "")

IF SUM_ANL <>0 THEN

ID_PRW = OSB_GET_FPENTRY ( Obj,I,"321/1", ID, "", 1 )

DO WHILE ID_PRW <> 0

SUM_ PRW =ENT_SM(ID_PRW)

ID_PRW = OSB_GET_NENTRY( Obj,I)

LOOP

END IF

ID = OSB_ANL_NEXT(Obj,"321/1")

WEND

  • Для отримання оборотів по дебету рахунку 321/1 по аналітичній картці (ID1), і зазначених кор.рахунків тa їх аналітики

DATN=DATE_PACK(1,12,2017)

DATK=DATE_PACK(31,12,2017)

ID1= ANLCRD_ID ("321/1","3507010","1111","","","","","","","","")

ID2= ANLCRD_ ID ("701","3507010","1111","","","","","","","","")

ID3= ANLCRD_ ID ("301","1","3507010","00000001","1111","","","","","","")

CALL OSB_DATA_CLEAR()

CALL OSB_DATA( "321/1", ID1, "*", CONST_ULONG_MAX )

Obj=OSB_CALC(DATN, DATK,"")

OB_Dt1=OSB_DT_TURN( Obj, "321/1", ID1, "701", ID2 , "" )

OB_Dt2=OSB_DT_TURN( Obj, "321/1", ID1, "301", ID3 , "" )