SAP 제조자·딜러 리스 판매손익 점검 — IFRS 16, 금융리스로 제품을 넘기면 개시일에 판매수익·매출원가·체결 원가를 따로 가려 장부와 맞춰본다
판매수익 · 매출원가 · 판매손익 · 체결 원가 비용 · 장부 차이를 리스 단위로 확인합니다
설비·차량·IT장비를 만들거나 파는 회사가 금융리스로 제품을 넘기면, 제품을 판 것과 돈을 빌려준 것이 한 계약에 섞여 있습니다. IFRS 16 리스(K-IFRS 제1116호)는 이런 제조자·딜러 리스제공자가 금융리스 개시일에 판매손익을 일반 매출에 적용하는 정책에 따라 인식하도록 하며, 판매수익은 기초자산의 공정가치와 리스료를 시장이자율로 할인한 현재가치 중 작은 금액으로, 매출원가는 기초자산의 원가에서 무보증잔존가치의 현재가치를 뺀 금액으로 봅니다. 영업 목적으로 약정 이자율을 시장보다 낮게 제시했다면 판매손익은 시장이자율을 적용했을 때의 금액으로 제한하고, 금융리스를 체결하느라 든 원가는 개시일에 비용으로 인식합니다. 표준 전기와 개별 항목 조회는 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다.
실무에서는 판매손익을 리스기간에 걸쳐 나눠 잡거나, 약정 이자율로 계산한 큰 금액을 판매수익으로 올리거나, 매출원가에서 무보증잔존가치를 빼지 않거나, 체결 원가를 비용이 아니라 리스 채권에 얹어 두는 일이 생깁니다. 리스마다 기대 판매수익·매출원가·판매손익을 독립적으로 계산해 장부와 견주고 어긋나는 건을 가려내는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) — 리스제공자 회계 |
| 관련 기준서 | IFRS 16 리스(K-IFRS 제1116호) |
| Namespace | zui5.dlrlessor |
| 셸 구조 | 단일 페이지 + 4개 탭 |
| 화면 수 | 메인 1 · 상세 다이얼로그 1 |
| SAP 표준 T-code | FAGLL03 · FBL5N · FB03 · VF03 |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·산출·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 제조자·딜러 리스제공자의 금융리스 — 개시일 판매수익, 매출원가, 판매손익, 리스 체결 원가 비용 |
| 핵심 산식 | 판매수익 = min(공정가치, 리스료 현재가치(시장이자율)) · 매출원가 = 원가 − 무보증잔존가치 현재가치 · 판매손익 = 판매수익 − 매출원가 |
| 결과 표시 | 정상 / 점검 필요 |
실제 화면 6종 둘러보기






사용 방법
- 기준 연월(리스개시월)을 넣고, 회사코드·구분·점검 코드·점검 결과는 필요할 때만 고릅니다. "전체"를 고르면 해당 조건 없이 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 기준 연월 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건(기준 연월 202609)으로 자동 조회됩니다.
- KPI 카드에서 점검 대상 리스 수, 점검 필요 리스 수, 기초자산 공정가치 합계, 판매수익(기대), 판매손익 기대·장부와 차이, 대사 차이 건수를 먼저 확인합니다.
- 탭을 계약별 점검 → 회사·구분별 집계 → 리스료 현재가치 스케줄 → 대사 결과 순으로 옮겨 가며 좁혀 봅니다.
- 계약별 점검에서 행을 누르면 리스 정보와 기대·장부 금액, 점검 내용, 연차별 리스료 현재가치가 상세 다이얼로그로 열립니다.
- CSV 내려받기(UTF-8 BOM)로 현재 탭의 결과를 저장할 수 있습니다.
금융리스 개시일 판매손익을 가려내는 점검 코드 판정 규칙
리스마다 기대액을 독립적으로 계산해 장부와 비교하고, 조건에 해당하는 점검 코드 중 번호가 작은 하나를 표시합니다.
| 판정 조건 | 점검 코드 | 결과 | 사용자 조치 |
|---|---|---|---|
| 판매수익(장부)과 매출원가(장부)가 같아 판매손익(장부)이 0 인데 판매손익(기대)은 0 이 아니다 | L01 판매손익 인식 시점 확인 | 점검 필요 | 판매손익을 개시일이 아니라 리스기간에 걸쳐 나눠 인식하지 않았는지 확인합니다. |
| 약정 이자율이 시장이자율보다 낮은데 판매수익(장부)이 판매수익(기대)보다 크다 | L02 시장이자율 한도 확인 | 점검 필요 | 시장이자율 기준 한도를 넘겨 판매수익을 잡지 않았는지, 적용한 시장이자율의 출처·기준일을 확인합니다. |
| 매출원가(장부)가 매출원가(기대)와 다르다 | L03 매출원가 산정 확인 | 점검 필요 | 원가에서 무보증잔존가치 현재가치를 뺐는지 확인합니다. |
| 체결 원가 비용(장부)이 리스 체결 원가와 다르다 | L04 체결 원가 비용처리 확인 | 점검 필요 | 체결 원가를 개시일 비용이 아니라 자산·채권에 포함하지 않았는지 확인합니다. |
| 위 조건에 모두 해당 없음 | - | 정상 | - |
약정 이자율이 시장이자율보다 낮아도 장부가 시장이자율 기준 한도에 맞게 잡혀 있으면 정상입니다. 시장이자율은 개시일 기준으로 회사가 정한 입력값이며 화면이 새로 판단하지 않습니다. 판정 결과는 확인 대상을 알리는 표시일 뿐 최종 판단은 회사와 감사인이 합니다.
공정가치·현재가치에서 판매손익까지의 산출 순서
- 리스료 현재가치(시장이자율) —
Σ 연 리스료 ÷ (1 + 시장이자율)^t(연차별 원 단위 반올림 후 합산) - 리스료 현재가치(약정 이자율) —
Σ 연 리스료 ÷ (1 + 약정 이자율)^t(비교값) - 무보증잔존가치 현재가치 —
무보증잔존가치 ÷ (1 + 시장이자율)^리스기간 - 판매수익(기대) —
min(기초자산 공정가치, 리스료 현재가치(시장이자율)) - 매출원가(기대) —
기초자산 원가 − 무보증잔존가치 현재가치 - 판매손익(기대) —
판매수익(기대) − 매출원가(기대) - 차이 —
장부 − 기대(판매수익·매출원가·판매손익·체결 원가 비용 각각) - 집계 대사 — 계약별 리스료 현재가치 = 연차별 스케줄 합계, 집계 판매손익 = 계약별 합계
금액은 원 단위이며 회사·리스·금액·이자율은 모두 가상 설정값입니다. 무보증잔존가치를 할인하는 이율은 회사 정책에 따르며 이 화면은 시장이자율을 적용합니다.
조회조건
| 조회조건 | 필수 | 설명 |
|---|---|---|
| 기준 연월(리스개시월) | 필수 | YYYYMM 6자리 |
| 회사코드 | 선택 | 1000·2000·3000·4000 중 선택, 전체이면 조건 없음 |
| 구분 | 선택 | 산업설비 · 차량 · IT장비 |
| 점검 코드 | 선택 | L00~L04 |
| 점검 결과 | 선택 | 정상·점검 필요 |
결과 컬럼
| 영역 | 내용 |
|---|---|
| 요약 | 점검 대상 리스 · 점검 필요 리스 · 기초자산 공정가치 합계 · 판매수익(기대) · 판매손익 기대·장부와 차이 · 대사 차이 건수 |
| 계약별 점검 | 리스번호 · 회사 · 리스명 · 구분 · 리스이용자 · 개시일·리스기간·연 리스료 · 공정가치·원가·무보증잔존가치 · 약정 이자율·시장이자율 · 리스료 현재가치 · 판매수익·매출원가·판매손익의 기대와 장부 · 차이 · 체결 원가와 장부 비용 · 점검 코드·결과·내용 |
| 회사·구분별 집계 | 회사 · 구분 · 리스 수 · 점검 건수 · 공정가치·원가 · 판매수익·매출원가·판매손익(기대·장부) · 판매손익 차이 · 체결 원가 |
| 리스료 현재가치 스케줄 | 리스번호 · 회수 연차 · 연 리스료 · 할인계수와 현재가치(시장이자율·약정 이자율) |
| 대사 결과 | 대사 항목 · 대사식 · 좌변 · 우변 · 점검 건수 · 차이 건수 · 최대 차이 |
SAP 표준 기능 매핑
| T-code | 이름 | 쓰임 |
|---|---|---|
FAGLL03 | G/L 계정 라인아이템 조회 | 판매수익·매출원가·체결 원가 비용 계정의 개시일 전기 내역 확인 |
FBL5N | 고객 개별 항목 조회 | 리스이용자 채권 전표 추적 (리스 채권 계정 구성은 회사 계정체계에 따라 확인 필요) |
VF03 | 청구 문서 조회 | 개시일 판매 청구 문서와 매출원가 전기의 연결 확인 |
FB03 | 전표 조회 | 점검 필요 리스의 전표 라인 확인 |
| 기준서 | 요구사항 | 화면 반영 |
|---|---|---|
| IFRS 16 리스(K-IFRS 제1116호) | 제조자·딜러 리스제공자는 금융리스 개시일에 일반 매출 정책에 따라 판매손익을 인식 | 판매손익(기대) 재계산 · 점검 코드 L01 |
| 같은 기준서 | 판매수익은 공정가치와 시장이자율 기준 리스료 현재가치 중 작은 금액, 약정 이자율이 인위적으로 낮으면 시장이자율 기준으로 제한 | 판매수익(기대) 산식 · 점검 코드 L02 |
| 같은 기준서 | 매출원가는 기초자산 원가에서 무보증잔존가치 현재가치를 뺀 금액 | 매출원가(기대) 산식 · 점검 코드 L03 |
| 같은 기준서 | 금융리스 체결 원가는 개시일에 비용으로 인식 | 체결 원가 비용 대조 · 점검 코드 L04 (계정 범위는 회사 계정체계에 따라 확인 필요) |
참고 CDS 뷰
@EndUserText.label: '리스 개시일 판매손익 장부 집계 (스케치)'
define view entity C_DealerLeaseBookAmount
as select from I_JournalEntryItem as a
{
key a.CompanyCode,
key a.GLAccount,
sum( a.AmountInCompanyCodeCurrency ) as BookAmount
}
group by a.CompanyCode, a.GLAccount장부 금액의 원천은 유니버설 저널(ACDOCA)이며 판매수익·매출원가·체결 원가 비용 계정의 금액을 전기일 기준으로 집계합니다. 뷰 이름과 조건은 스케치이며, 리스 계약 마스터의 개시일·리스료·약정 이자율·잔존가치와 계정 범위의 실제 원천은 SAP 환경별로 달라 확인 필요로 남겼습니다.
OpenUI5 구성
| 구성 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 리스제공자 판매손익 점검 |
| 화면 구성 | 조회조건 영역(우측 조회) + KPI 카드 + 계약별 점검·회사 구분별 집계·리스료 현재가치 스케줄·대사 4개 탭, 상세 Dialog |
| 데이터 모델 | OData V2 모델을 앱 설정(manifest)에서 선언하고, 표마다 해당 엔티티셋에 바인딩 |
| 조회조건 처리 | 필터 객체로 만들어 서버 조회 조건($filter)으로 전달하며 "전체"는 조건을 만들지 않음 |
| 정렬·페이징 | 정렬 객체로 서버 정렬($orderby), 목록 범위 읽기로 페이징($top·$skip), 총건수는 인라인 건수 |
| 집계 | KPI 값은 조회 결과에서 한 곳의 합산식으로 계산하고, 금액 문자열은 숫자로 변환해 표시·정렬 |
| 실패 안내 | 서비스 연결 실패와 요청 실패를 구분해 사용자 메시지로 안내 |
| 테마 | sap_horizon · 한국어 |
파일 구성
| 구분 | 내용 |
|---|---|
| 앱 본체 | index.html · manifest.json · Component.js · controller · view · model · i18n · css |
| 데이터 서비스 | OData 서비스 정의와 엔티티셋별 데이터 |
| 검증 전용 | 앱 본체와 분리된 검증용 샘플 데이터 구성 |
| 설명서 | readme.html (13개 절) |
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 가상 리스 34건씩 3개 기간(202609 기준 산업설비 11 · 차량 11 · IT장비 12)의 계약별 행 102건, 연차별 행 409건, 집계 행 36건을 기준으로 원 단위로 맞물리도록 구성했습니다.
| 대사식 | 검사 | 결과 | 차이 건수 |
|---|---|---|---|
| V1 리스료 현재가치 = Σ 연 리스료 ÷ (1+이자율)^t 재계산 (시장·약정) | 102 | 일치 | 0 |
| V2 판매수익 = min(공정가치, 리스료 현재가치) · 매출원가 = 원가 − 무보증잔존가치 현재가치 | 102 | 일치 | 0 |
| V3 장부 판매손익 = 장부 수익 − 장부 원가, 차이 = 장부 − 기대 | 102 | 일치 | 0 |
| V4 연차별 스케줄 합계 = 계약별 리스료 현재가치 | 102 | 일치 | 0 |
| V5 집계 행 = 계약별 행 합계 | 504 | 일치 | 0 |
| V6 화면 대사식 R01~R04 (좌변 = 우변) | 48 | 일치 | 0 |
| V7 비교 R05·R06 차이 건수 재계산 | 24 | 일치 | 0 |
| V8 점검 코드 판정 규칙 재판정 | 102 | 일치 | 0 |
점검 필요는 기준 연월 202609 에서 10건(L01 2건 · L02 3건 · L03 3건 · L04 2건)입니다. 이는 점검 화면의 동작을 보이기 위해 의도적으로 구성한 케이스이며 대사 차이와 분리해 기록했습니다. KPI 카드는 별도 스크립트로 다시 계산한 합계와 일치했습니다.
자주 묻는 질문
이 점검은 어떤 기준서의 어떤 요구사항에 근거하나요? 적용 시기도 알려 주세요.
IFRS 16 리스(K-IFRS 제1116호)에서 제조자 또는 딜러인 리스제공자가 금융리스 개시일에 판매손익을 일반 매출 정책에 따라 인식하는 요구사항, 즉 판매수익은 기초자산 공정가치와 시장이자율로 할인한 리스료 현재가치 중 작은 금액으로, 매출원가는 기초자산 원가에서 무보증잔존가치 현재가치를 뺀 금액으로 보고, 약정 이자율이 인위적으로 낮으면 시장이자율 기준으로 제한하며, 금융리스를 체결하기 위해 든 원가는 개시일에 비용으로 인식하는 것을 기준으로 합니다. 운용리스와 리스이용자 회계, 리스변경, 개시 이후의 이자수익 인식은 범위 밖이며, 시행일과 경과규정, 세부 표현은 기준서 원문에서 확인 필요합니다.
시장이자율이나 잔존가치 할인율이 적정한지 화면이 판단해 주나요?
아닙니다. 시장이자율은 회사가 개시일 기준으로 정해 입력하는 값이며 화면은 그 값으로 기대액을 계산해 장부와 비교만 합니다. 무보증잔존가치를 할인하는 이율은 회사 정책에 따르며 이 화면은 시장이자율을 적용합니다. 이 화면은 점검 도구이며 적용 이율의 적정성과 최종 판단은 회사와 감사인이 합니다.
"점검 필요"는 회계처리가 잘못됐다는 뜻인가요?
아닙니다. 판매손익 인식 시점, 시장이자율 기준 한도 적용, 매출원가 산정, 체결 원가 비용처리가 기대와 달라 확인이 필요하다는 표시입니다. 원인은 원장과 계약을 함께 보아야 알 수 있고, 최종 판단은 회사와 감사인이 합니다.
화면의 리스와 금액은 실제 값인가요?
아닙니다. 가상 회사코드와 가상 리스로 만든 검증용 샘플 데이터입니다. 실제 원천과 리스 계약 마스터에서 개시일·리스료·약정 이자율·잔존가치를 가져오는 방법은 시스템에서 확인 필요합니다.
금융리스로 넘긴 제품, 개시일 판매손익을 기대값과 맞춰 두세요
판매손익을 리스기간에 나눠 잡거나 체결 원가를 자산에 얹어 둔 계약은 결산과 감사 시기에 다시 추적하게 됩니다. 화면에서 기대값과 장부가 다른 건을 미리 가려 두면 결산과 감사 대응이 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.