SAP 유의적인 금융요소 조정 점검 — IFRS 15, 받는 시점과 주는 시점이 벌어지면 이자가 숨어 있다
대금 수령과 인도 사이 시차가 1년을 넘는 계약에서 명목대가를 그대로 수익으로 잡지 않았는지 먼저 확인해 둡니다
물건을 먼저 주고 대금은 한참 뒤에 받거나, 반대로 대금을 먼저 받고 물건은 한참 뒤에 준다면 그 사이에는 시간의 가치, 즉 이자가 숨어 있습니다. IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 대금 수령 시점과 인도 시점 사이에 유의적인 금융요소가 있다면, 거래가격을 현금판매가격 수준으로 조정하고 그 차이를 계약기간에 걸쳐 이자수익 또는 이자비용으로 따로 인식하도록 요구합니다.
시차가 1년을 넘는데도 명목금액을 그대로 수익으로 잡아버리면, 수익이 실제보다 부풀거나 줄어들고 이자수익·이자비용도 빠집니다. 계약별로 대금 수령·인도 시차를 가려 현재가치·미래가치로 조정한 인식액과 이자수익·이자비용을 산출하고 장부와 대사하는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 판매계약 조회 — 판매오더 조회의 표준 화면(
VA03)이 가진 계약금액·인도조건을 그대로 이어받습니다 - 채권 관리 — 고객 미결·잔액 조회의 표준 화면(
FBL5N)으로 대금 수령 시점을 확인합니다 - 원장 대사 — 총계정원장 라인아이템 조회(
FAGLL03)로 이자수익·이자비용 전기를 대사합니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 수익 인식 |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 유의적인 금융요소: 거래가격의 시간가치 조정과 이자수익·이자비용의 별도 인식 |
| Namespace | zui5.sigfin |
| 셸 구조 | 조회조건 영역(우측 조회) + 요약 KPI 3종 + 계약별 명세·계약유형별 집계 2개 탭, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 2개) + 상세 다이얼로그 |
| SAP 표준 T-code | VA03 · FBL5N · FAGLL03 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 실제 회계처리와 최종 판단은 화면 밖에서 회사가 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
조회조건을 그대로 두고 조회하면 요약 KPI와 계약별 명세가 한 화면에 뜹니다 → 계약유형별 집계 탭에서 선수형·후수형 합계를 보고 → 행을 클릭해 이자 조정 스케줄을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 계약번호(정확히 일치, 선택)·회사코드·계약유형·유의적 금융요소 해당 여부·계약일자 범위(모두 선택)를 필요에 따라 입력합니다. 비워두면 전체 계약이 조회 대상입니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 전체 계약 기준으로 자동 조회됩니다.
- 요약 KPI 3종에서 전체 계약 수, 유의적 금융요소 해당 계약 수, 금융요소 조정액 합계를 바로 확인합니다.
- 탭을 옮겨 계약별 명세 → 계약유형별 집계 순으로 봅니다.
- 계약별 명세에서 행을 클릭하면 이자 조정 스케줄이 다이얼로그로 열립니다.
- 계약별 명세 하단 CSV 내려받기(UTF-8 BOM)로 현재 조회조건 기준 결과를 저장할 수 있습니다.
유의적 금융요소 판정 기준
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 대금 수령·인도 시차 12개월 이하 | 해당없음 | 실무적 간편법 적용 — 명목대가를 그대로 수익으로 인식하고 별도 조정 없음 |
| 시차 12개월 초과, 후수형(인도 후 수령) | 해당 — 이자수익 | 현재가치로 할인한 금액을 인도 시점 수익으로 인식하고 차액을 잔여기간 이자수익으로 인식했는지 점검 |
| 시차 12개월 초과, 선수형(수령 후 인도) | 해당 — 이자비용 | 수령액을 인도 시점까지 미래가치로 할증한 금액을 수익으로 인식하고 차액을 이자비용으로 인식했는지 점검 |
| 시차 24개월 이상 | 확인 필요 | 할인율 산정 근거를 별도로 확인 |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시일 뿐 기준서 충족 여부를 단정하지 않습니다. 실무적 간편법 적용 여부, 할인율 산정 근거를 포함한 최종 회계처리는 기준서 원문에 따라 회사와 감사인이 판단합니다.
현재가치·이자 조정 산출 절차
| 단계 | 내용 |
|---|---|
| 1단계 | 계약별로 대금 수령일과 인도일의 시차(개월)를 산출한다 |
| 2단계 | 시차가 12개월을 초과하는 계약만 유의적 금융요소 해당으로 분류한다 |
| 3단계 | 계약 개시 시점 기준 할인율로 월 단위 복리 계산을 적용한다 — 후수형: 조정후 인식액 = 명목대가 ÷ (1+r)^n / 선수형: 조정후 인식액 = 명목대가 × (1+r)^n |
| 4단계 | 명목대가와 조정후 인식액의 차액을 금융요소 조정액(이자수익 또는 이자비용)으로 산출한다 |
| 5단계 | 차액을 잔여 기간에 걸쳐 월별로 상각하는 스케줄을 산출하고, 회차별 상각 후 기말잔액이 최종 인식액과 일치하는지 전수 검증한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 계약번호 | 선택 | 정확히 일치하는 계약번호로 단건 조회 |
| 회사코드 | 선택 | 전체 선택 시 조건에서 제외 |
| 계약유형 | 선택 | 선수형(대금 선수) · 후수형(대금 후수) |
| 유의적 금융요소 | 선택 | 해당(12개월 초과) · 해당없음 |
| 계약일자(시작/종료) | 선택 | 계약일자 범위. 하나만 입력해도 그 조건만 적용 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 계약번호 / 회사 / 고객 | 계약 식별 정보 |
| 계약유형 / 계약일자 / 수령·인도 시차(개월) | 계약 조건과 대금·인도 시차 |
| 적용할인율 | 계약 개시 시점 기준 연 할인율 |
| 유의적 금융요소 | 시차 12개월 초과 여부(해당/해당없음) |
| 명목대가 / 조정후 인식액 / 금융요소 조정액 | 계약상 명목금액, 조정 후 인식액, 그 차액 |
| 구분 / 점검결과 | 이자수익·이자비용·해당없음, 정상·확인 필요 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 유의적 금융요소 조정 관점의 조회·점검을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
VA03 | 판매오더 조회 | 계약금액과 인도조건을 가져와 시차 판정의 기초 자료로 사용합니다 |
FBL5N | 고객 미결·잔액 조회 | 대금 수령·미수 시점을 확인해 시차를 계산합니다 |
FAGLL03 | 총계정원장 라인아이템 조회 | 이자수익·이자비용 전기 금액을 산출값과 대사합니다 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 15 (K-IFRS 제1115호) | 대금 수령·인도 시차에 유의적인 금융요소가 있는지 판정 | 계약별 시차(개월) 산출과 12개월 기준 분류 | 판매계약(수령일·인도일) | 1년 이내는 실무적 간편법으로 조정 생략 가능 |
| IFRS 15 (K-IFRS 제1115호) | 거래가격을 현금판매가격 수준으로 조정 | 현재가치·미래가치 조정후 인식액 산출 | 명목대가, 할인율 | 할인율 산정 근거는 회사가 관리 |
| IFRS 15 (K-IFRS 제1115호) | 조정 차액을 계약기간에 걸쳐 이자수익 또는 이자비용으로 인식 | 회차별 상각 스케줄 산출 및 원장 대사 | 총계정원장 이자수익·이자비용 계정 | 전기 확인은 결산 절차에서 수행 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
VBAK / VBAP | VBELN · KUNNR · AUDAT · NETWR | 계약(판매오더) 헤더·품목 — 계약금액과 인도조건 |
BSID / BSAD | KUNNR · ZFBDT · DMBTR | 고객 미결·완결 채권 — 대금 수령일 |
ACDOCA | RBUKRS · GJAHR · RACCT · HSL | 이자수익·이자비용 전기 대사 |
define view entity ZC_SigFinContract
as select from I_SalesOrder as so
inner join I_SalesOrderItem as item on item.SalesOrder = so.SalesOrder
{
key so.SalesOrder as ContractId,
so.SoldToParty as CustomerCode,
so.SalesOrderDate as ContractDate,
sum(item.NetAmount) as ContractAmount
}
group by so.SalesOrder, so.SoldToParty, so.SalesOrderDate
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 요약 KPI 타일 3종 · IconTabBar 2개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩하며 모델은 defaultCountMode:"Inline" · useBatch:false 로 구성 |
| 조회조건 | sap.m.Input · sap.m.Select · sap.m.DatePicker — sap.m.OverflowToolbar 우측 끝에 조회·초기화 버튼(오버플로 방지 우선순위 지정), Enter 키로 즉시 재조회, sap/ui/model/Filter 로 조회조건을 조립합니다. 전체를 고른 조건은 필터를 만들지 않습니다 |
| 명세 표 | sap.ui.table.Table — cellClick 이벤트로 행 컨텍스트를 받아 상세 다이얼로그를 엽니다 |
| 집계 표 · 상태 표시 | sap.m.Table, sap.m.ObjectStatus·sap.m.GenericTile로 판정 상태와 요약 수치를 표준 컨트롤로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 디바이스 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.sigfin · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 요약 KPI · 2개 탭 |
view/DetailDialog.fragment.xml | 이자 조정 스케줄 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액·비율·상태 표시 서식 |
i18n/i18n.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 계약 150건(이 중 유의적 금융요소 해당 96건, 상각 스케줄 2,243행)을 기준으로 대사식을 전수 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 명목대가 = 조정후 인식액 ± 금융요소 조정액(150건 전수) | 통과(차이 0) |
| 상각 스케줄 회차 합계(이자) = 계약별 금융요소 조정액(96개 계약, 2,243행) | 통과(차이 0) |
| 회차별 기초+당기조정−결제=기말, 전기 기말=당기 기초 | 통과(차이 0) |
| 계약유형별 집계 합계 = 개별 계약 합계(2개 유형) | 통과(차이 0) |
| 조회 조건 전달 — 계약유형 필터·금액 내림차순 정렬·총건수 표시 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 조정은 어떤 계약에 적용되나요?
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)에 따라, 대금을 받는 시점과 재화·용역을 주는 시점의 차이가 1년(12개월)을 넘는 계약에 적용을 검토합니다. 1년 이내라면 실무적 간편법으로 조정을 생략할 수 있습니다.
화면에 표시되는 조정후 인식액은 확정 금액인가요?
아닙니다. 이 화면은 조회·점검을 돕는 도구이며 표시되는 산출값은 참고용입니다. 할인율 산정 근거와 최종 회계처리는 기준서 원문에 따라 회사와 감사인이 판단합니다.
할인율은 어떻게 정해지나요?
계약 개시 시점에 계약 상대방과 별도 금융거래를 했다면 반영되었을 이자율, 즉 그 시점의 시장이자율을 반영합니다. 화면은 산출 결과를 조회·점검하는 용도이며 할인율 산정 자체는 회사가 수행합니다.
확인 필요로 표시된 계약은 문제가 있다는 뜻인가요?
아닙니다. 대금 수령·인도 시차가 24개월 이상으로 길어 할인율 산정 근거를 한 번 더 확인해 볼 필요가 있다는 뜻이며, 오류를 의미하지 않습니다.