SAP 단기·소액 리스 인식 면제 점검 — IFRS 16, 면제를 적용했다면 요건부터 다시 본다
단기리스·소액자산으로 비용 처리한 리스가 리스기간·매수선택권·신품가치 요건을 정말 채우는지, 벗어났다면 리스부채가 얼마나 빠졌는지 계약·원장 데이터로 먼저 확인해 둡니다
IFRS 16 리스(K-IFRS 제1116호)에서 리스이용자는 원칙적으로 모든 리스를 사용권자산과 리스부채로 인식하지만, 두 가지는 면제를 선택해 리스료를 비용으로만 처리할 수 있습니다. 개시일 현재 리스기간이 12개월 이하이고 매수선택권이 없는 단기리스, 그리고 기초자산이 새것일 때의 가치가 작은 소액자산 리스입니다.
면제는 편리하지만 요건을 벗어나기 쉽습니다. 갱신할 것이 확실하면 리스기간이 12개월을 넘고, 매수선택권이 붙으면 기간이 짧아도 단기리스가 아니며, 소액은 리스료가 아니라 자산 한 개의 신품가치로 봅니다. 표준 계약·구매·원장 구조를 그대로 이어받아 면제를 적용한 리스마다 요건을 다시 판정하고 빠진 리스부채를 현재가치로 계산하는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 계약 — 부동산 계약(
VICNCN)과 조건(VICDCOND)의 리스기간·리스료를 그대로 사용 - 구매 — 구매오더(
EKKO/EKPO)로 관리하는 소액 리스의 단가·수량을 그대로 사용 - 표준 화면 — 계약 관리(RECN) · 구매오더 조회(ME23N) · 구매처 개별항목(FBL1N) · 자산 탐색기(AW01N)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 리스 |
| 관련 기준서 | IFRS 16 리스(K-IFRS 제1116호) — 리스이용자의 인식 면제: 단기리스(개시일 현재 리스기간 12개월 이하, 매수선택권 없음)와 소액 기초자산 리스(기초자산이 새것일 때의 가치 기준) |
| Namespace | zui5.leaseexm |
| 셸 구조 | 조회조건 영역(우측 조회) + 리스 인식 면제 대사 요약 + 리스 명세·적용 면제별·자산 분류별·처리 판정별·점검 예외 5개 탭, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | RECN · ME23N · FBL1N · AW01N · FAGLL03(§7 참고) |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 리스부채·사용권자산 인식 전표 기표는 화면 밖 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 6종 둘러보기
회사코드·회계연도를 넣고 조회하면 리스 인식 면제 대사 요약과 명세가 한 화면에 뜹니다 → 탭을 옮겨 적용 면제별·자산 분류별·처리 판정별 집계를 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 회계연도를 넣습니다. 적용 면제·리스번호·판정 상태는 비워 두면 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 리스 인식 면제 대사 요약에서 면제 적용·요건 미충족 건수와 기준·장부 리스부채, 누락액을 먼저 확인합니다.
- 탭을 옮겨 가며 리스 명세 → 적용 면제별 → 자산 분류별 → 처리 판정별 → 점검 예외 순으로 좁혀 봅니다.
- 행을 누르면 리스기간·매수선택권·신품가치·할인율·연속 갱신 횟수와 기준·장부 리스부채가 상세 다이얼로그로 열립니다.
- 리스 명세와 점검 예외 탭에서는 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
면제는 요건을 채울 때만 — 인식 면제 규칙
면제를 적용했다면 요건을 채워야 면제가 유지됩니다. 요건을 벗어나면 리스부채를 인식해야 하므로, 그 현재가치가 곧 누락액입니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 단기리스 면제 + 리스기간 12개월 이하 + 매수선택권 없음 | 면제 유지 | 리스료를 정액 기준 비용으로 인식합니다. |
| 소액자산 면제 + 기초자산 1개 신품가치 ≤ 기준금액 | 면제 유지 | 리스료를 정액 기준 비용으로 인식합니다. |
| 단기리스 면제 + 갱신 포함 리스기간 12개월 초과 | 점검 필요 | 리스부채·사용권자산을 인식해야 합니다. |
| 단기리스 면제 + 매수선택권 있음 | 점검 필요 | 리스부채·사용권자산을 인식해야 합니다. |
| 소액자산 면제 + 신품가치 기준 초과 | 점검 필요 | 리스부채·사용권자산을 인식해야 합니다. |
| 단기리스를 같은 자산에 3회 이상 연속 갱신 | 확인 필요 | 개시일의 리스기간 판단을 다시 확인합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시이며, 기준서 충족 여부를 단정하지 않습니다. 기준서는 소액 금액을 정하지 않으므로 화면은 회사 정책 기준금액(샘플 650만 원)을 씁니다. 갱신선택권 행사가 상당히 확실한지는 회사가 판단하며, 3회 연속 갱신 기준은 확인 대상을 고르는 참고값입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
요건 판정에서 리스부채 대사까지 5단계 산출
| 단계 | 내용 |
|---|---|
| 1단계 | 리스기간과 매수선택권으로 단기 요건을 판정한다 — 리스기간(갱신 포함) ≤ 12개월 · 매수선택권 없음 |
| 2단계 | 기초자산 1개의 신품가치로 소액 요건을 판정한다 — 1개 신품가치 ≤ 회사 기준금액 |
| 3단계 | 적용 면제와 요건을 맞춰 처리를 판정한다 — 면제 주장 + 요건 충족 → 면제 유지 / 그 밖 → 인식 대상 |
| 4단계 | 인식 대상의 리스부채를 계산한다 — 리스부채 = 월 리스료 × (1 − (1+r)^−n) ÷ r, r = 연 할인율 ÷ 12 |
| 5단계 | 장부와 대사한다 — 리스부채 차이 = 장부 − 기준 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 회계연도 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 적용 면제 | 선택 | 전체 / 면제 없음 / 단기리스 면제 / 소액자산 면제 |
| 리스번호 | 선택 | 한 리스만 좁혀 볼 때 씁니다. |
| 판정 상태 | 선택 | 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 컬럼 · 표시 |
|---|---|
| 리스 인식 면제 대사 요약 | 리스 건수 · 면제 적용 건수 · 요건 미충족 건수 · 면제 유지 연간 리스료 · 기준/장부 리스부채 · 리스부채 차이 · 예외 건수 |
| 리스 명세 | 리스번호 · 자산 · 분류 · 리스기간 · 매수선택권 · 1개 신품가치 · 월 리스료 · 적용 면제 · 처리 판정 · 기준/장부 리스부채 · 판정 |
| 적용 면제별 · 자산 분류별 · 처리 판정별 집계 | 구분 · 건수 · 연간 리스료 · 기준/장부 리스부채 |
| 점검 예외 | 예외번호 · 리스번호 · 예외 유형 · 내용 · 차이 · 중요도 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 리스 인식 면제 관점의 조회·검증을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
RECN | 부동산 계약 관리 | 리스기간·갱신선택권·매수선택권 조건을 가져옵니다 |
ME23N | 구매오더 조회 | 구매오더로 관리하는 소액 리스의 단가·수량을 확인합니다 |
FBL1N | 구매처 개별항목 조회 | 리스제공자별 리스료 지급을 확인합니다 |
AW01N | 자산 탐색기 | 사용권자산 인식 여부를 확인합니다 |
FAGLL03 | G/L 개별항목 조회 | 리스료 비용·리스부채 계정 금액을 대사합니다 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 16 (K-IFRS 제1116호) | 단기리스 — 개시일 현재 리스기간 12개월 이하, 매수선택권 없음 | 단기 요건 판정과 요건 미충족 검출 | VICNCN · VICDCOND | 단기리스 면제는 기초자산 종류별로 선택합니다. |
| IFRS 16 (K-IFRS 제1116호) | 소액 기초자산 — 기초자산이 새것일 때의 가치로 판단 | 1개 신품가치 기준 판정과 초과 검출 | EKPO · ANLA | 기준금액은 회사 정책입니다. |
| IFRS 16 (K-IFRS 제1116호) | 리스기간은 해지불능기간 + 행사가 상당히 확실한 연장선택권 기간 | 갱신 포함 리스기간 표시와 연속 갱신 확인 | VICNCN | 상당히 확실한지 판단은 사용자 몫입니다. |
| IFRS 16 (K-IFRS 제1116호) | 면제 요건을 벗어난 리스는 리스부채를 리스료 현재가치로 측정 | 기준 리스부채 산출과 누락액 대사 | ACDOCA | 할인율 산정은 화면 밖 절차입니다. |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
VICNCN / VICDCOND | RECNNR · RECNBEG · RECNEND · CONDTYPE · UNITPRICE | 리스 계약·기간·리스료 |
EKKO / EKPO | EBELN · LIFNR · NETPR · MENGE | 구매오더로 관리하는 소액 리스 |
ANLA / ANLC | ANLN1 · ANLKL · KANSW | 사용권자산 인식 여부 |
ACDOCA | RBUKRS · GJAHR · RACCT · HSL | 리스료 비용·리스부채 전표 |
LFA1 | LIFNR · NAME1 | 리스제공자 표기 |
define view entity ZC_LeaseExemptionItem
as select from ZI_LeaseContractTerms as lt
inner join I_Supplier as sp on sp.Supplier = lt.Lessor
{
key lt.LeaseId as LxId,
lt.ContractNo as LeaseNo,
lt.AssetClass as AssetClass,
lt.TermMonths as TermMonths,
lt.PurchaseOption as PurchOpt,
lt.UnitNewValue as UnitNewValue,
lt.MonthlyPayment as MonthlyPay,
lt.ExemptionClaimed as Claim,
sp.SupplierName as Lessor
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 대사 요약 패널 · sap.m.IconTabBar 5개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩합니다. 모델 설정은 useBatch:false · defaultBindingMode:"OneWay" · defaultCountMode:"Inline" |
| 조회조건 | sap.m.Input · sap.m.ComboBox — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 정렬 · 페이징 | sap/ui/model/Sorter와 모델의 페이징 기능으로 처리 — 전체를 받아 화면에서 걸러내지 않습니다 |
| 명세·예외 표 | sap.ui.table.Table — 행 클릭 시 상세 다이얼로그 |
| 집계 표 | sap.m.Table — sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결 |
Component.js | 화면 상태·조회조건 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.leaseexm · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 대사 요약 · 5개 탭 |
view/DetailDialog.fragment.xml | 상세 내역 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액 · 비율 · 상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 12건의 리스를 기준으로 요건 판정과 리스부채 현재가치가 원(KRW) 단위로 맞물리도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 단기 요건 = 리스기간 12개월 이하 · 매수선택권 없음 | 통과(차이 0) |
| 소액 요건 = 기초자산 1개 신품가치 ≤ 회사 기준금액 | 통과(차이 0) |
| 처리 판정 = 적용 면제 + 요건 충족 → 면제 유지, 그 밖에는 인식 | 통과(차이 0) |
| 기준 리스부채 = 월 리스료의 현재가치(월할 연금) | 통과(차이 0) |
| 면제 유지 건 기준 리스부채 = 0 | 통과(차이 0) |
| 연간 리스료 = 월 리스료 × min(12, 리스기간) | 통과(차이 0) |
| 장부 리스부채 = 기준 | 통과(의도적 예외 제외 차이 0) |
| 적용 면제별 집계 = 명세 집계 | 통과(차이 0) |
| 자산 분류별 집계 = 명세 집계 | 통과(차이 0) |
| 처리 판정별 집계 = 명세 집계 | 통과(차이 0) |
| 대사 요약행 = 실제 집계 결과 | 통과(차이 0) |
| 금액 차이 건 = 예외 등록 건 | 통과(의도적 예외 제외 차이 0) |
| 확인 대상 건 안내 | 리스기간 초과 1건 · 매수선택권 1건 · 신품가치 초과 1건 · 연속 갱신 1건(의도적으로 구성한 케이스) |
| 조회 조건 전달 — 12건 → 5건 필터 · top 3 · 내림차순 정렬 · __count 12 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처 | 6/6 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 리스 인식 면제의 요건 충족 여부와 리스부채 누락액을 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
IFRS 16 리스(K-IFRS 제1116호)는 이미 시행 중인 기준서입니다. 이 화면은 리스이용자가 단기리스 또는 소액자산 리스로 인식 면제를 적용한 리스를 다룹니다. 계약 갱신이나 조건 변경이 생길 때마다 요건이 달라질 수 있어 결산마다 점검할 대상입니다.
리스기간이 1년인데 왜 단기리스가 아닌가요?
리스기간은 해지할 수 없는 기간에 행사가 상당히 확실한 연장선택권 기간을 더해 정합니다. 계약서상 1년이어도 연장할 것이 거의 확실하다면 리스기간은 1년을 넘습니다. 또 매수선택권이 있으면 기간과 관계없이 단기리스가 아닙니다.
소액자산은 리스료가 작으면 되나요?
아닙니다. 소액 여부는 리스료 총액이 아니라 기초자산 한 개가 새것일 때의 가치로 판단합니다. 노트북 50대를 빌려 리스료 총액이 크더라도 노트북 한 대의 신품가치가 작으면 소액자산이 될 수 있고, 반대로 리스료가 작아도 자산 한 개의 신품가치가 크면 소액자산이 아닙니다.