SAP 리스부채 상각 스케줄 — 부채와 사용권자산을 한 화면에서 맞춰 보기
리스는 계약 하나에서 부채와 자산이 동시에 움직입니다. 부채는 이자가 붙고 리스료만큼 줄고, 자산은 정액으로 상각됩니다. 그 둘을 기준월에 나란히 세우고 잔액이 앞으로 낼 리스료를 정확히 설명하는지까지 확인하는 화면입니다.
리스계약은 한 건에서 두 개의 잔액을 동시에 만듭니다. 리스부채는 유효이자율법으로 이자가 붙고 리스료만큼 줄어들고, 사용권자산은 기간에 걸쳐 정액으로 상각됩니다. 출발점은 같지만 줄어드는 속도가 달라 매달 잔액이 벌어지고, 결산에서는 그 차이를 설명할 수 있어야 합니다. 감가상각 현황 화면은 자산 쪽만, 차입금 상환스케줄 화면은 금융부채 쪽만 보여 주기 때문에 리스는 두 화면을 오가며 맞춰 보게 됩니다. 이 화면은 같은 계약의 부채와 자산을 한 줄에 세워 그 수고를 없앱니다.
여기에 한 가지를 더 얹었습니다. 월별 항등식(기초 − 원금상환 = 기말)은 이자율이 잘못 들어가도 성립하므로, 잔액이 앞으로 낼 리스료를 정확히 설명하는지를 따로 확인합니다. 기준월 시점에 확정된 리스료로 잔여 회차를 다시 할인해 현재가치를 구하고 기말 리스부채와 대사하는 방식입니다. 채권·채무 장단기 재분류 화면이 만기 기준으로 계정을 가르는 일을 한다면, 이 화면은 같은 유동/비유동 구분을 상환 스케줄에서 직접 계산해 보여 준다는 점이 다릅니다. SAP 표준 데이터 구조를 그대로 이어받아 OpenUI5 화면으로 확장한 화면입니다. 실제 구동 화면 8종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 리스계약 마스터와 조건 — 계약(
VICNCN)과 조건(VICDCOND) 구조를 그대로 사용 - 정기전기 — 리스료 지급 전표는 표준 정기전기(
RERAPP)가 생성 - 사용권자산 — 자산 마스터(
ANLA)와 상각 실적(ANLC) - 전표 — 헤더(
BKPF)와 라인(ACDOCA)의 계정·차대·금액 - 텍스트 — 계정(
SKAT) · 코스트센터(CSKT) · 회사코드(T001)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 리스회계 · 사용권자산/리스부채 |
| Namespace | zui5.lease |
| 셸 구조 | 조회조건 영역(우측 조회) + 계약별 결과 테이블, 월별 스케줄·전표 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 1개 |
| 대응 T-code | RECN(리스계약 조회) · RERAPP(정기전기) · AW01N(사용권자산) · FBL3N(리스부채 계정 원장) |
| T-code 선정 근거 | 계약·조건은 RECN, 월 리스료 전기는 RERAPP, 자산 상각은 AW01N, 잔액 대사는 FBL3N 이 각각 원천이 됩니다 |
| 성격 | 조회·검증형 — 계약 등록과 정기전기는 표준 트랜잭션이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 8종 둘러보기
회사코드와 기준년월을 넣고 조회하면 계약별 잔액이 한 줄로 뜹니다 → 오른쪽 구간에서 유동·비유동과 사용권자산을 확인하고 → 상세에서 월별 스케줄과 전표까지 되짚습니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 기준년월을 고릅니다. 두 값은 필수이며, 기준년월 기본값은 당월입니다. 이 달 기준으로 기초·기말 잔액과 당월 발생액이 계산됩니다.
- 자산유형(부동산 · 차량운반구 · 기계장치 · IT장비)과 코스트센터, 계약상태로 범위를 좁힙니다.
- 계약번호와 계약명은 부분일치로 넣습니다. 입력필드에서 Enter 를 누르면 바로 조회됩니다.
- 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다. 한 번 조회한 뒤에는 Select · CheckBox 값을 바꾸는 즉시 재조회됩니다.
- 표시옵션의 조건변경(재측정) 계약만 을 켜면 기간 중 리스료가 바뀐 계약만 남습니다.
- 행을 클릭하거나 오른쪽 상세 버튼을 누르면 월별 상각 스케줄과 리스 전표가 다이얼로그로 열립니다.
- 목록과 스케줄은 각각 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.
리스부채 잔액 정합성 판정
스케줄이 맞는지 보려면 무엇을 봐야 할까요. 월별 항등식만으로는 부족합니다. 이자율을 잘못 넣어도 기초 − 원금상환 = 기말 은 그대로 성립하기 때문입니다. 그래서 이 화면은 잔액 자체를 원리금 구조로 되짚어 판정합니다.
| 판정 | 기준 | 표시 |
|---|---|---|
| 월별 항등식 | 기초 리스부채 − 원금상환 = 기말 리스부채 / 리스료 − 이자비용 = 원금상환 | 위배 시 조회 단계에서 차단 |
| 잔여 현재가치 대사 | 기준월에 확정된 리스료로 잔여 회차를 할인한 현재가치 = 기말 리스부채 | 정합 / 차이 |
| 허용 오차 | 원 단위 반올림 누적을 감안해 max(50원, 잔여개월 × 3원) | 초과 시 차이로 표시하고 행을 강조 |
| 만기 도달 | 마지막 회차의 기말 리스부채 = 0, 사용권자산 장부가 = 0 | 계약상태 종료 |
| 만기 임박 | 잔여기간 6개월 이하 | 계약상태 만기임박 · 행 강조 |
| 유동/비유동 분해 | 유동 + 비유동 = 기말 리스부채, 비유동 ≥ 0 | 분해 오류 시 차이 |
잔액을 잔여 리스료로 되짚는 이유
리스부채는 "앞으로 낼 리스료의 현재가치" 라는 정의를 매달 그대로 유지합니다. 그래서 기말 잔액과 잔여 스케줄의 현재가치가 어긋난다면 이자율·기간·리스료 중 하나가 어긋난 것입니다. 결산 직전에 이 한 컬럼만 훑어도 손봐야 할 계약이 바로 드러납니다.
유효이자율 상각 5단계
개시일 측정부터 월별 전개까지를 다섯 단계로 나눠 계산합니다. 화면의 모든 금액은 이 순서대로 만들어집니다.
| 단계 | 계산 | 비고 |
|---|---|---|
| 1. 리스료 스케줄 확정 | 월 고정 리스료 × 리스기간(개월), 기말 지급 가정 | 조건유형이 리스료인 계약 조건에서 가져옵니다 |
| 2. 개시일 리스부채 | Σ 리스료 ÷ (1 + 월이자율)k, k = 1..n | 월이자율 = 증분차입이자율 ÷ 12 |
| 3. 개시일 사용권자산 | 개시일 리스부채 + 선급리스료 + 초기직접원가 | 자산에만 가산되고 부채에는 반영하지 않습니다 |
| 4. 월별 전개 | 이자비용 = 기초잔액 × 월이자율 → 원금상환 = 리스료 − 이자비용 → 기말 = 기초 − 원금상환 | 마지막 회차는 잔액을 0 으로 맞춰 정산 |
| 5. 사용권자산 상각 | 개시일 사용권자산 ÷ 리스기간(정액), 마지막 회차에서 잔액 정산 | 부채는 체감, 자산은 정액이라 잔액이 벌어집니다 |
기간 중 리스료가 바뀌면 그 달에 잔여 회차를 새 금액으로 다시 할인해 부채를 재측정하고, 차액을 사용권자산에 가산한 뒤
잔여 기간으로 상각액을 다시 계산합니다. 화면에서는 그 달의 행이 조건변경 재측정 으로 표시되고 조정액이 부호와 함께 남습니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대상 회사코드. 통화는 회사코드 통화를 따릅니다 |
| 기준년월 | 필수 | 이 달 기준으로 기초·기말 잔액과 당월 발생액을 계산. 기본값은 당월 |
| 자산유형 | 선택 | 부동산 · 차량운반구 · 기계장치 · IT장비 |
| 리스계약번호 | 선택 | 부분일치. Enter 로 바로 조회 |
| 계약명 | 선택 | 부분일치. Enter 로 바로 조회 |
| 코스트센터 | 선택 | 리스료·상각비가 귀속되는 코스트센터 |
| 계약상태 | 선택 | 정상 · 만기임박(잔여 6개월 이하) · 종료 |
| 조건변경(재측정) 계약만 | 선택 | 기간 중 리스료가 바뀌어 부채를 재측정한 계약만 표시 |
결과 컬럼
계약 목록
| 컬럼 | 의미 · 표시 |
|---|---|
| 리스계약번호 · 계약명 | 계약 식별자와 명칭 |
| 자산유형 · 코스트센터 | 사용권자산 구분과 비용 귀속처 |
| 리스기간 · 잔여기간 | 개시일 ~ 종료일, 기준월 익월부터 남은 개월 수 |
| 증분차입이자율 | 현재가치 할인율(연). 월할로 적용 |
| 당월 이자비용 | 기초 리스부채 × 월이자율 |
| 당월 원금상환 | 리스료 − 당월 이자비용 |
| 당월 상각비 | 사용권자산 정액 상각액 |
| 리스부채 기말잔액 | 기초 − 원금상환. 우측정렬, 통화 표시 |
| 유동(1년내) · 비유동 | 익월부터 12개월 원금상환액 합과 그 나머지 |
| 사용권자산 장부가 | 기초 장부가 − 당월 상각비 |
| 계약상태 | 정상 · 만기임박 · 종료 |
| 잔여PV 검증 | 잔여 리스료 현재가치와 기말잔액 일치 여부 |
상세 — 월별 스케줄과 전표
| 영역 | 내용 |
|---|---|
| 계약 헤더 | 개시일 리스부채 · 개시일 사용권자산 · 선급리스료 · 초기직접원가 · 기말잔액 · 유동/비유동 · 누적 이자비용 · 계약상태 · 잔여PV 검증 |
| 월별 상각 스케줄 | 회계기간 · 회차 · 기초 리스부채 · 이자비용 · 리스료 · 원금상환 · 기말 리스부채 · 당월 상각비 · 사용권자산 장부가 · 재측정 조정 · 이벤트 |
| 리스 전표 | 회계기간 · 전표번호 · 전기일 · 전표유형 · 계정 · 차대 · 금액 · 적요 |
SAP 표준 기능 매핑
이 화면은 계약 등록이나 정기전기를 대체하지 않습니다. 표준 실행은 T-code 가 담당하고, 이 화면은 그 결과에 조회·검증 관점을 더해 확장합니다.
| 테이블 · 오브젝트 | 역할 |
|---|---|
RECN · VICNCN | 리스계약 마스터 — 계약번호 · 기간 · 상대방 |
VICDCOND | 계약 조건 — 리스료 금액과 주기 |
RERAPP | 정기전기 — 리스료 지급 전표 생성 |
ANLA · ANLC · AW01N | 사용권자산 마스터와 상각 실적 |
BKPF · ACDOCA | 전표 헤더와 라인 — 이자비용 · 리스부채 · 감가상각비 |
SKA1 · SKAT | 계정 마스터와 명칭 |
CSKS · CSKT | 코스트센터와 명칭 |
FBL3N | 리스부채 계정 원장 — 화면 잔액과 대사 |
도입 시 확인이 필요한 부분
증분차입이자율을 계약별로 둘지 자산유형별로 둘지, 리스료 지급 시점을 기초로 볼지 기말로 볼지는 회사 기준에 따라 달라집니다. 소액·단기 리스 면제 범위와 비리스 요소 분리 여부도 마찬가지입니다. 화면은 계약 조건에 등록된 값을 그대로 읽어 계산하므로, 도입 때는 그 값을 어디에 등록해 둘지부터 정하는 편이 좋습니다.
참고 CDS 뷰
운영 서비스로 연결할 때는 계약과 조건, 사용권자산을 묶은 뷰로 서빙하고 월별 전개는 계산 함수에 두는 구성을 제안합니다.
@AbapCatalog.sqlViewName: 'ZCLEASESCH'
@EndUserText.label: '리스계약 월별 상각 스케줄 (Z)'
define view Z_C_LEASE_SCHEDULE
as select from vicncn as Contract
inner join vicdcond as Cond on Contract.recnnr = Cond.recnnr
and Cond.condtype = 'L001' // 리스료 조건
left outer join anla as RouAsset on RouAsset.bukrs = Contract.bukrs
and RouAsset.anln1 = Contract.zzanln1
left outer join csks as CostCtr on CostCtr.kokrs = Contract.kokrs
and CostCtr.kostl = Contract.zzkostl
{
key Contract.bukrs,
key Contract.recnnr as ContractId,
Contract.xcncn as ContractName,
Contract.cncnstart as StartDate,
Contract.cncnend as EndDate,
Cond.cdrate as MonthlyPayment,
Contract.zzdiscrate as DiscountRate, // 증분차입이자율(연)
RouAsset.anlkl as AssetClass,
CostCtr.kostl as Kostl,
division( Contract.zzdiscrate, 12, 6 ) as MonthlyRate
}
// 월별 전개(기초잔액·이자비용·원금상환·기말잔액)는 AMDP 테이블 함수로 계산하고,
// 전기 결과는 ACDOCA(리스부채·이자비용·감가상각비 계정)와 대사합니다.
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경의 리스 관리 방식에 맞춰 조정합니다.
원천 테이블 · 필드 매핑
| 화면 값 | 원천 | 도출식 · 설명 |
|---|---|---|
| 계약번호 · 계약명 | VICNCN.RECNNR · XCNCN | 리스계약 헤더 |
| 리스기간 | VICNCN.CNCNSTART · CNCNEND | 개시일 ~ 종료일 |
| 월 리스료 | VICDCOND.CDRATE | 조건유형이 리스료인 조건 금액 |
| 증분차입이자율 | 계약 조건 등록값 | 월이자율 = 연이자율 ÷ 12 |
| 개시일 리스부채 | 계산값 | Σ 리스료 ÷ (1 + 월이자율)k |
| 개시일 사용권자산 | 계산값 | 개시일 리스부채 + 선급리스료 + 초기직접원가 |
| 당월 이자비용 | 계산값 | 기초 리스부채 × 월이자율 (원 단위 반올림) |
| 당월 원금상환 | 계산값 | 리스료 − 이자비용 |
| 기말 리스부채 | 계산값 / ACDOCA 대사 | 기초 − 원금상환 |
| 사용권자산 장부가 | 계산값 / ANLC.NAFAG 대사 | 기초 장부가 − 정액 상각액 |
| 재측정 조정 | 계산값 | 재측정 리스부채 − 직전 기말 리스부채 |
| 전표 라인 | BKPF.BELNR · ACDOCA.RACCT · DRCRK · HSL | 전표번호 · 계정 · 차대 · 금액 |
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.f.DynamicPage — 타이틀 · 조회조건 헤더 · 결과 테이블 |
| 조회조건 | sap.ui.layout.form.Form + ResponsiveGridLayout 3열, 오른쪽 끝에 조회·초기화 |
| 결과 테이블 | sap.ui.table.Table — 17개 컬럼, 행 강조 · 합계 Footer · 가로 스크롤 |
| 상세 | sap.m.Dialog + ObjectHeader + sap.m.Table 2종(스케줄 · 전표) |
| 상태 표시 | ObjectStatus · ObjectNumber — MessageType 값만 사용 |
| 데이터 | ModelMock — localdata JSON 을 fetch 로 읽어 Promise 로 반환 |
| 공통 | BaseController.downloadCsv(UTF-8 BOM) · ErrorHandler · 포맷터 21종 |
컬럼이 많은 화면에 sap.ui.table 을 쓴 이유
계약 하나에 부채와 자산, 당월 발생액과 잔액 구분까지 붙으면 컬럼이 열일곱 개가 됩니다. 이 정도 폭에서는 목록형 테이블보다 그리드형 테이블이 가로 스크롤과 컬럼 이동, 정렬을 훨씬 자연스럽게 다룹니다. 반대로 상세 다이얼로그의 스케줄·전표는 건수가 적고 세로로 읽는 표라 목록형 테이블을 그대로 씁니다.
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment |
Component.js | UIComponent · ErrorHandler 초기화 |
manifest.json | 앱 디스크립터 — 앱 ID(zui5.lease) · ko 로케일 |
view/Main.view.xml | DynamicPage 골격 + 조회조건 · 메시지 · 결과 테이블 프래그먼트 |
view/fragments/MainSearch.fragment.xml | 조회조건 3열 폼, 오른쪽 끝 조회·초기화 |
view/fragments/MainTable.fragment.xml | 결과 테이블 17컬럼 · 합계 Footer |
view/fragments/DetailDialog.fragment.xml | 월별 스케줄 · 리스 전표 상세 |
controller/Main.controller.js | 조회 · 월별 전개 집계 · 검증 판정 · 상세 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
model/formatter.js | 금액 · 비율 · 기간 · 상태 포맷 21종 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
localdata/*.json | 계약 · 월별 스케줄 · 전표 검증용 데이터 |
운영 전환 시에는 ModelMock 내부만 실제 서비스 호출로 바꾸면 화면과 계산 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 데이터는 리스계약 12건 · 월별 스케줄 494행 · 전표 라인 655행이며, 총 리스료 3,548,200,006원 · 총 이자비용 374,310,287원 · 총 사용권자산 상각비 3,247,089,719원입니다.
| 검증 항목 | 결과 |
|---|---|
| 월별 항등식 — 기초 리스부채 − 원금상환 = 기말 / 리스료 − 이자비용 = 원금상환 | 통과 |
| 이자비용 = 기초 리스부채 × 월이자율 (원 단위 반올림) | 통과 |
| 개시일 리스부채 = 리스료 현재가치 · 만기 기말잔액 = 0 | 통과 |
| 총 리스료 = 개시일 리스부채 + 재측정 조정 + 총 이자비용 | 통과 |
| 사용권자산 — 기초 − 상각비 = 기말 / 총 상각비 = 개시일 장부가 + 재측정 조정 | 통과 |
| 잔여 리스료 현재가치 = 기말 리스부채 (스케줄 494행 전수) | 통과 |
| 전표 차변합계 = 대변합계 (전표 단위 · 합계 1,571,390,602원) | 통과 |
| 전표 금액 = 스케줄 이자비용 · 원금상환 · 리스료 · 상각비 | 통과 |
| 유동 + 비유동 = 기말 리스부채 · 비유동 음수 없음 | 통과 |
| 정적 검증 — XML 8 · JSON 5 파싱, i18n 키 83개, 이벤트 핸들러 · 포맷터 참조 실재 | 통과 |
| 리소스 로딩 — 앱 폴더를 문서 루트로 서빙 후 참조 리소스 27개 | 27/27 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 상세 → 재측정 확인, 콘솔 오류 0건 | 8/8 |
조회 버튼 위치 · 테마 — 조회조건 영역 우측 끝, sap_horizon 런타임 확인 | 통과 |
계약명 · 리스제공자 · 금액은 모두 검증용 데이터입니다.
자주 묻는 질문
리스부채 기말잔액이 맞는지 화면에서 어떻게 확인하나요?
행마다 잔여PV 검증 컬럼이 있습니다. 기준월 시점에 확정된 리스료로 잔여 회차를 다시 할인해 현재가치를 구하고, 그 값이 화면의 기말 리스부채와 같은지 비교해 정합 또는 차이로 표시합니다. 월별 항등식(기초 − 원금상환 = 기말)만 보면 이자율이 잘못 들어가도 식은 성립하므로, 잔액 자체를 원리금 구조로 되짚는 검증을 따로 둡니다. 원 단위 반올림 누적을 감안해 허용 오차는 max(50원, 잔여개월 × 3원)로 잡습니다.
유동과 비유동은 어떤 기준으로 나누나요?
기준월 익월부터 12개월 동안 상환될 원금 합계를 유동 리스부채로 보고, 나머지를 비유동으로 둡니다. 이자비용은 부채 잔액이 아니라 기간비용이므로 유동 금액에 넣지 않습니다. 잔여기간이 12개월 이하인 계약은 기말잔액 전액이 유동이 되고, 화면에서도 비유동이 0으로 표시됩니다.
계약 도중 리스료가 바뀌면 어떻게 표시되나요?
변경이 적용되는 달에 잔여 리스료를 새 금액으로 다시 할인해 리스부채를 재측정하고, 직전 기말잔액과의 차액을 조정액으로 남깁니다. 같은 금액이 사용권자산에 가산되고 잔여 기간으로 다시 정액 상각됩니다. 해당 행은 '조건변경 재측정'으로 표시되며, 조회조건의 표시옵션으로 재측정이 있었던 계약만 따로 볼 수 있습니다.
SAP 표준 기능과 어떻게 이어지나요?
리스계약 마스터와 조건, 정기전기는 표준 계약관리(RECN·RERAPP)가 담당하고 전표는 ACDOCA에 그대로 남습니다. 사용권자산의 상각은 고정자산 기능이 수행합니다. 표준 실행은 T-code가 담당하고, 이 화면은 그 데이터를 계약 단위로 모아 기준월 잔액·유동/비유동·잔여 현재가치 검증이라는 조회·검증 관점을 더해 확장한 것입니다.
리스회계, 지금 쓰는 SAP 위에서 확장해 보세요
계약 수가 늘수록 부채와 자산을 따로 맞춰 보는 시간이 결산을 끌어당깁니다. 잔액을 스케줄에서 바로 검증할 수 있으면 그만큼 앞당겨집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
함께 보면 좋은 글
- SAP 고정자산 감가상각 현황 조회 — 자산 쪽 상각만 따로 볼 때
- SAP 차입금상환스케쥴현황 — 금융부채의 원리금 상환 일정
- SAP 채권채무 장단기 재분류 현황 — 만기 기준 유동·비유동 구분
- SAP 고정자산 대장 조회 — 자산 취득가액·상각누계·장부가액