솔루션 홈
IFRS 15

SAP 계약원가 자산화·상각 점검 — IFRS 15, 수주에 쓴 돈을 자산으로 남길지 먼저 가른다

수주 성과수수료와 계약 전용 투입원가가 자산으로 남을 수 있는 원가인지, 남았다면 기초에서 기말까지 상각과 손상이 제대로 반영됐는지 계약·원장 데이터로 먼저 확인해 둡니다

수주 성과수수료, 대리점 중개수수료, 계약 전용 치구 제작비. 계약을 따내고 이행하려고 쓴 돈은 그 계약이 없었다면 쓰지 않았을 돈입니다. IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 이런 원가 가운데 계약체결 증분원가와 계약이행원가를 일정 요건 아래 자산으로 인식하고, 재화·용역이 이전되는 기간에 걸쳐 상각하도록 요구합니다. 문제는 어떤 원가가 자산이 되고 어떤 원가가 즉시 비용인지, 자산이 됐다면 몇 달에 걸쳐 상각하는지, 계약이 나빠졌을 때 손상을 잡았는지가 계약마다 담당자마다 흩어져 있다는 점입니다.

표준 판매문서·내부오더·원장 구조를 그대로 이어받아 계약원가를 유형별로 모으고, 자산 인식 판정과 건별 증감, 유형별 증감표 대사, 잔여 상각 스케줄, 확인 대상 건 추출까지 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.

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

  • 계약 원천 — 판매문서 헤더·품목(VBAK/VBAP) 구조를 그대로 사용
  • 투입원가 — 내부오더 실제원가 라인(COEP)과 원장(ACDOCA) 금액을 그대로 집계
  • 표준 화면 — 판매오더 조회(VA03) · 판매계약 조회(VA43) · 내부오더 조회(KO03) · 내부오더 개별항목(KOB1)
항목내용
업무 영역재무회계(FI) · 수익 인식
관련 기준서IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 계약체결 증분원가와 계약이행원가의 자산 인식, 상각과 손상
Namespacezui5.contcost
셸 구조조회조건 영역(우측 조회) + 증감 대사 요약 + 계약원가 명세·유형별 증감표·자산화 판정·잔여 상각 스케줄·점검 예외 5개 탭, 상세 Dialog
화면 수조회 화면 1개 + 상세 다이얼로그
SAP 표준 T-codeVA03 · VA43 · KO03 · KOB1 · FBL5N · FAGLL03(§7 참고)
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩
성격조회·대사·점검형 — 자산 인식 확정과 전표 기표는 화면 밖 프로세스
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

회사코드·회계연도를 넣고 조회하면 증감 대사 요약과 계약원가 명세가 한 화면에 뜹니다 → 탭을 옮겨 유형별 증감표·자산화 판정·잔여 상각 스케줄을 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.

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

Main.view.xml
계약원가 자산화 점검 메인화면 — 조회조건과 증감 대사 요약, 계약별 원가 명세
메인화면 — 2026 회계연도 전체 조회 결과. 원가 15건 중 11건이 자산으로 인식됐고, 기초 3억 300만 원에 당기 자산화 4억 1,400만 원을 더해 상각 1억 3,400만 원을 뺀 기말 5억 6,700만 원까지 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
조회조건 — Enter 키 조회
계약번호를 넣고 Enter 키를 눌러 한 계약의 원가만 좁혀 본 화면
조건 조회 — 계약번호를 입력하고 Enter 키만 눌러도 즉시 재조회됩니다. 한 계약 안에서 증분원가와 이행원가가 각각 어떤 판정을 받았는지 바로 드러납니다.
유형별 증감표
계약체결 증분원가와 계약이행원가의 기초·자산화·상각·손상·환입·기말을 대사하는 화면
유형별 증감표 — 두 원가 유형의 기초에서 기말까지를 한 줄씩 놓고 대사합니다. 건별 명세를 합한 값과 정확히 맞아야 하며, 어긋나면 상단 요약에 차이가 드러납니다.
잔여 상각 스케줄
기말 장부금액을 잔여 상각기간에 걸쳐 전개한 예상 상각액과 누계·잔여 장부금액
잔여 상각 스케줄 — 기말 장부금액이 앞으로 어떻게 비용이 되는지 기간별로 펼칩니다. 누계는 기말잔액과, 마지막 잔여 장부금액은 0과 맞아야 합니다.
점검 예외
증감 불일치·상각기간 미등록·손상 징후·종료 계약 잔액을 모은 점검 예외 목록
점검 예외 — 확인이 필요한 건만 유형별로 모아 보여줍니다. 각 행에 해당 계약·원가번호와 차이 금액, 무엇을 다시 봐야 하는지가 함께 적힙니다.
상세 내역
원가 행을 클릭하면 뜨는 금액 구성과 상각기간·회수예상액 상세 다이얼로그
상세 내역 — 행을 클릭하면 그 원가의 기초부터 기말까지의 구성과 상각기간·상각 개시월·회수예상액이 항목별로 펼쳐집니다.

조작 방법

  1. 회사코드·회계연도를 지정하고, 계약번호·원가 유형·판정 상태는 필요할 때만 넣습니다. 비워 두면 전체가 조회됩니다.
  2. 조회·초기화 버튼은 조회조건 입력 필드 줄의 오른쪽 끝에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
  3. 증감 대사 요약에서 기초잔액·당기 자산화·당기 상각·기말잔액과 증감 차이를 먼저 확인합니다.
  4. 계약원가 명세에서 원가별 자산화 판정과 기초에서 기말까지의 움직임을 봅니다.
  5. 유형별 증감표에서 증분원가와 이행원가를 각각 대사하고, 자산화 판정 탭에서 자산 인식과 즉시 비용의 구성비를 확인합니다.
  6. 잔여 상각 스케줄에서 기말 장부금액이 앞으로 어떻게 비용이 되는지 기간별로 봅니다.
  7. 점검 예외에서 확인이 필요한 건을 추려 보고, 행을 클릭해 상세를 확인한 뒤 CSV 다운로드로 결과를 내려받습니다.

자산으로 남길 원가와 바로 털 원가를 가르는 규칙

판정은 두 갈래입니다. "이 원가가 자산으로 남을 수 있는 성격인가"와 "자산으로 남았다면 상각·손상이 제대로 반영됐는가" 입니다.

판정 조건결과 상태사용자 조치
계약이 없었다면 발생하지 않았을 증분원가이고 회수가 예상된다자산 인식상각기간에 걸쳐 상각합니다
계약 체결 여부와 무관하게 발생하는 원가다즉시 비용 — 증분원가 아님발생 시점에 비용으로 처리
자산으로 인식했다면 상각기간이 1년 이하다즉시 비용 — 실무적 간편법간편법을 회계정책으로 채택했는지 확인
회수가 예상되지 않는다자산 인식 불가즉시 비용으로 처리
기초 + 자산화 − 상각 − 손상 + 환입 ≠ 기말점검 필요증감 항목 누락 여부와 기말잔액 산정 기준 확인
기말 장부금액 > 잔여 대가 − 잔여 원가점검 필요손상 인식 여부와 금액 확인
자산으로 인식했으나 상각기간이 등록되지 않았다확인 필요재화·용역 이전 기간을 근거로 상각기간 지정
계약이 종료됐는데 잔액이 남아 있다확인 필요잔액 제거 또는 손상 처리 여부 확인

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

어떤 원가를 증분원가로 볼지, 회수 가능성을 어떻게 평가할지, 상각기간을 몇 개월로 정할지는 회사의 회계정책과 계약 사실관계로 정합니다. 이 화면은 그렇게 정해진 결과가 계약·원장 데이터와 정합적으로 대사되는지만 점검하며, 최종 판단은 기준서 원문에 따라 회사와 감사인이 내립니다.

유형 구분에서 상각 전개까지 5단계 산출

단계내용
1단계계약에 투입된 원가를 계약체결 증분원가와 계약이행원가로 가릅니다
2단계증분 여부·회수 예상·상각기간을 보고 자산 인식 여부를 판정합니다
3단계건별 증감을 계산합니다 — 기말 = 기초 + 자산화 − 상각 − 손상 + 환입
4단계유형별·전체로 집계해 대사합니다 — 건별 합계 = 유형별 증감표 = 대사 요약, 판정 구성비 합계 = 100%
5단계기말 장부금액을 잔여 상각기간에 전개합니다 — 예상 상각액 누계 = 기말잔액, 최종 잔여 장부금액 = 0

조회조건

필드필수설명
회사코드필수대상 회사코드 — 대사 요약 조회의 키로도 씁니다
회계연도필수조회 대상 회계연도
계약번호선택비우면 전체 — 빈 값은 조회 조건으로 보내지 않습니다
원가 유형선택전체 · 계약체결 증분원가 · 계약이행원가
판정 상태선택전체 · 정상 · 점검 필요 · 확인 필요

결과 컬럼

영역컬럼 · 표시
증감 대사 요약원가 건수 · 자산 인식 건수 · 기초잔액 · 당기 자산화 · 당기 상각 · 기말잔액 · 증감 차이 · 예외 건수
계약원가 명세원가번호 · 계약번호 · 고객 · 원가 유형 · 원가 내용 · 자산화 판정 · 기초잔액 · 당기 자산화 · 당기 상각 · 손상차손 · 기말잔액 · 상각기간 · 판정
유형별 증감표원가 유형 · 건수 · 기초잔액 · 당기 자산화 · 당기 상각 · 손상차손 · 손상환입 · 기말잔액
자산화 판정판정 구분 · 건수 · 금액 · 구성비
잔여 상각 스케줄기간 · 예상 상각액 · 누계 · 잔여 장부금액
점검 예외예외번호 · 계약번호 · 원가번호 · 예외 유형 · 내용 · 차이 · 중요도

SAP 표준 기능 매핑

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 자산화·상각 관점의 조회·검증을 더해 확장합니다.

표준 T-code표준 기능이 화면이 더한 것
VA03판매오더 조회원가를 계약 단위로 묶어 잔여 대가와 비교합니다
VA43판매계약 조회계약 종료 여부와 남은 잔액을 대조합니다
KO03내부오더 조회계약별 집계 투입원가를 자산 후보로 가져옵니다
KOB1내부오더 개별항목 조회투입원가 명세를 원가 유형으로 가릅니다
FBL5N고객 개별항목 조회고객 단위로 계약을 묶어 봅니다
FAGLL03G/L 개별항목 조회상각·손상 전표를 증감표와 대사합니다

IFRS 요구사항 매핑표

기준서요구사항이 화면의 대응 기능원천 데이터비고
IFRS 15
(K-IFRS 제1115호)
계약체결 증분원가의 자산 인식증분 여부·회수 예상에 따른 자산화 판정과 판정별 집계VBAK · COEP증분 여부 판단 근거는 화면에 담지 않습니다
IFRS 15
(K-IFRS 제1115호)
상각기간 1년 이하의 실무적 간편법상각기간 1년 이하 건을 별도 판정 코드와 예외로 표시COEP · 계약 기간간편법 적용 여부는 회사의 회계정책에 따릅니다
IFRS 15
(K-IFRS 제1115호)
계약이행원가의 자산 인식 요건계약 직접 관련·자원 창출·회수 예상 판정과 유형별 증감COEP · ACDOCA자원 창출·증대 여부 판단은 사용자 몫입니다
IFRS 15
(K-IFRS 제1115호)
자산화한 원가의 상각과 손상건별 상각·손상·환입 증감표와 잔여 상각 스케줄, 손상 징후 판정ACDOCA · VBAP회수예상액은 잔여 대가 − 잔여 원가로 산출합니다

참고 CDS 뷰

원천 테이블주요 필드쓰임
VBAKVBELN · KUNNR · NETWR · WAERK계약 헤더와 잔여 대가
VBAPVBELN · POSNR · NETWR계약 품목 금액
COEPOBJNR · KSTAR · WTGBTR · GJAHR계약별 투입원가 명세
ACDOCARBUKRS · GJAHR · RACCT · HSL상각·손상 전표
KNA1KUNNR · NAME1고객명 표기
define view entity ZC_ContCostItem
  as select from    I_SalesDocument      as hd
    inner join      ZI_ContractCostLine  as cl on cl.ContractNo = hd.SalesDocument
{
  key cl.CostId              as CostId,
      hd.SalesDocument       as ContractNo,
      hd.SoldToParty         as Kunnr,
      cl.CostType            as CostType,
      cl.CostText            as CostDesc,
      cl.BeginAmount         as BeginBalance,
      cl.AddAmount           as Addition,
      cl.AmortAmount         as Amortization,
      cl.AmortMonths         as AmortMonths,
      hd.TransactionCurrency 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(컬럼 13개·7개) — 행 클릭 시 상세 다이얼로그
집계 표sap.m.Tablesap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시
공통 처리CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결
Component.js화면 상태·조회조건 모델 초기화, 전역 오류 처리기 연결
manifest.json앱 디스크립터 — zui5.contcost · 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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.

검증 결과

화면 구성에 쓴 검증용 샘플 데이터는 계약 11건·원가 15건 기준으로 기초에서 기말까지의 증감이 원(KRW) 단위로 정확히 맞물리도록 구성했습니다.

검증 항목결과
건별 기초 + 자산화 − 상각 − 손상 + 환입 = 기말(11건)통과(의도적 예외 제외 차이 0)
유형별 증감표 = 명세 집계 · 증감표 자체 대사통과(차이 0)
자산화 판정 구성비 합계 100% · 건수 합계 = 전체통과(차이 0)
상각 스케줄 누계 = 기말잔액 · 최종 잔여 장부금액 = 0(12개 기간)통과(차이 0)
즉시 비용·인식 불가 건의 기말잔액 = 0(4건)통과
확인 대상 건 안내증감 불일치 1건 · 상각기간 미등록 1건 · 손상 징후 1건 · 종료 계약 잔액 1건 · 1년 이하 자산 인식 1건(의도적으로 구성한 케이스)
조회 조건 전달 — 15건 → 2건 필터, 정렬·건수 옵션 동작확인
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출0건
화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처6/6
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내확인

계약·고객·원가·금액은 모두 검증용으로 구성한 가상 데이터입니다.

자주 묻는 질문

IFRS 15 는 이미 시행 중인데, 왜 지금 이 점검이 필요한가요?

IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 이미 시행 중인 기준서입니다. 다만 계약원가는 계약이 새로 체결될 때마다 자산 인식 여부를 판정해야 하고, 자산으로 남은 뒤에는 매 보고기간 상각과 손상을 다시 봐야 하므로 시행 여부와 무관하게 상시 점검 대상입니다. 이 화면은 새 기준서를 도입하기 위한 것이 아니라, 시행 중인 요구사항을 기존 계약·원장 데이터로 다시 맞춰 보는 용도입니다.

화면의 "점검 필요" 표시는 회계처리 오류를 뜻하나요?

아닙니다. 이 화면은 자산 인식 결과와 증감을 집계·대사해 확인이 필요한 건을 가려내는 점검 도구이며, 최종 자산 인식·상각기간·손상 판단은 기준서 원문에 따라 회사와 감사인이 내립니다.

상각기간이 1년 이하면 무조건 즉시 비용인가요?

아닙니다. 상각기간이 1년 이하일 때 즉시 비용으로 처리할 수 있는 실무적 간편법이 있을 뿐 강제는 아닙니다. 화면은 해당 건을 별도 판정 코드와 점검 예외로 표시하므로, 회사가 그 간편법을 회계정책으로 채택했는지 확인한 뒤 판단하면 됩니다.

손상 징후는 어떤 기준으로 표시되나요?

기말 장부금액이 잔여 대가에서 잔여 원가를 뺀 금액을 넘으면 회수예상액을 초과한 것으로 보고 점검 대상으로 표시합니다. 실제 손상 인식 여부와 금액은 계약 조건과 향후 원가 추정을 다시 확인한 뒤 결정합니다.

계약원가, 결산 전에 자산과 비용을 먼저 갈라보세요

수주 수수료와 계약 투입원가를 계약마다 손으로 다시 모으는 대신, 화면에서 자산화 판정과 증감·상각 스케줄을 미리 확인해 두면 결산과 공시 준비가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

IFRS 15K-IFRS 1115계약원가증분원가계약이행원가상각OpenUI5