SAP 수익 세분화 공시 점검 — IFRS 15, 총수익을 다섯 갈래로 나눠 다시 맞춰본다
인식시점·지역·제품라인·계약기간·판매채널로 나눈 매출 합계가 손익계산서 총수익과 정확히 일치하는지 원장 기준으로 먼저 대사해 둡니다
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) 문단 114 는 수익의 성격·금액·시기·불확실성이 경제적 요인에 의해 어떻게 영향받는지 나타내도록 총수익을 세분화하여 공시하도록 요구합니다. 문제는 인식시점·지역·제품라인·계약기간·판매채널처럼 서로 다른 기준으로 매출을 여러 번 다시 잘라야 하고, 그때마다 각 기준의 카테고리 합계가 손익계산서 총수익과 정확히 맞아떨어지는지 별도로 확인해야 한다는 점입니다. 기준이 다섯 개면 검산도 다섯 번입니다.
청구·수익인식 원천 데이터에서 매출을 다섯 개 세분화 기준으로 나누어 집계하고, 기준별 합계를 총수익과, 세그먼트별 매출과도 대사하는 화면을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 2종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 매출 원천 — 청구문서(
VBRK/VBRP)·수익성분석 라인아이템 구조를 그대로 사용 - 총수익 검증 —
ACDOCA매출 계정(RACCT) 잔액을 대사 기준값(총수익)으로 사용 - 표준 화면 — 청구 현황(VF05) · 수익성 리포트(KE30) · 재무제표(F.01)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 수익인식 공시 |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 문단 114~115 수익의 세분화 공시 |
| Namespace | zui5.revdisagg |
| 셸 구조 | 조회조건 영역(우측 조회) + 세분화 내역·인식시점 요약·총수익 대사·세그먼트 대사·변경내역·완결성점검 6개 패널, 분기 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 분기별 매출 상세 다이얼로그 |
| SAP 표준 T-code | VF05 · KE30 · F.01(§7 참고) |
| 성격 | 조회·대사·점검형 — 세분화 기준의 구성 자체는 회사 몫 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 2종 둘러보기
Company Code·회계연도·기준월·지역·제품라인·인식시점을 넣고 조회하면 세분화 내역과 인식시점별 요약, 총수익 대사까지 한 화면에 뜹니다 → 행을 클릭해 그 카테고리의 분기별 매출을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- Company Code(고정) · 회계연도 · 기준월을 입력하고, 지역 · 제품라인 · 인식시점을 선택합니다.
- 모든 필드는 값을 바꾸고 Enter 를 누르면 즉시 재조회됩니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
- 수익 세분화 내역에서 세분화 기준별 카테고리·당기/전기 매출금액·증감율·총수익 비중·분류완결성을 확인합니다.
- 행을 클릭하면 그 카테고리의 1~4분기 매출액과 분기 합계 검증 결과가 다이얼로그로 뜹니다.
- 세분화 기준별 총수익 대사와 세그먼트 매출 대사 패널에서 각각 총수익과의 합치 여부를 확인합니다.
- 세분화 기준 변경 내역과 분류완결성 점검 패널을 확인하고, CSV 다운로드로 전체 결과를 내려받습니다.
세분화 카테고리 분류·집계 판정 규칙
IFRS 15 문단 114 는 수익의 성격·금액·시기·불확실성이 경제적 요인에 의해 어떻게 영향받는지 나타내도록 세분화하여 공시하도록 요구합니다. 이 화면은 아래 규칙으로 카테고리별 분류·대사를 수행합니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 세분화 기준별 카테고리 코드가 계약에 명확히 매핑됨 | 정상 | 카테고리별 매출금액 합계 산출 후 총수익과 대사 |
| 판매채널 코드가 미입력되거나 복수 채널이 결합된 계약 | 확인필요(판매채널 미분류) | 계약 조건을 검토해 채널을 확정한 뒤 재분류 |
| 세분화 기준별 카테고리 합계가 총수익과 불일치 | 대사 확인필요 | 세분화 매핑 누락·중복 계약을 조사해 차이 원인 규명 |
| 세그먼트별 매출 합계가 총수익과 상이 | 세그먼트 대사 확인필요 | 세그먼트 매핑 기준(IFRS 8)과의 정합성 재검토 |
이 화면이 대신 정하지 않는 것
세분화 기준의 수·구성은 기업 고유의 사실과 상황에 따라 회사가 결정하며, 이 화면은 그 구성을 적용했을 때 원장 데이터와 정합적으로 대사되는지만 점검합니다.
세분화 집계에서 총수익 대사까지 4단계 산출
| 단계 | 내용 |
|---|---|
| 1단계 | 계약·품목 단위 매출을 인식시점·지역·제품라인·계약기간·판매채널 5개 기준의 카테고리로 각각 매핑 |
| 2단계 | 각 세분화 기준 안에서 카테고리별 당기·전기 매출금액, 증감율, 총수익 대비 비중을 계산 |
| 3단계 | 기준별 분류완료 합계 + 분류완결성 예외 합계가 포괄손익계산서 총수익과, 세그먼트별 매출 합계가 총수익과 각각 정확히 일치하는지 대사(차이 0) |
| 4단계 | 카테고리별 1~4분기 매출액 합계가 해당 카테고리의 당기 매출금액과 정확히 일치하는지 재검증 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| Company Code | 필수 | 대상 회사코드(고정값) |
| 회계연도 | 필수 | 직접 입력(예: 2026) |
| 기준월 | 필수 | 직접 입력(예: 012) |
| 지역 | 선택 | 전체 · 국내 · 아시아 · 북미 · 유럽 · 기타 |
| 제품라인 | 선택 | 전체 · 제품A · 제품B · 서비스 · 라이선스 |
| 인식시점 | 선택 | 전체 · 시점이전 · 기간에 걸쳐 이전 |
결과 컬럼
| 패널 | 컬럼 · 표시 |
|---|---|
| 수익 세분화 내역 | 세분화 기준 · 카테고리 · 주된 인식기준 · 통화 · 당기 매출금액 · 전기 매출금액 · 증감율 · 총수익 비중 · 대응 세그먼트 · 분류완결성 · 비고 |
| 인식시점별 요약 | 구분 · 당기 · 전기(마지막 행은 총수익 소계) |
| 세분화 기준별 총수익 대사 | 세분화 기준 · 분류완료 합계 · 예외 합계 · 총수익(원장) · 차이 |
| 세그먼트 매출 대사 | 세그먼트 · 당기 · 전기(마지막 행은 총수익과 일치하는 합계) |
| 세분화 기준 변경 내역 | 카테고리 · 변경 전 구분 · 변경 후 구분 · 변경 사유 |
| 분류완결성 점검 | 점검 유형 · 상세 · 건수 · 관련 금액 |
SAP 표준 기능 매핑
수익 세분화 공시는 IFRS 공시 관점의 재구성 화면이라, 전체에 정확히 대응하는 SAP 표준 T-code는 확인되지 않습니다. 아래는 세분화의 원천이 되는 매출·수익성 데이터를 조회할 때 참고할 수 있는 연관 표준 화면입니다.
| SAP 표준 T-code | 연관 기능 |
|---|---|
VF05 | 청구 현황 조회 — 매출 인식의 기초가 되는 청구 문서 리스트 |
KE30 | 수익성 분석(CO-PA) 리포트 — 제품라인·지역 등 특성별 수익 세그먼트 조회 |
F.01 | 재무제표 — 포괄손익계산서 총수익 라인 확인(세분화 합계와의 대사 대상) |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 15 (K-IFRS 제1115호) 문단 114 | 수익의 성격·금액·시기·불확실성에 따른 세분화 공시 | 5개 기준 세분화 집계, 총수익 대사 | VBRK/VBRP, CE1XXXX, ACDOCA(RACCT) | 세분화 기준의 수·구성은 회사가 결정 |
| IFRS 15 (K-IFRS 제1115호) 문단 115 | 세분화된 수익과 세그먼트별(IFRS 8) 수익 정보 간의 관계 공시 | 세그먼트 매출 대사 패널 | 내부 관리 자료 — 표준 테이블 매핑 없음 | - |
| IFRS 15 (K-IFRS 제1115호) 문단 114 | 세분화 기준·방법 변경 시 그 사실과 사유 공시 | 세분화 기준 변경 내역 패널 | 내부 관리 자료(카테고리 구성 이력) | - |
도입 시 확인이 필요한 부분
세분화 기준의 수와 구성, 세그먼트 매핑 기준, 판매채널 미확정 계약의 처리 방식은 회사의 사업 특성과 감사인 협의를 거쳐 확정해야 합니다.
참고 CDS 뷰
운영 서비스로 연결할 때를 가정해 새로 스케치한 집계 뷰 예시입니다(운영 반영 시 권한 체크를 추가해야 합니다).
@AbapCatalog.sqlViewName: 'ZIREVDISAGGSUM'
define view entity ZI_RevenueDisaggSummary
as select from acdoca
association [0..1] to skat as _AccountText on _AccountText.saknr = acdoca.racct
{
key rbukrs as CompanyCode,
key racct as GLAccount,
ryear as FiscalYear,
poper as FiscalPeriod,
sum(hsl) as RevenueAmount,
_AccountText.txt50 as AccountText
}
where racct like '4%'
group by rbukrs, racct, ryear, poper
// 인식시점·지역·제품라인·계약기간·판매채널 세분화 카테고리 매핑은 별도 관리하는
// 세분화 기준 목록에서 읽어와 위 집계와 함께 대사
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 6개 패널(세분화내역·요약·총수익대사·세그먼트대사·변경내역·완결성점검) |
| 조회조건 | sap.m.Input(연도·기준월, Enter 즉시 조회) · sap.m.ComboBox(지역·제품라인·인식시점, 선택/Enter 모두 즉시 조회) — 우측 끝에 조회 버튼 |
| 수익 세분화 내역 | sap.ui.table.Table(컬럼 11개) — 행 클릭 시 분기별 매출 상세 다이얼로그 |
| 요약·대사표 | sap.m.Table — sap.m.ObjectStatus로 대사·완결성 상태 표시 |
| 상세 | sap.m.Dialog + sap.m.Table — 1~4분기 매출액과 분기 합계 검증 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러, 전역 오류 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment |
Component.js | 조회조건 모델 · 결과 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.revdisagg · ko 로케일, OData 서비스 연결 |
view/Main.view.xml | 조회화면 + 6개 패널 |
view/DetailDialog.fragment.xml | 카테고리별 분기 매출 상세 다이얼로그 |
controller/Main.controller.js | 조회 · 대사 판정 · 다이얼로그 · CSV 다운로드 로직 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
controller/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액 · 비율 · 상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스 폴더에서 서비스하며, 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 데이터는 세분화 기준별 카테고리 합계·세그먼트 합계·분기별 합계가 정수(원) 단위로 정확히 맞물리도록 구성했습니다(반올림 오차 없음). Node 스크립트로 전량 재계산해 확인했습니다.
| 검증 항목 | 결과 |
|---|---|
| 세분화 기준별 총수익 대사(인식시점·지역·제품라인·계약기간·판매채널 전수) | 통과(차이 0) |
| 세그먼트 매출 대사(세그먼트A+세그먼트B=총수익) | 통과(차이 0) |
| 분기 합계 검증(카테고리 17건 전수) | 통과(차이 0) |
| 분류완결성 점검 | 17건 중 1건(판매채널 미분류)만 확인필요로 안내(의도적으로 구성한 케이스) |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 행 클릭 상세 → 대사 패널 실동작 후 캡처 | 2/2 |
| 조회 버튼 위치 · sap_horizon 테마 적용 · Enter 키 조회 · CSV 다운로드 동작 | 확인 |
계정·금액은 모두 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
세분화 기준이 왜 5개(인식시점·지역·제품라인·계약기간·판매채널) 인가요?
IFRS 15 는 특정 세분화 기준을 강제하지 않고, 수익이 경제적 요인에 의해 어떻게 영향받는지를 가장 잘 나타내는 방식으로 기업이 판단하도록 합니다. 이 화면의 5개 기준은 실무에서 흔히 쓰이는 예시 구성입니다.
화면의 확인필요 표시는 공시 오류를 뜻하나요?
아닙니다. 이 화면은 세분화 분류·집계·대사를 돕는 점검 도구이며, 확인필요는 추가 검토가 필요하다는 뜻일 뿐 최종 분류·공시 판단은 기준서 원문에 따라 회사와 감사인이 내립니다.
세분화 카테고리 합계가 총수익과 반드시 일치해야 하나요?
예. 세분화는 총수익을 다른 방식으로 나누어 보여주는 것이므로, 어느 기준으로 나누더라도 카테고리 합계는 포괄손익계산서의 총수익과 정확히 일치해야 합니다.
화면의 계정체계와 금액을 실제 공시에 써도 되나요?
아니요. 이 화면의 계정체계와 금액은 일반화한 가상 데이터입니다. 실제 공시에는 회사가 확정한 세분화 기준과 금액을 반영해야 하며, 최종 표시·공시 범위는 회사와 감사인이 기준서 원문에 따라 결정합니다.