솔루션 홈
IFRS 15

SAP 수행의무 진행률 측정 점검 — IFRS 15, 진행률에 넣지 말아야 할 원가부터 걸러낸다

원가 기준 투입법 진행률에 설치 전 자재나 낭비 원가가 섞이면 수익이 앞당겨집니다. 결산 전에 수행의무별로 걸러 두는 방법을 정리했습니다

IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 기간에 걸쳐 이행하는 수행의무에 대해 완료까지의 진행률을 측정해 수익을 인식하도록 합니다. 원가 기준 투입법(input method)을 쓴다면, 고객에게 통제를 이전하는 정도를 나타내지 못하는 원가 — 아직 설치하지 않은 자재, 계약 가격에 반영되지 않은 비정상적인 낭비 원가 — 는 진행률 계산에서 빼야 합니다.

이런 원가가 진행률에 그대로 섞이면 수익이 이행 정도보다 앞서 인식됩니다. 수행의무별로 측정 누적원가 · 진행률 · 누적수익을 다시 산출하고, 그 결과를 원장에 기표된 누적수익과 대사하는 과정을 OpenUI5 화면으로 확장했습니다. 표준 결과분석이 진행률·수익 산출을 실행하고, 이 화면은 산출 근거와 원장 반영을 한 번에 보는 점검 관점을 더합니다. 실제 구동 화면 6종을 함께 공개합니다.

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

  • 계약 조회 — 판매 계약 조회(VA03)의 계약번호·거래가격을 그대로 이어받습니다
  • 프로젝트 구조 — 프로젝트 빌더(CJ20N)의 WBS 요소로 수행의무를 연결합니다
  • 원가 집계 — 프로젝트 실제원가 개별항목(CJI3)으로 누적발생원가와 제외 원가를 확인합니다
  • 진행률·수익 산출 — 결과분석(KKA2 · KKAJ)이 표준 실행을 담당하고, 이 화면은 그 결과를 다시 산출해 대사합니다
  • 원장 대사 — G/L 계정 개별항목(FAGLL03)으로 원장 누적수익을 확인합니다
항목내용
업무 영역재무회계(FI) · 수익 결산
관련 기준서IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 기간에 걸쳐 이행하는 수행의무의 진행률 측정(투입법)
Namespacezui5.progrev
셸 구조조회조건 영역(우측 조회) + 진행률·누적수익 대사 요약 KPI 12종 + 탭 5개, 행 클릭 상세 Dialog
화면 수조회 화면 1개(탭 5개) + 상세 다이얼로그
SAP 표준 T-codeVA03 · CJ20N · CJI3 · KKA2 · KKAJ · FAGLL03
데이터 연동 방식OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩
성격조회·대사·점검형 — 실제 회계처리와 최종 판단은 회사가 수행
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

기본 조건으로 조회하면 대사 요약과 수행의무별 명세가 뜹니다 → 사업 유형별·진행률 제외 원가·판정별 탭으로 합계를 확인하고 → 예외 목록에서 점검 대상을 추린 뒤 → 행을 클릭해 진행률 산출 단계를 봅니다.

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

Main.view.xml
수행의무 진행률 측정 점검 메인 화면 — 조회조건과 진행률·누적수익 대사 요약
메인화면 — 조회조건 · 진행률·누적수익 대사 요약 · 수행의무별 명세가 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
사업 유형별
사업 유형별 집계 화면
사업 유형별 — 건설공사·시스템 구축·설비 제작 유형별 거래가격·측정 누적원가·산출 누적수익·원장 누적수익·차이를 나란히 봅니다. 합계는 명세 합계와 같습니다.
진행률 제외 원가
진행률 제외 원가 유형별 집계 화면
진행률 제외 원가 — 미설치 자재와 비정상 원가로 나눠 제외 금액과 원가 상당액으로 반영한 수익을 봅니다.
판정별
판정별 집계 화면
판정별 — 정상 · 점검 필요 · 확인 필요 판정별 건수와 금액 합계입니다.
예외 목록
예외 목록 화면
예외 목록 — 원장 누적수익 차이 · 제외 원가 · 추정 변경 · 손실 예상 항목을 한 건씩 나열합니다.
진행률 산출 단계
수행의무 상세 다이얼로그 — 진행률 산출 단계
진행률 산출 단계 — 행을 클릭하면 누적발생원가부터 원장 차이까지 7단계 산출 값이 다이얼로그로 펼쳐집니다.

사용 방법

  1. 회사코드·회계연도(필수)와 사업 유형·계약번호·판정(선택)을 입력합니다. 선택 조건을 비워 두면 전체가 조회 대상입니다.
  2. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건으로 한 번 자동 조회됩니다.
  3. 진행률·누적수익 대사 요약에서 산출 누적수익 · 원장 누적수익 · 차이 · 차이 발생 건수 · 확인 필요 건수를 먼저 확인합니다.
  4. 탭을 옮겨 수행의무별 명세 → 사업 유형별 → 진행률 제외 원가 → 판정별 → 예외 목록 순으로 봅니다.
  5. 명세에서 행을 클릭하면 진행률 산출 단계 7단계가 다이얼로그로 열립니다.
  6. 명세·예외 탭의 CSV 내려받기(UTF-8 BOM)로 현재 조회 결과를 저장합니다.

진행률 제외 원가·원장 차이 판정 기준

판정 조건결과 상태사용자 조치
원장 누적수익 − 산출 누적수익 ≠ 0점검 필요결과분석 기준(진행률, 총예정원가 버전)을 원장과 대조
미설치 자재 원가 > 0확인 필요진행률 분자·분모 제외와 원가 상당액 수익 반영 근거 확인
비정상 원가 > 0확인 필요계약 가격에 반영되지 않은 낭비 원가인지, 진행률 분자에서 뺐는지 확인
|총예정원가 변경률| > 10%확인 필요추정 변경 근거와 누적효과(당기 반영) 처리 확인
총예정원가 > 거래가격확인 필요손실부담계약 검토(IAS 37 충당부채, 우발부채와 우발자산 — K-IFRS 제1037호) 여부 확인
위 조건 없음정상조치 없음

한 수행의무에 여러 조건이 겹치면 판정은 점검 필요 > 확인 필요 > 정상 순으로 하나만 표시하고, 조건마다 예외 목록에 한 건씩 남깁니다. 10% 기준은 예시 기준이며 회사 정책에 맞게 바꿔 씁니다.

진행률에서 누적수익·원장 대사까지 산출 절차

단계내용
1단계측정 누적원가 = 누적발생원가 − 미설치 자재 − 비정상 원가
2단계진행률 = 측정 누적원가 ÷ (총예정원가 − 미설치 자재) — 100% 한도
3단계산출 누적수익 = 진행률 × (거래가격 − 미설치 자재) + 미설치 자재(원가 상당액)
4단계당기 수익 = 산출 누적수익 − 전기말 누적수익
5단계원장 차이 = 원장 누적수익 − 산출 누적수익
6단계명세 합계 = 사업 유형별 합계 = 판정별 합계 = 대사 요약을 전수 대사

조회조건

필드필수설명
회사코드필수단일 값
회계연도필수단일 값
사업 유형선택건설공사 · 시스템 구축 · 설비 제작 — 전체면 조건 제외
계약번호선택정확히 일치
판정선택정상 · 점검 필요 · 확인 필요 — 전체면 조건 제외

결과 컬럼

컬럼설명
수행의무 · 수행의무명 · 사업 유형기간에 걸쳐 이행하는 수행의무 식별
거래가격수행의무에 배분된 거래가격
총예정원가당기말 추정 총원가(비정상 원가 제외)
누적발생원가당기말까지 집계된 원가
제외 원가진행률에서 뺀 미설치 자재 + 비정상 원가
진행률측정 누적원가 ÷ (총예정원가 − 미설치 자재)
산출 누적수익 · 당기 수익진행률 기준 누적수익과 당기분
원장 누적수익 · 차이원장에 기표된 누적수익과 산출값의 차이
판정정상 · 점검 필요 · 확인 필요

SAP 표준 기능 매핑

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

표준 T-code표준 기능이 화면이 더한 것
VA03판매 계약 조회계약번호·거래가격을 수행의무 단위로 가져옵니다
CJ20N프로젝트 빌더WBS 요소로 수행의무와 원가 집계 단위를 연결합니다
CJI3프로젝트 실제원가 개별항목누적발생원가를 미설치 자재·비정상 원가와 나눠 봅니다
KKA2 · KKAJ결과분석(개별·일괄)산출된 진행률·수익을 다시 계산해 대사합니다
FAGLL03G/L 계정 개별항목원장 누적수익을 산출 누적수익과 대사합니다

IFRS 요구사항 매핑표

기준서요구사항이 화면의 대응 기능원천 데이터비고
IFRS 15
(K-IFRS 제1115호)
기간에 걸쳐 이행하는 수행의무의 진행률 측정진행률 · 산출 누적수익 · 당기 수익ACDOCA · VBAP · PRPS수행의무별 단일 측정 방법 전제
IFRS 15
(K-IFRS 제1115호)
투입법 — 통제 이전을 나타내지 못하는 투입물의 영향 제외미설치 자재·비정상 원가 제외, 진행률 제외 원가 탭ACDOCA제외 대상 분류 기준은 회사가 정의
IFRS 15
(K-IFRS 제1115호)
미설치 자재 — 원가 상당액만 수익 인식산출 누적수익의 원가 상당액 가산ACDOCA적용 조건 충족 여부는 회사 판단
IFRS 15
(K-IFRS 제1115호)
진행률 재측정 — 회계추정의 변경총예정원가 변경률 · 추정 변경 예외계획 원가누적효과는 당기 수익에 포함
IAS 37
(K-IFRS 제1037호)
손실부담계약손실 예상 계약 표시(확인 필요)VBAP · 계획 원가충당부채 측정은 화면 범위 밖

참고 CDS 뷰

원천 테이블주요 필드쓰임
VBAK / VBAPVBELN · NETWR계약 헤더·품목 — 계약번호, 거래가격
PROJ / PRPSPSPID · POSID프로젝트·WBS 요소 — 수행의무 연결
ACDOCARBUKRS · GJAHR · RACCT · PS_POSID · HSL누적발생원가 · 제외 원가 · 원장 누적수익
ACDOCPRBUKRS · RACCT · HSL계획 원가 — 총예정원가
define view entity ZI_ProgRevPob
  as select from acdoca as a
    inner join prps as w on w.posid = a.ps_posid
{
  key a.rbukrs                                    as Bukrs,
  key a.gjahr                                     as Gjahr,
  key w.posid                                     as WbsElement,
      sum( case when a.racct between '0050000000' and '0059999999'
                then a.hsl else 0 end )           as CumCostIncurred,
      sum( case when a.racct between '0040000000' and '0049999999'
                then -a.hsl else 0 end )          as PostedCumRevenue
}
group by a.rbukrs, a.gjahr, w.posid

계정 범위는 가상 계정체계 예시입니다. 미설치 자재·비정상 원가는 원가요소 그룹으로 구분한다고 가정했으며, 실제 구분 기준은 회사마다 확인이 필요합니다.

OpenUI5 구성

기능사용 컨트롤 · 구성
화면 골격sap.m.Page + 조회조건 패널 · 대사 요약 KPI · IconTabBar 5개 탭
데이터 연동manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩하고, 대사 요약은 회사코드·회계연도 키로 단건 조회합니다
조회조건sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 정렬은 Sorter, 총건수는 인라인 카운트로 받습니다
명세·예외 표sap.ui.table.Table — 컬럼이 많은 명세, 행 클릭(cellClick)으로 상세 다이얼로그
집계 표sap.m.Table — 사업 유형별·제외 원가·판정별 소량 집계
예외 메시지메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결
Component.js모델 초기화, 예외 메시지 처리기 연결
manifest.json앱 디스크립터 — zui5.progrev · ko 로케일, OData 서비스와 모델 선언
view/Main.view.xml조회조건 · 대사 요약 · 5개 탭
view/DetailDialog.fragment.xml진행률 산출 단계 상세 다이얼로그
controller/Main.controller.js조회조건 조립 · 바인딩 · 다이얼로그 · CSV
controller/BaseController.jsCSV 다운로드 공통 처리
model/formatter.js · model/ErrorHandler.js표시 서식 · 예외 메시지 처리
i18n/i18n_ko.properties화면 문구

검증 결과

검증용 샘플 데이터(수행의무 26건, 회사코드 2개)를 기준으로 대사식을 전수 검증했습니다. 점검 화면이라 원장 누적수익 차이 4건과 확인 필요 8건을 의도적으로 넣었고, 대사식 차이와 분리해 기록했습니다.

검증 항목결과
측정 누적원가 = 누적발생원가 − 미설치 자재 − 비정상 원가 (26건)통과(차이 0)
진행률 = 측정 누적원가 ÷ (총예정원가 − 미설치 자재), ≤100% (26건)통과(차이 0)
산출 누적수익 = 진행률 × (거래가격 − 미설치 자재) + 미설치 자재 (26건)통과(차이 0)
당기 수익 = 산출 누적수익 − 전기말 누적수익 (26건)통과(차이 0)
원장 차이 = 원장 누적수익 − 산출 누적수익 (26건)통과(차이 0)
집계 대사 (명세 합계 = 사업유형별 합계 = 판정별 합계 = 대사 요약, 누적발생원가 − 제외 원가 = 측정 누적원가) (58건)통과(차이 0)
판정 규칙 재현 (26건)통과(차이 0)
조회 조건 전달 — 판정 필터 · 금액 내림차순 정렬 · 상위 건수 · 총건수 표시확인
화면 요약 합계 = 검증 스크립트 합계(산출 누적수익 42,800,020,000)일치
표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현0건
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지확인

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

자주 묻는 질문

어떤 수행의무에 적용하나요?

IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)을 적용하는 회사가 기간에 걸쳐 이행하는 수행의무에 원가 기준 투입법으로 진행률을 측정할 때 씁니다. 특정 시점에 이행하는 수행의무나 산출법을 쓰는 수행의무는 대상이 아닙니다.

화면의 판정이 곧 회계처리 결론인가요?

아닙니다. 이 화면은 진행률 산출과 원장 반영을 대사하는 점검 도구입니다. 제외 원가 분류, 추정 변경, 손실부담계약 해당 여부의 최종 판단은 회사와 감사인이 합니다.

미설치 자재는 왜 진행률 분자와 분모에서 모두 빼나요?

설치 전 자재 원가를 진행률에 넣으면 진행률이 실제 이행 정도보다 높게 계산될 수 있습니다. 그래서 진행률에서는 빼고, 조건을 충족하는 경우 그 원가 상당액만 수익으로 더합니다. 조건 충족 여부는 확인 필요로 표시합니다.

원장 차이가 나면 무엇부터 보나요?

결과분석에 쓴 총예정원가 버전, 진행률 제외 원가 반영 여부, 수익 기표 시점을 먼저 대조합니다. 화면은 차이를 점검 필요로만 표시하며 원인을 단정하지 않습니다.

결산 전에 진행률 산출 근거부터 맞춰 두세요

수행의무마다 원가 명세를 다시 뽑아 진행률을 손으로 맞추는 대신, 제외 원가 판정부터 원장 누적수익 대사까지 한 화면에서 조회해 두면 결산 준비가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

IFRS 15K-IFRS 1115진행률 측정투입법미설치 자재기간에 걸쳐 이행OpenUI5