솔루션 홈
계약자산부채

SAP 계약자산·계약부채 증감표 — IFRS 15, 청구와 수익인식의 시차를 원장으로 먼저 맞춰본다

계약자산·계약부채는 청구와 수행의무 이행 시점이 어긋날 때 생깁니다. 그 시차를 계약유형별로 증감 재구성하고, 수익인식 총액을 손익계산서 매출액과 함께 맞춰봅니다.

IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)에 따르면, 수익은 고객에게 약속한 재화나 용역(수행의무)을 이전하는 대가로 받을 것으로 예상하는 금액을 반영해 인식합니다. 문제는 이 수행의무 이행 시점과 청구·대금회수 시점이 늘 같지 않다는 데 있습니다. 이행이 청구보다 앞서면 계약자산이, 청구·수령이 이행보다 앞서면 계약부채가 재무상태표에 남습니다.

이 시차를 결산 때마다 눈으로 다시 맞추는 대신, 계약유형별 증감표와 수익인식 대사를 한 화면에서 확인할 수 있도록 OpenUI5 화면으로 확장했습니다. 라이선스및설치·유지보수용역·구독형서비스·건설형용역·하드웨어공급 5개 계약유형의 계약자산·계약부채 증감표에, 당기 수익인식 총액을 손익계산서 매출액과 대사하는 표까지 더했습니다. 실제 구동 화면 3종을 함께 공개합니다.

이 화면이 더하는 부분

  • 계약자산·계약부채 원장 데이터 — G/L 계정(ACDOCA)의 계약자산·계약부채 계정을 계약유형별로 재구성
  • 증감 산출 — 계약자산은 수익인식·매출채권대체·손상, 계약부채는 선수금·수익인식으로 분리해 기말잔액을 검증
  • 수익인식 대사 — 계약자산 증가분·계약부채 감소분·즉시인식 매출을 더해 손익계산서 매출액과 일치 여부 확인
  • 재무상태표 대사 — 계약유형 전체 합계를 재무상태표 계약자산·계약부채 계정잔액과 대사
항목내용
업무 영역재무회계(FI) · 결산 · 수익인식
관련 기준서IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)
Namespacezui5.contractbal
셸 구조조회조건(우측 조회) + 총괄 증감표 · 계약유형별 명세 · 수익인식 대사 · 재무상태표 대사, 계약유형별 월별 상세 Dialog
화면 수조회 화면 1개 + 월별 증감 상세 다이얼로그
SAP 표준 T-codeFAGLL03 · FBL5N
성격조회·점검형 — 계약 등록·청구·수익인식 전기는 표준 프로세스가 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회계연도·회계기간을 넣고 조회하면 총괄 증감표부터 재무상태표 대사까지 한 번에 뜹니다 → 계약유형별 명세 행을 눌러 월별 증감 상세를 확인합니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

Main.view.xml
계약자산·계약부채 증감과 수익인식 대사 메인 화면
총괄 증감표부터 계약유형별 명세까지 — 조회조건 아래로 계약자산·계약부채 총괄 증감표, 계약유형별 명세가 이어집니다. 계약자산·계약부채 각각의 검증 메시지가 초록색으로 "검증 통과(차이 0)"를 표시합니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
계약유형별 월별 증감 상세
계약유형별 월별 계약자산·계약부채 증감 상세 다이얼로그
계약유형별 월별 증감 상세 — 계약유형별 명세의 행을 클릭하면 선택 기간의 월별 계약자산·계약부채 증감 내역이 다이얼로그로 열립니다. 마지막 월 기말잔액이 위 명세표의 기말잔액과 일치하는지도 함께 확인합니다.
수익인식 대사 · 재무상태표 대사
수익인식 대사와 재무상태표 대사 화면
수익인식 대사 · 재무상태표 대사 — 계약자산 증가분·계약부채 감소분·즉시인식 매출 합계가 손익계산서 매출액과, 계약자산·계약부채 기말잔액 합계가 재무상태표 계정잔액과 각각 일치하는지 검증 메시지로 확인합니다.

조작 방법

  1. Company Code · 회계연도 · 회계기간을 선택합니다. 값을 바꾸면 즉시 재조회됩니다.
  2. 계약자산·계약부채 총괄 증감표에서 계약자산·계약부채 각각의 기초→증가→감소→기말 흐름과 검증 메시지를 확인합니다.
  3. 계약유형별 명세의 행을 클릭하면 해당 유형의 월별 계약자산·계약부채 증감 상세 다이얼로그가 열립니다.
  4. 수익인식 대사 표에서 당기 수익인식 총액이 손익계산서 매출액과 일치하는지 확인합니다.
  5. 재무상태표 대사 표에서 계약자산·계약부채 기말잔액 합계와 재무상태표 계정잔액의 일치 여부를 확인하고, CSV로 전체 표를 내려받습니다.

계약자산·계약부채 판정 규칙

IFRS 15는 수행의무 이행과 청구·대금회수의 시차에 따라 계약자산과 계약부채를 구분하도록 요구합니다. 이 화면은 그 시차를 계정 이동 규칙표로 정리합니다.

이행 vs 청구계정 처리화면 반영
이행이 청구보다 앞섬(청구 권리에 조건이 남음)계약자산 증가(수익인식)계약자산 증감표 "당기 수익인식" 행
청구 권리가 무조건적으로 확정계약자산 → 매출채권 대체계약자산 증감표 "당기 매출채권 대체" 행
청구·수령이 이행보다 앞섬계약부채 증가(선수금)계약부채 증감표 "당기 선수금" 행
선수금 수령 후 이행 완료계약부채 감소(수익인식)계약부채 증감표 "당기 수익인식" 행
청구와 이행이 동시에 발생계약자산·부채 미경유, 즉시 수익인식수익인식 대사 "즉시인식 매출" 행

공개한 검증용 데이터는 위 규칙에 따라 계약유형별로 계약자산·계약부채 증감을 재구성했으며, 회수가 어려운 것으로 판단되는 계약자산에는 기대신용손실 성격의 손상을 별도로 반영했습니다.

증감표에서 수익인식 대사까지 4단계 산출

단계내용
① 계약유형별 증감 집계계약자산·계약부채 관련 계정을 계약유형 5종별로 나눠 기초잔액과 당기 증감 요인을 합산
② 총괄 증감표 산출계약자산은 "기초+수익인식-매출채권대체-손상", 계약부채는 "기초+선수금-수익인식" 항등식으로 재구성하고 기말잔액과 대사
③ 수익인식 대사계약자산 증가분(수익인식)+계약부채 감소분(수익인식)+즉시인식 매출을 더해 당기 수익인식 총액을 산출하고 손익계산서 매출액과 대사
④ 재무상태표 대사계약유형 전체의 계약자산·계약부채 기말잔액 합계를 재무상태표 계정잔액과 대사

조회조건

필드필수설명
Company Code필수대상 회사코드
회계연도필수2025 / 2026 선택
회계기간(From~To)필수001~012월 범위 선택

결과 컬럼

총괄 증감표 · 수익인식 대사 · 재무상태표 대사

컬럼의미 · 표시
항목계약자산·계약부채 기초/증가/감소/기말, 수익인식 원천별 금액, 재무상태표 계정잔액
금액(KRW)우측정렬, 천단위 콤마, 마이너스는 △

계약유형별 명세

컬럼의미 · 표시
계약유형라이선스및설치·유지보수용역·구독형서비스·건설형용역·하드웨어공급
계약자산 기초/기말계약유형별 계약자산 잔액(행 클릭 시 월별 상세)
계약부채 기초/기말계약유형별 계약부채 잔액(행 클릭 시 월별 상세)

SAP 표준 기능 매핑

표준 실행은 SAP 표준 T-code가 담당하고, 이 화면은 계약유형별 증감 재구성과 수익인식·재무상태표 대사 관점을 더해 확장합니다.

SAP 표준 T-code역할
FAGLL03G/L 계정별 개별항목 조회 — 계약자산·계약부채 계정의 전표 라인아이템 확인
FBL5N고객(매출채권) 라인아이템 조회 — 계약자산의 매출채권 대체, 선수금 수령 내역 확인

IFRS 요구사항 매핑표

기준서요구사항이 화면의 대응 기능원천 데이터비고
IFRS 15(K-IFRS 제1115호)계약자산·계약부채의 인식과 표시계약유형별 총괄 증감표ACDOCA(RACCT·RBUKRS·GJAHR·POPER·HSL)계약유형 구분은 관리회계 축 활용 전제(원문 확인 필요)
IFRS 15(K-IFRS 제1115호)수행의무 이행 기준 수익인식 금액·시점수익인식 대사ACDOCA(수익 계정 대변 누계)즉시인식 매출 구분 기준은 회사 업무 규칙 확인 필요
IFRS 9(K-IFRS 제1109호)계약자산 기대신용손실 손상계약자산 증감표 "당기 손상" 행ACDOCA(대손충당금 관련 계정)손상 모형 세부 규칙은 IFRS 9 원문 별도 확인 필요
IFRS 15(K-IFRS 제1115호)재무상태표 표시금액과의 일치재무상태표 대사ACDOCA(기말잔액 누계)-

도입 시 확인이 필요한 부분

계약유형 구분(라이선스및설치·유지보수용역·구독형서비스·건설형용역·하드웨어공급)은 표준 계정과 관리회계 축 그룹핑을 전제로 한 것이라, 실제 도입 때는 회사의 계약·계정체계에 맞춰 그룹핑 기준을 다시 정의합니다. 즉시인식 매출 판정 기준도 계약유형별 업무 규칙을 따르므로 고정값으로 두지 않습니다.

참고 CDS 뷰

운영 서비스로 연결할 때를 가정한 참고 설계입니다(이번 화면은 mock 데이터 기반이며 아래 CDS 뷰는 구현되어 있지 않습니다).

@AbapCatalog.sqlViewName: 'ZICTBALRECON'
@EndUserText.label: '계약자산부채 증감 수익인식 대사(참고)'
define view ZI_ContractBalanceRecon
  as select from acdoca
{
  key rbukrs                as CompanyCode,
  key gjahr                 as FiscalYear,
  key poper                 as FiscalPeriod,
  key racct                 as GLAccount,
      rfarea                as FunctionalArea,
      sum( hsl )             as AmountInCoCodeCrcy
}
where blart in ( 'SA', 'DR', 'DZ' )
group by rbukrs, gjahr, poper, racct, rfarea

계약유형 구분은 위 GLAccount를 관리회계 축(원가요소·이익센터 등) 기준으로 그룹핑하는 것을 전제로 합니다. 매핑 이해를 돕기 위한 참고용 설계이며, 실제 도입 시에는 운영 환경의 계정체계에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 4개 결과 패널
조회조건sap.m.Input(비활성) · sap.m.Select — 우측 끝에 조회 버튼, 선택 변경 시 즉시 재조회
결과 표sap.m.Table — 계약유형별 명세는 itemPress로 상세 다이얼로그 연결
검증 메시지sap.m.MessageStrip — 표준 상태값(Success·Error)으로 대사 결과 강조
상세 다이얼로그sap.m.Dialog + Fragment — 계약유형별 월별 계약자산·계약부채 증감 상세
포맷금액 · 검증 상태 포맷터, CSV 다운로드(UTF-8 BOM)

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon · lodash · moment
Component.js조회조건 모델 · 결과 모델 초기화
manifest.json앱 디스크립터 — zui5.contractbal · ko 로케일
view/Main.view.xml조회화면 + 4개 결과 패널
view/DetailDialog.fragment.xml계약유형별 월별 증감 상세 다이얼로그
controller/Main.controller.js조회 · 검증 메시지 설정 · 상세 다이얼로그 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise) + 증감·대사 계산 로직
model/formatter.js금액 · 검증상태 포맷
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/contractbal.json계약유형별 월별 증감 · 재무상태표 잔액 · 손익 매출액 검증용 데이터

운영 전환 시에는 ModelMock 내부만 실제 서비스 호출로 바꾸면 화면과 검증 로직은 그대로 씁니다.

검증 결과

화면 구성에 쓴 데이터는 계약유형 5종 × 24개월(2025.01~2026.12) 증감 레코드 120건, 재무상태표 잔액·손익 매출액 스냅샷 각 24건입니다.

검증 항목결과
계약자산 : 기초+수익인식-매출채권대체-손상=기말 (120건 전수 + 6개 기간조합 총괄)전수 통과(차이 0)
계약부채 : 기초+선수금-수익인식=기말 (120건 전수 + 6개 기간조합 총괄)전수 통과(차이 0)
계약자산·계약부채 기말잔액 합계 = 재무상태표 계정잔액 (24개월 × 2계정)전수 통과(차이 0)
수익인식 대사 : 계약자산 증가분+계약부채 감소분+즉시인식 매출=손익계산서 매출액 (24개월)전수 통과(차이 0)
조회 버튼 위치(조회조건 영역 오른쪽 끝) · 적용 테마(sap_horizon)통과
화면 렌더링 — 실브라우저에서 조회 → 계약유형별 명세 클릭 → 상세 다이얼로그 실동작 후 캡처3/3

회사코드·계정체계·계약유형명은 모두 검증용 가상 데이터입니다.

자주 묻는 질문

계약자산과 매출채권은 어떻게 구분하나요?

수행의무를 이행해 수익을 인식했지만 대금 청구 권리가 시간 경과 외의 조건에 걸려 있으면 계약자산으로, 청구 권리가 시간 경과만으로 무조건 발생하면 매출채권으로 봅니다. 화면에서는 청구 시점에 계약자산이 매출채권으로 대체되는 흐름으로 표시합니다.

계약부채는 회계상 어떤 성격의 계정인가요?

고객에게서 대가를 먼저 받았거나 청구했지만 아직 수행의무를 이행하지 못한 부분입니다. 수행의무를 이행하면 그만큼 계약부채가 줄고 수익으로 인식됩니다.

이 요구사항은 언제부터 적용되나요?

IFRS 15(K-IFRS 제1115호)는 이미 시행 중인 기준서로 별도의 도입 유예기간이 없으며, 이 화면은 기존 재무제표 작성 시점부터 참고할 수 있는 상시 점검 도구입니다.

이 화면의 대사 결과를 그대로 재무제표에 반영해도 되나요?

아니요. 이 화면은 계약자산·계약부채의 증감과 수익인식을 원장 데이터로 미리 대사해 보는 점검 도구이며, 최종 인식·측정·공시 판단은 기준서 원문에 따라 회사와 감사인이 결정합니다.

계약자산·계약부채 결산, 지금 쓰는 SAP 위에서 먼저 점검해 보세요

기말 결산 때마다 계약유형별 증감을 수작업으로 다시 취합하는 대신, 화면에서 바로 증감표와 수익인식 대사를 함께 보면 결산 준비 시간이 줄어듭니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

계약자산IFRS 15K-IFRS 1115계약부채수익인식대사OpenUI5