솔루션 홈
IAS 37

SAP 손실부담계약 충당부채 점검 — IAS 37, 끝까지 할 때와 그만둘 때 중 덜 아픈 쪽이 부채다

이행하면 손해가 나는 계약을 이행원가와 해지 위약금 중 적은 금액으로 측정했는지, 이행원가에 배분 원가까지 넣었는지 계약·원가·원장 데이터로 먼저 확인해 둡니다

원자재 값이 올라 이미 맺은 공급계약을 끝까지 이행하면 손해가 나는 경우가 있습니다. IAS 37 충당부채, 우발부채, 우발자산(K-IFRS 제1037호)은 이런 계약을 손실부담계약으로 보고 피할 수 없는 손실만큼 충당부채를 인식하도록 합니다. 피할 수 없는 원가는 끝까지 이행하는 원가와 해지 위약금 가운데 적은 쪽이고, 이행원가에는 증분원가뿐 아니라 계약 이행에 직접 관련된 기타 원가의 배분액도 들어갑니다.

증분원가만 넣어 손실을 놓치거나, 위약금이 더 싼데 이행 손실로 잡거나, 충당부채를 빠뜨리는 실수가 잦습니다. 표준 계약·원가·원장 구조를 그대로 이어받아 계약마다 이행원가·순이행손실·위약금을 나란히 계산해 기준 충당부채를 장부와 대사하는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 계약 — 판매 계약(VBAK/VBAP)의 잔여 수량·단가로 남은 수익을 사용
  • 원가 — CO 원가 실적(COEP)과 통합 원장(ACDOCA)의 계약 원가·배분을 그대로 사용
  • 표준 화면 — 계약 조회(VA43) · 프로젝트 실적 원가(CJI3) · 수익성 보고서(KE30) · G/L 잔액(FS10N)
항목내용
업무 영역재무회계(FI) · 충당부채
관련 기준서IAS 37 충당부채, 우발부채, 우발자산(K-IFRS 제1037호) — 손실부담계약: 회피 불가능 원가(계약 이행원가와 해지 위약금 중 적은 금액)가 기대 효익을 초과하는 부분의 충당부채, 이행원가에 증분원가와 직접 관련된 기타 원가 배분 포함
Namespacezui5.onerous
셸 구조조회조건 영역(우측 조회) + 손실부담계약 대사 요약 + 계약 명세·계약 유형별·측정 근거별·사업부별·점검 예외 5개 탭, 상세 Dialog
화면 수조회 화면 1개 + 상세 다이얼로그
SAP 표준 T-codeVA43 · CJI3 · KE30 · FS10N · FAGLL03(§7 참고)
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩
성격조회·대사·점검형 — 충당부채 설정·환입 전표 기표는 화면 밖 프로세스
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

회사코드·회계연도를 넣고 조회하면 손실부담계약 대사 요약과 계약 명세가 한 화면에 뜹니다 → 탭을 옮겨 계약 유형별·측정 근거별·사업부별 집계를 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.

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

Main.view.xml
계약 명세 화면 — 조회조건과 손실부담계약 대사 요약
메인화면 — 2026 회계연도 전체 조회 결과. 12건의 계약에 대해 이행원가 구성과 해지 위약금, 측정 근거, 기준·장부 충당부채가 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
조회조건 — Enter 키 조회
계약번호 조건으로 좁힌 조회 결과
조건 조회 — 계약번호를 입력하고 Enter 키만 눌러도 즉시 재조회됩니다. 위약금이 더 싼데 이행 손실로 충당부채를 잡은 계약이 바로 드러납니다.
계약 유형별 집계
계약 유형별 집계
계약 유형별 집계 — 원가 변동에 민감한 공급계약에 충당부채가 몰려 있는지 봅니다.
측정 근거별 집계
측정 근거별 집계
측정 근거별 집계 — 계약 해지 기준으로 측정된 건은 위약금이 곧 충당부채입니다.
점검 예외
점검 예외 목록
점검 예외 — 확인이 필요한 건만 유형별로 모아 보여줍니다.
상세 내역
상세 내역 다이얼로그
상세 내역 — 행을 클릭하면 이행원가 구성과 순이행손실, 해지 위약금, 잔여 이익률, 기준·장부 충당부채가 항목별로 펼쳐집니다.

사용 방법

  1. 회사코드와 회계연도를 넣습니다. 계약 유형·계약번호·판정 상태는 비워 두면 전체가 조회됩니다.
  2. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
  3. 손실부담계약 대사 요약에서 손실부담계약 건수와 기준·장부 충당부채, 충당부채 차이를 먼저 확인합니다.
  4. 탭을 옮겨 가며 계약 명세 → 계약 유형별 → 측정 근거별 → 사업부별 → 점검 예외 순으로 좁혀 봅니다.
  5. 행을 누르면 이행원가 구성·순이행손실·해지 위약금·잔여 이익률과 기준·장부 충당부채가 상세 다이얼로그로 열립니다.
  6. 계약 명세와 점검 예외 탭에서는 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.

덜 아픈 쪽 — 회피 불가능 원가 규칙

계약을 끝까지 이행할 때의 손실과 해지할 때의 위약금을 비교해, 적은 쪽이 피할 수 없는 손실입니다.

판정 조건결과 상태사용자 조치
이행원가 ≤ 잔여 수익손실 없음충당부채를 인식하지 않습니다.
순이행손실 ≤ 해지 위약금계약 이행 기준순이행손실만큼 충당부채를 인식합니다.
순이행손실 > 해지 위약금계약 해지 기준해지 위약금만큼 충당부채를 인식합니다.
이행원가에 증분원가만 반영점검 필요직접 관련 기타 원가 배분을 포함했는지 확인합니다.
위약금이 더 적은데 이행 손실로 측정점검 필요해지 대안과 비교했는지 확인합니다.
손실이 예상되는데 충당부채 없음점검 필요충당부채 설정 여부를 확인합니다.
잔여 이익률 3% 미만확인 필요원가 추정을 다시 검토합니다.

이 화면이 대신 정하지 않는 것

판정 결과는 확인 대상을 알리는 표시이며, 기준서 충족 여부를 단정하지 않습니다. 손실부담계약 충당부채를 인식하기 전에 그 계약에 쓰는 자산의 손상차손을 먼저 인식해야 하며, 이 화면은 그 단계를 다루지 않습니다. 원가 추정과 배분 기준은 회사가 정하고, 3% 기준은 확인 대상을 고르는 참고값입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.

이행원가 산정에서 충당부채 대사까지 5단계 산출

단계내용
1단계이행원가를 구한다 — 이행원가 = 증분원가 + 직접 관련 기타 원가 배분
2단계순이행손실을 구한다 — 순이행손실 = 이행원가 − 잔여 수익
3단계해지 위약금과 비교한다 — 회피 불가능 손실 = min(순이행손실, 해지 위약금)
4단계충당부채를 정한다 — 충당부채 = max(0, 회피 불가능 손실)
5단계장부와 대사한다 — 차이 = 장부 충당부채 − 기준 충당부채

조회조건

필드필수설명
회사코드필수대사 요약 단건 조회의 키로도 씁니다.
회계연도필수대사 요약 단건 조회의 키로도 씁니다.
계약 유형선택전체 / 제품 공급계약 / 용역 제공계약 / 원재료 구매약정
계약번호선택한 계약만 좁혀 볼 때 씁니다.
판정 상태선택전체 / 정상 / 점검 필요 / 확인 필요

결과 컬럼

영역컬럼 · 표시
손실부담계약 대사 요약계약 건수 · 손실부담계약 건수 · 잔여 수익 합계 · 이행원가 합계 · 기준/장부 충당부채 · 충당부채 차이 · 예외 건수
계약 명세계약번호 · 상대방 · 계약 유형 · 잔여 수익 · 증분원가 · 기타 직접원가 배분 · 이행원가 · 해지 위약금 · 측정 근거 · 잔여 이익률 · 기준/장부 충당부채 · 판정
계약 유형별 · 측정 근거별 · 사업부별 집계구분 · 건수 · 잔여 수익 · 이행원가 · 해지 위약금 · 기준/장부 충당부채
점검 예외예외번호 · 계약번호 · 예외 유형 · 내용 · 차이 · 중요도

SAP 표준 기능 매핑

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 손실부담계약 측정 관점의 조회·검증을 더해 확장합니다.

표준 T-code표준 기능이 화면이 더한 것
VA43계약 조회잔여 계약 수량·단가로 남은 수익을 가져옵니다
CJI3프로젝트 실적 원가 조회계약에 쓰인 증분원가와 배분 원가를 확인합니다
KE30수익성 보고서계약 유형·사업부별 수익과 원가를 집계합니다
FS10NG/L 계정 잔액 조회손실부담계약 충당부채 계정 잔액을 기준과 대사합니다
FAGLL03G/L 개별항목 조회충당부채 설정·환입 전표를 건별로 확인합니다

IFRS 요구사항 매핑표

기준서요구사항이 화면의 대응 기능원천 데이터비고
IAS 37
(K-IFRS 제1037호)
손실부담계약의 현재의무는 충당부채로 인식·측정기준 충당부채 산출과 미설정 검출ACDOCA손실 판단은 원가 추정에 따릅니다.
IAS 37
(K-IFRS 제1037호)
회피 불가능 원가 = 이행원가와 해지 위약금 중 적은 금액해지 대안 비교와 위약금 미비교 검출VBAK · VBAP위약금 조건은 계약서로 확인합니다.
IAS 37
(K-IFRS 제1037호)
이행원가 = 증분원가 + 이행에 직접 관련된 기타 원가 배분이행원가 구성 표시와 증분원가만 반영한 건 검출COEP · ACDOCA배분 기준은 회사가 정합니다.
IAS 37
(K-IFRS 제1037호)
충당부채 인식 전 계약 전용 자산의 손상차손을 먼저 인식화면 범위 밖 — 손상 검토는 별도 절차ANLA이 화면은 손상 이후 금액을 다룹니다.

참고 CDS 뷰

원천 테이블주요 필드쓰임
VBAK / VBAPVBELN · KUNNR · NETWR · KWMENG계약과 잔여 수익
PRPSPSPNR · POSID · PBUKR계약에 연결된 WBS
COEP / ACDOCAOBJNR · KSTAR · WKGBTR · HSL계약 원가 실적과 배분
ACDOCARBUKRS · GJAHR · RACCT · HSL충당부채 전표
KNA1 / LFA1KUNNR · LIFNR · NAME1상대방 표기
define view entity ZC_OnerousContractItem
  as select from    ZI_ContractCostForecast as cf
    inner join      I_SalesContract         as sc on sc.SalesContract = cf.ContractNo
{
  key cf.AssessmentId          as OcId,
      cf.ContractNo            as ContractNo,
      sc.SoldToParty           as Counterparty,
      cf.RemainingRevenue      as RemainRev,
      cf.IncrementalCost       as IncrCost,
      cf.AllocatedDirectCost   as AllocCost,
      cf.ExitPenalty           as ExitPenalty,
      cf.Currency              as Waers
}

표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.

OpenUI5 구성

기능사용 컨트롤 · 구성
화면 골격sap.m.Page + 조회조건 패널 · 대사 요약 패널 · sap.m.IconTabBar 5개 탭
데이터 연동manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩합니다. 모델 설정은 useBatch:false · defaultBindingMode:"OneWay" · defaultCountMode:"Inline"
조회조건sap.m.Input · sap.m.ComboBox — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다
정렬 · 페이징sap/ui/model/Sorter와 모델의 페이징 기능으로 처리 — 전체를 받아 화면에서 걸러내지 않습니다
명세·예외 표sap.ui.table.Table — 행 클릭 시 상세 다이얼로그
집계 표sap.m.Tablesap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시
공통 처리CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결
Component.js화면 상태·조회조건 모델 초기화, 전역 오류 처리기 연결
manifest.json앱 디스크립터 — zui5.onerous · ko 로케일, OData 서비스와 모델 선언
view/Main.view.xml조회조건 · 대사 요약 · 5개 탭
view/DetailDialog.fragment.xml상세 내역 다이얼로그
controller/Main.controller.js조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드
controller/BaseController.jsCSV 다운로드 공통 처리
model/ErrorHandler.js전역 오류 처리
model/formatter.js금액 · 비율 · 상태 표시 서식
i18n/i18n_ko.propertiesko 로케일 리소스

운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.

검증 결과

화면 구성에 쓴 검증용 샘플 데이터는 12건의 계약을 기준으로 이행원가·순이행손실·충당부채가 원(KRW) 단위로 맞물리도록 구성했습니다.

검증 항목결과
이행원가 = 증분원가 + 기타 직접원가 배분통과(차이 0)
순이행손실 = 이행원가 − 잔여 수익통과(차이 0)
충당부채 = max(0, min(순이행손실, 해지 위약금))통과(차이 0)
측정 근거 = 손실 없음 · 계약 이행 · 계약 해지통과(차이 0)
잔여 이익률 = (잔여 수익 − 이행원가) ÷ 잔여 수익통과(차이 0)
장부 충당부채 = 기준통과(의도적 예외 제외 차이 0)
계약 유형별 집계 = 명세 집계통과(차이 0)
측정 근거별 집계 = 명세 집계통과(차이 0)
사업부별 집계 = 명세 집계통과(차이 0)
대사 요약행 = 실제 집계 결과통과(차이 0)
금액 차이 건 = 예외 등록 건통과(의도적 예외 제외 차이 0)
확인 대상 건 안내이행원가 범위 누락 1건 · 위약금 미비교 1건 · 충당부채 미설정 1건 · 얇은 이익률 1건(의도적으로 구성한 케이스)
조회 조건 전달 — 12건 → 6건 필터 · top 3 · 내림차순 정렬 · __count 12 확인확인
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출0건
화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처6/6
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내확인

모든 데이터는 검증용으로 구성한 가상 데이터입니다.

자주 묻는 질문

이 화면의 판정이 곧 기준서 충족 여부인가요?

아닙니다. 이 화면은 손실부담계약 충당부채의 측정 결과를 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.

적용 시기와 범위는 어떻게 되나요?

IAS 37 충당부채, 우발부채, 우발자산(K-IFRS 제1037호)은 이미 시행 중이며, 이행원가에 직접 관련된 기타 원가 배분을 포함하도록 한 개정도 이미 적용되고 있습니다. 이 화면은 아직 이행이 끝나지 않은 공급·용역·구매 약정을 다룹니다. 원가 추정이 바뀔 때마다 손실 여부가 달라지므로 결산마다 점검할 대상입니다.

왜 해지 위약금과 비교하나요?

피할 수 없는 손실만 충당부채로 인식하기 때문입니다. 계약을 끝까지 이행하면 4억 원 손해인데 위약금 1.5억 원을 물고 나갈 수 있다면, 회사가 피할 수 없는 손실은 1.5억 원입니다. 그래서 둘 중 적은 금액을 기준으로 삼습니다.

이행원가에 무엇을 넣어야 하나요?

그 계약 때문에 새로 드는 재료비·노무비 같은 증분원가와, 계약 이행에 쓰는 설비의 감가상각처럼 계약 이행과 직접 관련된 기타 원가의 배분액을 함께 넣습니다. 계약과 직접 관련 없는 일반관리비는 넣지 않습니다. 증분원가만 넣으면 손실이 작게 계산되거나 손실부담계약을 놓칠 수 있습니다.

손해 보는 계약, 결산 전에 측정부터 맞춰보세요

계약마다 이행원가와 위약금을 손으로 다시 비교하는 대신, 화면에서 회피 불가능 원가 기준 충당부채를 장부와 미리 대사해 두면 결산과 공시 준비가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

IAS 37K-IFRS 1037손실부담계약충당부채이행원가해지 위약금OpenUI5