получилось

.
выкладываю код.
добавление партнера реализовал в инклуде RV60AFZD (юзер экзиты для партнеров)
Code:
FORM USEREXIT_NEWROLE_XVBPAK_AVBPAK.
* modify or insert billing head partner role
* example with the role 'RG'
* perform xvbpak_role_add using 'RG'.
* example for a another role.
* perform xvbpak_role_add using 'AP'.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) FORM USEREXIT_NEWROLE_XVBPAK_AVBPAK, Выход S
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 266 Z_RV60AFZD_ADD_PARTNER. "active version
data: l_lifnr type lfa1-lifnr,
l_timestamp type oifbbp1-ftmstm.
data: ls_oifbbp1 type oifbbp1.
*-- только для счетов-фактур генерируемых из модуля IS-Oil SSR
if vbrk-fkart eq 'ZSSC'.
concatenate vbrk-fkdat '000000'
into l_timestamp.
*-- считывание НК присвоенного к МР
call function 'OIFBBP1_SINGLE_READ'
exporting
oifbbp1_pblnr = vbrk-oiripblnr
oifbbp1_parfn = 'NK'
oifbbp1_ftmstm = l_timestamp
importing
woifbbp1 = ls_oifbbp1
exceptions
not_found = 1
others = 2.
if sy-subrc ne 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
if ls_oifbbp1-lifnr is initial.
return.
endif.
move avbpak-lifnr to l_lifnr.
avbpak-lifnr = ls_oifbbp1-lifnr.
*-- добавление роли партнера НК и присвоение к ней считанного НК
perform zz_xvbpak_role_add
using 'NK'.
move l_lifnr to avbpak-lifnr.
endif.
ENDENHANCEMENT.
*$*$-End: (1 )--------------------------------------------------------------------------------$*$*
ENDFORM.
ENHANCEMENT 267 Z_RV60AFZD_ADD_PARTNER. "active version
*&---------------------------------------------------------------------*
*& Form zz_XVBPAK_ROLE_ADD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LOC_PARVW text
*----------------------------------------------------------------------*
form zz_xvbpak_role_add
using loc_parvw.
data: l_lfa1 type lfa1.
if loc_parvw is initial
or avbpak-lifnr is initial.
return.
endif.
*-- считывание на наличия добавляемой роли партнера
read table xvbpak
with key parvw = loc_parvw
transporting no fields.
if sy-subrc eq 0.
*-- если роль уже добавлена то выходим
return.
endif.
clear xvbpak.
*-- считывание кредитора по коду партнера-кредитора
call function 'VIEW_LFA1'
exporting
lieferant = avbpak-lifnr
importing
anschrift = l_lfa1
exceptions
others = 1.
if sy-subrc ne 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
*-- добавление партнера
xvbpak-parvw = loc_parvw.
xvbpak-adrda = 'D'.
move-corresponding l_lfa1 to xvbpak.
append xvbpak.
xvbpa = xvbpak.
sort xvbpak by parvw.
endform. "xvbpak_role_add using loc_parvw.
ENDENHANCEMENT.
С уважением,
Руслан.