Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие авар.doc
Скачиваний:
62
Добавлен:
02.09.2019
Размер:
2.34 Mб
Скачать

Загрузка транзакционных данных

FORM LOAD1C .

DATA:

CON TYPE I,

KOD TYPE C LENGTH 255,

KOD2 TYPE C LENGTH 255,

SUMMA TYPE F,

IND TYPE N LENGTH 6,

DS TYPE C LENGTH 19,

STR TYPE STRING,

ZAP_TXT TYPE C LENGTH 4086,

FL TYPE I,

FL2 TYPE I,

CONSTR TYPE C LENGTH 500,

VD TYPE OLE2_OBJECT,

VIB TYPE OLE2_OBJECT,

VIP TYPE OLE2_OBJECT,

VIB2 TYPE OLE2_OBJECT,

VIB3 TYPE OLE2_OBJECT,

PS TYPE OLE2_OBJECT,

PS1 TYPE OLE2_OBJECT,

SC TYPE OLE2_OBJECT,

SP TYPE OLE2_OBJECT,

ZAP TYPE OLE2_OBJECT,

ND TYPE OLE2_OBJECT,

ONEC TYPE OLE2_OBJECT.

DATA:

name_packet(30),

requestid LIKE bapi6107dr-request,

result_start_ipack TYPE TABLE OF bapiret2 WITH HEADER LINE.

CALL FUNCTION 'ZMOEK_LOAD_SPRAV'

EXPORTING

SRVR = SRVR

REF = REF

USERNAME = USERNAME

PASS = PASS

SP_NAME = 'ВидыДеятельности'

TABLENAME = 'ZMOEK_VD'

IPAK_NAME = 'ZPAK_D971TX39V8VCIFCNMKM41FTPR'

EXCEPTIONS

ONEC_OLE = 1

ONEC_PATH = 2

SPRAV = 3

OTHERS = 4

.

DO 1000 TIMES.

ENDDO.

IND = 0.

DELETE FROM ZMOEK_1C_TAB.

CONCATENATE

'ВЫБРАТЬ'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ КАК СЧЕТ,'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СУБКОНТО1 КАК СУБКОНТО1,'

'СУММА(ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СУММАОБОРОТКТ) КАК СУММАОБОРОТКТ'

'ИЗ'

'РЕГИСТРБУХГАЛТЕРИИ.ХОЗРАСЧЕТНЫЙ.ОСТАТКИИОБОРОТЫ('

'ДАТАВРЕМЯ('

D1(4)

','

D1+4(2)

','

D1+6(2)

', 00, 00, 00),'

'ДАТАВРЕМЯ('

D1(4)

','

D1+4(2)

','

D1+6(2)

', 23, 59, 59)'

', , ,'

', , СУБКОНТО1 = &ВИДДЕЯТЕЛЬНОСТИ) КАК ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ'

'ГДЕ'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ В ИЕРАРХИИ(&СЧЕТ)'

'СГРУППИРОВАТЬ ПО'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ,'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СУБКОНТО1'

INTO ZAP_TXT SEPARATED BY SPACE.

CONCATENATE 'SRVR=' SRVR ';REF=' REF ';USR=' USERNAME ';PWD=' PASS INTO CONSTR.

CREATE OBJECT ONEC 'V8.APPLICATION'.

CALL METHOD OF ONEC 'CONNECT' = CON

EXPORTING:

#1 = CONSTR.

IF CON = 1.

ZMOEK1CPARAM-PARAM = 'SRVR'.

INSERT ZMOEK1CPARAM.

UPDATE ZMOEK1CPARAM SET VALUE = SRVR WHERE PARAM = 'SRVR'.

ZMOEK1CPARAM-PARAM = 'REF'.

INSERT ZMOEK1CPARAM.

UPDATE ZMOEK1CPARAM SET VALUE = REF WHERE PARAM = 'REF'.

ZMOEK1CPARAM-PARAM = 'USERNAME'.

INSERT ZMOEK1CPARAM.

UPDATE ZMOEK1CPARAM SET VALUE = USERNAME WHERE PARAM = 'USERNAME'.

ZMOEK1CPARAM-PARAM = 'PASS'.

INSERT ZMOEK1CPARAM.

UPDATE ZMOEK1CPARAM SET VALUE = PASS WHERE PARAM = 'PASS'.

CALL METHOD OF ONEC 'NEWOBJECT' = ZAP

EXPORTING:

#1 = 'ЗАПРОС'.

SET PROPERTY OF ZAP 'ТЕКСТ' = ZAP_TXT.

CALL METHOD OF ONEC 'ПЛАНЫСЧЕТОВ' = PS.

CALL METHOD OF PS 'ХОЗРАСЧЕТНЫЙ' = PS1.

CALL METHOD OF ONEC 'СПРАВОЧНИКИ' = SP.

CALL METHOD OF SP 'ВИДЫДЕЯТЕЛЬНОСТИ' = VD.

CALL METHOD OF VD 'ВЫБРАТЬ' = VIB.

DO.

CALL METHOD OF VIB 'СЛЕДУЮЩИЙ' = FL.

IF FL NE 1.

EXIT.

ENDIF.

GET PROPERTY OF VIB 'КОД' = KOD.

KOD2 = KOD.

KOD = KOD2.

DO 1000 TIMES.

ENDDO.

CALL METHOD OF VD 'НАЙТИПОКОДУ' = VIB3

EXPORTING:

#1 = KOD.

CALL METHOD OF ZAP 'УСТАНОВИТЬПАРАМЕТР'

EXPORTING:

#1 = 'ВИДДЕЯТЕЛЬНОСТИ'

#2 = VIB3.

CALL METHOD OF PS1 'НАЙТИПОКОДУ' = SC

EXPORTING:

#1 = '90.01.1'.

CALL METHOD OF ZAP 'УСТАНОВИТЬПАРАМЕТР'

EXPORTING:

#1 = 'СЧЕТ'

#2 = SC.

CALL METHOD OF ZAP 'ВЫПОЛНИТЬ' = VIP.

CALL METHOD OF VIP 'ВЫБРАТЬ' = VIB2.

DO.

CALL METHOD OF VIB2 'СЛЕДУЮЩИЙ' = FL2.

IF FL2 NE 1.

EXIT.

ENDIF.

IND = IND + 1.

ZMOEK_1C_TAB-IND = IND.

ZMOEK_1C_TAB-DATA = D1.

ZMOEK_1C_TAB-VD = KOD.

ZMOEK_1C_TAB-SCHET = '90.01.1'.

GET PROPERTY OF VIB2 'СУММАОБОРОТКТ' = SUMMA.

ZMOEK_1C_TAB-SUMMA = SUMMA.

INSERT ZMOEK_1C_TAB.

ENDDO.

CALL METHOD OF PS1 'НАЙТИПОКОДУ' = SC

EXPORTING:

#1 = '90.02'.

CALL METHOD OF ZAP 'УСТАНОВИТЬПАРАМЕТР'

EXPORTING:

#1 = 'СЧЕТ'

#2 = SC.

CALL METHOD OF ZAP 'ВЫПОЛНИТЬ' = VIP.

CALL METHOD OF VIP 'ВЫБРАТЬ' = VIB2.

DO.

CALL METHOD OF VIB2 'СЛЕДУЮЩИЙ' = FL2.

IF FL2 NE 1.

EXIT.

ENDIF.

IND = IND + 1.

ZMOEK_1C_TAB-IND = IND.

ZMOEK_1C_TAB-DATA = D1.

ZMOEK_1C_TAB-VD = KOD.

ZMOEK_1C_TAB-SCHET = '90.02'.

GET PROPERTY OF VIB2 'СУММАОБОРОТКТ' = SUMMA.

ZMOEK_1C_TAB-SUMMA = SUMMA.

INSERT ZMOEK_1C_TAB.

ENDDO.

ENDDO.

CONCATENATE

'ВЫБРАТЬ'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ КАК СЧЕТ,'

'СУММА(ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СУММАОБОРОТКТ) КАК СУММАОБОРОТКТ'

'ИЗ'

'РЕГИСТРБУХГАЛТЕРИИ.ХОЗРАСЧЕТНЫЙ.ОСТАТКИИОБОРОТЫ('

'ДАТАВРЕМЯ('

D1(4)

','

D1+4(2)

','

D1+6(2)

', 00, 00, 00),'

'ДАТАВРЕМЯ('

D1(4)

','

D1+4(2)

','

D1+6(2)

', 23, 59, 59)'

') КАК ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ'

'ГДЕ'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ В ИЕРАРХИИ(&СЧЕТ)'

'СГРУППИРОВАТЬ ПО'

'ХОЗРАСЧЕТНЫЙОСТАТКИИОБОРОТЫ.СЧЕТ'

INTO ZAP_TXT SEPARATED BY SPACE.

CALL METHOD OF ONEC 'NEWOBJECT' = ZAP

EXPORTING:

#1 = 'ЗАПРОС'.

SET PROPERTY OF ZAP 'ТЕКСТ' = ZAP_TXT.

CALL METHOD OF PS1 'НАЙТИПОКОДУ' = SC

EXPORTING:

#1 = '62.02'.

CALL METHOD OF ZAP 'УСТАНОВИТЬПАРАМЕТР'

EXPORTING:

#1 = 'СЧЕТ'

#2 = SC.

CALL METHOD OF ZAP 'ВЫПОЛНИТЬ' = VIP.

CALL METHOD OF VIP 'ВЫБРАТЬ' = VIB2.

DO.

CALL METHOD OF VIB2 'СЛЕДУЮЩИЙ' = FL2.

IF FL2 NE 1.

EXIT.

ENDIF.

IND = IND + 1.

ZMOEK_1C_TAB-IND = IND.

ZMOEK_1C_TAB-DATA = D1.

ZMOEK_1C_TAB-VD = ''.

ZMOEK_1C_TAB-SCHET = '62.02'.

GET PROPERTY OF VIB2 'СУММАОБОРОТКТ' = SUMMA.

ZMOEK_1C_TAB-SUMMA = SUMMA.

INSERT ZMOEK_1C_TAB.

ENDDO.

FREE OBJECT VD.

FREE OBJECT VIB.

FREE OBJECT SP.

FREE OBJECT ONEC.

FREE OBJECT VIB2.

FREE OBJECT VIP.

FREE OBJECT PS.

FREE OBJECT PS1.

IF IND > 0.

name_packet = 'ZPAK_4K14U76T659PV2SV95SHQSGXH'.

CALL FUNCTION 'BAPI_IPAK_START'

EXPORTING

infopackage = name_packet

IMPORTING

requestid = requestid

TABLES

return = result_start_ipack.

MESSAGE S001(00) WITH 'Выполнено'.

ELSE.

MESSAGE I001(00) WITH 'Данные за выбранную дату отсутствуют!'.

ENDIF.

ENDIF.

ENDFORM. " LOAD1C