SAP 수행의무 식별 점검 — IFRS 15, 계약에 담긴 약속이 서로 구별되는지 가려 수익을 인식하는 단위와 맞춰본다
항목마다 단독 효익·통합 용역·맞춤화·상호의존을 차례로 확인해 별도 수행의무 수를 구하고, 회사가 수익을 인식하는 단위와 어긋난 계약을 먼저 가려 둡니다
하나의 계약에 장비·설치·유지보수·교육처럼 여러 약속이 들어 있으면, 수익을 언제 얼마씩 인식할지는 이 약속들을 몇 개의 수행의무로 보느냐에서 시작됩니다. IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 계약에 약속한 재화나 용역을 식별해 구별되는 것마다 수행의무로 보도록 하고, 구별되지 않는 약속은 묶어 하나의 수행의무로 보게 합니다. 고객이 그 항목만으로(또는 쉽게 구할 수 있는 다른 자원과 함께) 효익을 얻을 수 있고, 계약 문맥에서도 다른 약속과 별도로 식별되어야 구별됩니다. 유의적인 통합 용역을 제공하거나, 유의적으로 맞춤화·변형하거나, 다른 약속과 상호의존·상호연관 관계가 있으면 구별되지 않는 쪽의 지표가 됩니다.
실무에서는 맞춤 개발이 얽힌 소프트웨어 사용권을 별도 수행의무로 나눠 인식하거나, 반대로 서로 독립적인 장비와 설치를 한 덩어리로 묶어 인식하는 일이 생깁니다. 판단 근거 문서가 비어 있는 항목도 있습니다. 계약·청구 데이터를 그대로 이어받아 항목마다 구별 여부를 판정하고, 계약별 판정 수행의무 수와 회사가 수익을 인식하는 단위 수를 나란히 놓는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 수익 |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 수행의무 식별 |
| Namespace | zui5.poident |
| 셸 구조 | 단일 페이지 + 5개 탭 |
| 화면 수 | 메인 1 · 상세 다이얼로그 1 |
| SAP 표준 T-code | VA43 · VA03 · VF03 · FBL5N |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 계약별 약속 항목의 구별 요인(단독 효익·통합 용역·맞춤화·상호의존), 판정 수행의무와 회사 인식 단위, 판단 근거 확인 여부 |
| 핵심 산식 | 별도 수행의무 = 단독 효익 가능 and 통합·맞춤화·상호의존 모두 아님 · 수행의무 수 차이 = 회사 인식 단위 수 − 판정 수행의무 수 |
| 결과 표시 | 정상 / 점검 필요 / 확인 필요 |
실제 화면 6종 둘러보기






사용 방법
- 회계연도를 넣고, 회사코드·계약번호·구별 요인·항목 구분·점검 결과는 필요할 때만 고릅니다. 비워 두면(전체) 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도나 계약번호 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건으로 자동 조회됩니다.
- 요약 줄에서 판정 항목 수, 점검 필요·확인 필요 건수, 수행의무 수 차이 계약 수와 절대값 합을 먼저 확인합니다.
- 탭을 옮겨 가며 항목 건별 판정 → 계약별 수행의무 대사 → 구별 요인별 현황 → 판정 구분별 요약 → 대사 결과 순으로 좁혀 봅니다.
- 항목 건별 탭에서 행을 누르면 항목 요약과 여섯 단계 판정 단계를 보여 주는 상세 다이얼로그가 열립니다.
- 각 탭의 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
구별부터 가른다 — 단독 효익·통합·맞춤화·상호의존 판정 규칙
수익 인식 단위를 비교하기 전에 항목이 구별되는지부터 가립니다. 위에서 먼저 걸리는 조건이 판정 구분이 됩니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 구별 판단 근거(계약 조건·산출물 문서)가 확인되지 않음 | 구별 판단 근거 확인 필요 — 확인 필요 | 근거 문서를 확인한 뒤 다시 판정합니다. |
| 판정은 별도 수행의무인데 회사는 다른 항목과 묶어 인식 | 구별되는 항목 묶음 인식 — 점검 필요 | 묶어 인식한 근거와 개별 항목의 인식 시점을 확인합니다. |
| 판정은 묶음 구성인데 회사는 별도로 인식 | 구별되지 않는 항목 별도 인식 — 점검 필요 | 별도로 인식한 근거와 묶음 판단 여부를 확인합니다. |
| 판정과 회사 인식 단위가 일치 | 정상 | - |
항목 판정은 먼저 단독 효익 가능 여부, 통합 용역 해당, 유의적 맞춤화 해당, 상호의존 해당 순으로 확인합니다. 단독 효익이 가능하고 나머지 요인이 모두 없을 때만 별도 수행의무이며, 그 밖에는 묶음으로 구성합니다. 판정 결과는 확인 대상을 알리는 표시이며 회계처리를 단정하지 않습니다.
항목 판정에서 수행의무 수 대사까지 4단계
- 항목을 판정한다 —
별도 수행의무 = 단독 효익 가능 and 통합·맞춤화·상호의존 모두 아님 - 판정 수행의무 수를 구한다 —
판정 수행의무 수 = 별도 판정 항목 수 + (묶음 항목이 있으면 1) - 회사 인식 단위와 비교한다 —
수행의무 수 차이 = 회사 인식 단위 수 − 판정 수행의무 수 - 거래가격과 건수를 대사한다 —
거래가격 = Σ 개별 판매가격 − 계약 할인,정상 + 점검 필요 + 확인 필요 = 판정 건수
조회조건
| 조회조건 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 선택 | 1000 / 2000 |
| 회계연도 | 필수 | 기본 2026 |
| 계약번호 | 선택 | 계약 하나만 조회, 비우면 전체 |
| 구별 요인 | 선택 | 구별됨·통합 용역·맞춤화·상호의존·단독 효익 불가, 전체 선택 시 조건 없이 조회 |
| 항목 구분 | 선택 | 재화 / 용역 / 라이선스, 전체 선택 시 조건 없이 조회 |
| 점검 결과 | 선택 | 정상 / 점검 필요 / 확인 필요, 전체 선택 시 조건 없이 조회 |
결과 컬럼
| 영역 | 내용 |
|---|---|
| 요약 | 판정 항목 · 점검 필요 · 확인 필요 · 수행의무 수 차이 계약 · 수행의무 수 차이 절대값 합 |
| 항목 건별 판정 | 점검 결과 · 판정 구분 · 계약번호 · 계약 유형 · 항목 · 약속 항목 · 항목 구분 · 개별 판매가격 · 단독 효익 가능 · 통합 용역 해당 · 유의적 맞춤화 해당 · 상호의존 해당 · 구별 요인 · 판정 결과 · 판정 수행의무 · 회사 인식 · 회사 인식 단위 · 근거 확인 · 비고 |
| 계약별 수행의무 대사 | 계약번호 · 계약 유형 · 고객 · 점검 결과 · 항목 수 · 개별 판매가격 합 · 계약 할인 · 거래가격 · 거래가격 차이 · 판정 수행의무 수 · 회사 인식 단위 수 · 수행의무 수 차이 |
| 구별 요인별 현황 | 구별 요인 · 항목 수 · 정상 · 점검 필요 · 확인 필요 · 별도·묶음 판정 항목 · 개별 판매가격 합 |
| 판정 구분별 요약 | 정상과 세 가지 점검 구분별 건수·계약 수·금액 |
| 대사 결과 | 대사식별 검사 건수 · 차이 건수 · 의도적 예외 건수 · 최대 차이 금액 |
SAP 표준 기능 매핑
- 계약·오더 — 판매 문서 헤더·항목(
VBAK·VBAP)을 그대로 사용해 약속 항목을 집계 - 표준 화면 — 판매 계약(VA43) · 판매오더(VA03) · 청구 문서(VF03) · 고객 개별 항목(FBL5N)
| T-code | 이름 | 쓰임 |
|---|---|---|
VA43 | 판매 계약 조회 | 계약에 담긴 약속 항목을 확인합니다 |
VA03 | 판매오더 조회 | 항목 단위 수량·금액을 확인합니다 |
VF03 | 청구 문서 조회 | 회사가 인식한 청구 단위를 확인합니다 |
FBL5N | 고객 개별 항목 조회 | 계약 고객별 채권·수익 전기 내역을 확인합니다 |
| 기준서 | 요구사항 | 화면 반영 |
|---|---|---|
| IFRS 15 | 계약에 약속한 재화·용역을 식별하고 구별되는 것마다 수행의무로 봄 | 항목 건별 판정 · 판정 단계 |
| IFRS 15 | 고객이 단독으로 효익을 얻을 수 있고 계약 문맥에서도 구별될 때 구별되는 것으로 봄 | 단독 효익·통합 용역·맞춤화·상호의존 확인 |
| IFRS 15 | 구별되지 않는 약속은 묶어 하나의 수행의무로 봄(묶음 구성 규칙은 단순화해 적용) | 판정 수행의무 수 산출 |
| IFRS 15 | 수행의무 단위로 수익을 인식(회사 인식 단위 소스는 확인 필요) | 회사 인식 단위 수와 비교 · 수행의무 수 차이 |
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'PoItemJudgeV'
define view PoItemJudge as select from vbap
inner join vbak on vbak.vbeln = vbap.vbeln
{
key vbak.vbeln as ContractNo,
key vbap.posnr as ItemNo,
vbap.arktx as ItemText,
vbap.netwr as SspAmt,
case when BenefitOk = 'Y' and IntegFlag = 'N'
and CustomFlag = 'N' and InterdepFlag = 'N'
then 'Y' else 'N' end as JudgeSep
}스케치입니다. 구별 판정 분류값의 소스는 확인 필요입니다.
OpenUI5 구성
| 구성 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 수익 |
| 화면 구성 | 조회조건 영역(우측 조회) + 요약 줄 + 항목 건별 판정, 계약별 수행의무 대사, 구별 요인별 현황, 판정 구분별 요약, 대사 결과 5개 탭, 상세 Dialog |
| 데이터 모델 | OData V2 모델을 앱 설정(manifest)에서 선언하고, 표마다 해당 결과 블록의 엔티티셋에 직접 바인딩 |
| 조회조건 처리 | 필터 객체로 만들어 서버 조회 조건($filter)으로 전달하며 "전체"는 조건을 만들지 않음 |
| 집계 | 요약 값은 서버의 합계 행에서 읽고 금액 문자열은 숫자로 변환해 표시·정렬 |
| 연결 안내 | 서비스 연결 실패와 요청 실패를 구분해 사용자 메시지로 안내 |
| 테마 | sap_horizon · 한국어 |
파일 구성
| 구분 | 내용 |
|---|---|
| 앱 본체 | index.html · manifest.json · Component.js · controller · view · model · i18n · css |
| 데이터 서비스 | OData 서비스 정의와 엔티티셋별 데이터 |
| 검증 전용 | 앱 본체와 분리된 검증용 샘플 데이터 구성 |
| 설명서 | readme.html (13개 절) |
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 가상 회사 2곳의 약속 항목 73건(정상 52건 · 점검 필요 17건 · 확인 필요 4건), 계약 22건을 기준으로, 생성 코드와 별도로 작성한 검증 스크립트가 구별 판정·수행의무 수·거래가격·집계를 전수 다시 계산해 대조했습니다.
| 대사식 | 검사 | 결과 | 의도적 예외 |
|---|---|---|---|
| 구별 판정 재산출 | 73 | 일치 | 0 |
| 판정 건수 합 = 전체 건수 | 73 | 일치 | 0 |
| 계약별 항목 수 합 = 항목 판정 건수 | 22 | 일치 | 0 |
| 거래가격 = Σ 개별 판매가격 − 계약 할인 | 22 | 일치 | 0 |
| 판정 수행의무 수 = 별도 판정 항목 수 + 묶음 1 | 22 | 일치 | 0 |
| 수행의무 수 차이 = 회사 인식 단위 수 − 판정 수행의무 수 | 22 | 일치 | 8 |
| 개별 판매가격 합계 | 73 | 일치 | 0 |
| 판정 구분별 건수 합 = 합계 행 | 10 | 일치 | 21 |
총 16개 대사식 행에서 검사 317건, 차이 0건, 최대 차이 금액 0원이었습니다. 판정 결과로 의도적으로 구성한 점검 필요 17건과 확인 필요 4건, 수행의무 수 차이 계약 8건은 점검 화면 시연을 위한 케이스이며, 대사식 차이 건수와 분리해 기록했습니다.
자주 묻는 질문
이 화면의 판정이 곧 회계처리 확정인가요?
아닙니다. 이 화면은 계약에 담긴 약속 항목의 구별 여부와 회사의 수익 인식 단위를 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 구별 여부의 최종 판단은 계약 조건과 기준서 원문에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
계약에 약속한 재화·용역을 식별해 구별되는 것마다 수행의무로 보는 요구는 IFRS 15(K-IFRS 제1115호)에 이미 포함된 내용입니다. 이 글은 별도 시행일이 있는 개정 사항을 다루지 않으며 시행일과 경과규정은 확인하지 않아 확인 필요입니다.
구별되는지는 어떤 기준으로 가르나요?
단독 효익 가능 여부, 통합 용역의 일부인지, 유의적 맞춤화·변형의 대상인지, 다른 약속과 상호의존·상호연관인지를 차례로 확인하고 모두 구별을 막지 않을 때만 별도 수행의무로 봅니다. 실제 계약의 구별 판단에는 계약 조건 검토가 필요하므로 이 화면의 분류값은 설정값이며 판단 근거는 확인 필요입니다.
묶음으로 판정됐는데 회사가 별도로 인식하면 어떻게 나오나요?
판정은 묶음 구성인데 회사 인식이 별도이면 "구별되지 않는 항목 별도 인식"으로 분류해 점검 필요로 보여 주고, 계약별 수행의무 수 차이에도 모아 줍니다. 묶음 여부와 인식 방법은 회사와 감사인이 판단하며 확인 필요입니다.
약속을 나눌지 묶을지, 수익을 잡기 전에 구별부터 맞춰보세요
결산 직전에 계약서와 청구 내역을 다시 뒤지는 대신, 화면에서 항목별 구별 판정과 수행의무 수, 회사 인식 단위를 미리 대사해 두면 결산과 감사 대응이 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.