to Pavlik, что конкретно не понятно? В самом процессе я не силен. По коду - у Вас есть Changing параметр C_S_CHAS(Characteristics combination), из этого параметра считываются значения признаков FISCPER, CALDAY и CMMT_ITEM.
Code:
ASSIGN COMPONENT 'FISCPER' OF STRUCTURE C_S_CHAS to <FPERIOD>.
CHECK <FPERIOD> IS ASSIGNED.
ASSIGN COMPONENT 'CALDAY' OF STRUCTURE C_S_CHAS to <DATE1>.<<<<<<<<<<<<<
CHECK <DATE1> IS ASSIGNED.
ASSIGN COMPONENT 'CMMT_ITEM' OF STRUCTURE C_S_CHAS to <CMMT>.
CHECK <CMMT> IS ASSIGNED.
На основании этих значений происходит проверка на выполнение условия и вычисляется новое значение для признака CALDAY.
Code:
FPER = <FPERIOD>.
CONCATENATE FPER(4) FPER+5(2) '01' INTO DATE2.
IF <CMMT> ne 'BB' and <CMMT> ne 'BB_BURDN' and <CMMT> ne 'BB_DEP_SHORT' and <CMMT> ne 'BB_DEP_LONG'.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = DATE2
IMPORTING
LAST_DAY_OF_MONTH = DATE3.
DATE2 = DATE3.
ENDIF.
<DATE1> = DATE2. <<<<<<<<<<<
То есть, если нужно поменять логику деривации, то Вам требуется прописать новую логику для вычисления DATE2 и присвоить это значение в <DATE1>.