솔루션 홈
IFRS 15

SAP 계약 결합 판정 점검 — IFRS 15, 같은 고객과 거의 동시에 맺은 계약을 하나로 묶을지 가려 상대 개별판매가격으로 다시 배분한 수익을 장부와 대조한다

결합 지표 판정 · 상대 개별판매가격 배분 · 재배분 효과 · 장부 수익 대조를 계약 묶음 단위로 다시 계산해 비교합니다

같은 고객과 며칠 간격으로 장비 판매 계약과 설치·유지보수 계약을 따로 맺었다면 수익은 어떻게 나눠 잡을까요? IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)의 계약의 결합은 같은 고객(또는 고객의 특수관계자)과 동시 또는 거의 동시에 체결한 둘 이상의 계약이 단일 상업적 목적의 패키지로 협상되었거나, 한 계약의 대가가 다른 계약의 가격이나 이행에 따라 달라지거나, 약속한 재화·용역이 단일 수행의무이면 하나의 계약으로 회계처리하도록 합니다. 묶으면 총 거래가격을 상대 개별판매가격으로 수행의무에 다시 배분하므로 계약별 수익이 달라집니다.

실무에서는 영업 계약과 서비스 계약이 서로 다른 문서와 다른 담당자에게 있어서 묶어야 하는 계약이 따로 인식되거나, 묶지 않아도 되는 계약이 배분 대상으로 섞이거나, 묶기는 했지만 배분 비율이 개별판매가격과 달라지는 일이 한 줄씩 숨어 있기 쉽습니다. 이 화면은 계약 두 건씩 한 묶음으로 보고 결합 후보를 가린 뒤 재배분 수익과 장부 수익을 한 줄에서 비교하도록 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분 — 판매 계약 조회는 VA43·VA03 이, 청구문서 조회는 VF03 이, 고객 개별항목과 계정별 개별항목은 FBL5N·FAGLL03 이 담당합니다. 이 화면은 그 표준 데이터 구조를 이어받아 계약 결합 판정과 재배분 수익의 재산정, 장부 대조를 조회·검증 관점에서 확장합니다.
항목내용
업무 영역재무회계(FI) — 수익 인식
관련 기준서IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 계약의 결합, 상대 개별판매가격 배분
Namespacezui5.ctrcomb
셸 구조단일 페이지 + 5개 탭
화면 수메인 1 · 상세 팝업 1
SAP 표준 T-codeVA43 · VA03 · VF03 · FBL5N · FAGLL03
데이터 연동 방식OData V2 (조회조건 전부 $filter)
성격조회·산출·대사·점검형
테마sap_horizon · 한국어
요약내용
점검 대상계약 두 건 묶음별 체결일 간격, 세 가지 결합 지표, 결합 판정과 회사 처리, 결합 시 배분액, 장부 수익과 기대 수익
핵심 산식결합 시 계약 A 배분액 = 총 거래가격 × 계약 A 개별판매가격 ÷ 개별판매가격 합계 · 재배분 효과 = 배분액 − 거래가격 · 차이 = 장부 수익 − 기대 수익
결과 표시정상 / 점검 필요

실제 화면 6종 둘러보기

조회조건 · 요약 지표 · 결합 검토 명세
조회조건 · 요약 지표 · 결합 검토 명세 — 조회조건과 요약 지표 8개, 계약 두 건 묶음별 체결일 간격·세 가지 지표·결합 판정·회사 처리가 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
기준별 점검 현황
기준별 점검 현황 — K00~K04 다섯 기준마다 검사 건수, 점검 필요 건수, 대상 금액 합계와 최대 금액을 보여줍니다.
고객별 집계
고객별 집계 — 고객마다 결합 후보·별도 유지·확인 필요 건수와 계약금액, 재배분 규모, 차이 절대값 합계를 나란히 놓고 전체 합계 행을 개별 행 합계로 맞춥니다.
결합 지표별 집계
결합 지표별 집계 — 시기·상대방 요건과 세 가지 지표, 하나 이상 충족 건마다 충족 건수와 그중 결합 처리·별도 처리된 건수를 보여줍니다.
대사 결과
대사 결과 — 정합성 대사 7식의 좌변·우변·검사 건수·차이 건수·최대 차이를 보여줍니다.
계약 결합 검토 상세 팝업
계약 결합 검토 상세 팝업 — 행을 누르면 체결일, 지표, 결합 시 배분액과 재배분 효과, 장부·기대 수익과 차이, 기준별 점검 현황이 열립니다.

사용 방법

  1. 회계연도를 넣고, 법인 번호·고객·결합 판정·회사 처리·계약 A 체결일 범위·점검 코드·점검 결과는 필요할 때만 고릅니다. "전체"를 고르면 해당 조건 없이 조회됩니다.
  2. 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건(회계연도 2026)으로 자동 조회됩니다.
  3. 요약 지표에서 고객 수, 결합 검토 건수, 결합 후보 건수, 점검 필요 건수, 계약금액 합계, 결합 후보 재배분 규모, 장부−기대 차이 절대값 합계, 정합성 대사 차이 건수를 확인합니다.
  4. 결합 검토 명세 → 기준별 점검 → 고객별 집계 → 결합 지표별 집계 → 대사 결과 탭 순서로 이동합니다.
  5. 결합 검토 명세에서 행을 누르면 재계산 결과와 장부 비교 팝업이 열립니다.
  6. CSV 내려받기로 현재 탭의 결과를 UTF-8(BOM) 파일로 받습니다.

계약 결합 판정과 점검 코드 규칙

먼저 계약 묶음을 결합 후보·별도 유지·확인 필요로 가르고, 그 판정을 회사 처리와 비교해 점검 코드를 붙입니다.

판정조건
결합 후보체결일 간격이 회사 기준(샘플 가정값 30일) 이내이고, 패키지 협상·대가 상호 의존·단일 수행의무 중 하나 이상 충족
별도 유지세 가지 지표가 모두 충족되지 않음
확인 필요체결일 간격이 회사 기준을 넘는데 지표는 하나 이상 충족 — 판단 근거 확인
점검 코드판정 조건결과사용자 조치
K01결합 후보인데 계약별로 따로 수익을 인식점검 필요계약 결합 검토 자료와 배분 결과 확인
K02별도 유지인데 하나의 계약처럼 묶어 배분점검 필요결합 근거(지표) 기록 확인
K03결합 처리했으나 계약별 수익이 상대 개별판매가격 배분액과 다름점검 필요배분 비율과 개별판매가격 자료 확인
K04확인 필요(시기 요건 밖에서 지표 충족)점검 필요지표 충족 근거와 체결 경위 확인
K00판정과 회사 처리가 같고 장부 수익 = 기대 수익정상조치 없음

"거의 동시"의 기간은 기준서가 일수로 정하지 않았으므로 화면의 30일은 가정값이며, 한 건이 여러 기준에 걸리면 앞선 코드를 점검 코드로 표시합니다.

결합 배분에서 수익 차이까지의 산출 순서

  1. 총 거래가격 = 계약 A 거래가격 + 계약 B 거래가격
  2. 결합 시 배분액 — 계약 A = 총 거래가격 × 계약 A 개별판매가격 ÷ (계약 A + 계약 B 개별판매가격), 계약 B = 총 거래가격 − 계약 A 배분액
  3. 재배분 효과 = 결합 시 배분액 − 거래가격 (계약 A 효과 + 계약 B 효과 = 0)
  4. 기대 수익 — 결합 후보는 결합 시 배분액, 별도 유지는 거래가격, 확인 필요는 판단 보류로 장부와 같게 둠
  5. 차이 = 장부 수익 − 기대 수익 (계약 A 차이 + 계약 B 차이 = 0), 차이 절대값 합계 = |계약 A 차이| + |계약 B 차이|

예를 들어 계약 A 150,000천원·계약 B 60,000천원, 개별판매가격 160,000천원·70,000천원이면 결합 시 계약 A 배분액은 약 146,087천원, 계약 B 배분액은 약 63,913천원입니다. 장부가 계약 A 130,200천원, 계약 B 79,800천원으로 나눠 잡았다면 계약 A 차이 약 −15,887천원, 계약 B 차이 약 +15,887천원이 점검 후보로 올라옵니다.

조회조건

조건필수설명
회계연도필수4자리 숫자
법인 번호선택예: E01
고객선택고객 번호 선택
결합 판정선택결합 후보 · 별도 유지 · 확인 필요
회사 처리선택결합 처리 · 별도 처리
계약 A 체결일 시작/종료선택범위 조건
점검 코드선택K00~K04
점검 결과선택정상 · 점검 필요

결과 컬럼

탭주요 컬럼
결합 검토 명세결합 검토 번호 · 법인 · 고객 · 상대방 구분 · 계약 A/B 번호와 체결일 · 체결일 간격 · 시기 요건 · 세 가지 지표 · 결합 판정 · 회사 처리 · 점검 결과와 코드 · 계약 A/B 거래가격 · 개별판매가격 · 결합 시 배분액 · 재배분 효과 · 장부 수익 · 기대 수익 · 차이 · 차이 절대값 합계 · 점검 내용
기준별 점검점검 코드 · 점검 기준 · 판정 방법 · 검사 건수 · 점검 필요 건수 · 대상 금액 합계 · 최대 금액 · 점검 결과
고객별 집계고객 · 검토 건수 · 결합 후보·별도 유지·확인 필요 건수 · 점검 필요 건수 · 계약금액 합계 · 결합 후보 계약금액 · 재배분 규모 · 차이 절대값 합계
결합 지표별 집계결합 요건·지표 · 충족 건수 · 결합 처리 건수 · 별도 처리 건수 · 충족 건 계약금액 · 점검 결과
대사 결과대사 번호 · 대사 항목 · 대사식 · 좌변 · 우변 · 검사 건수 · 차이 건수 · 최대 차이

SAP 표준 기능 매핑

SAP 표준 T-code

T-code표준 기능이 화면과의 관계
VA43판매 계약 조회결합 검토 대상 계약의 체결일·금액 확인
VA03판매오더 조회계약에 딸린 오더·품목 확인
VF03청구문서 조회청구 금액과 장부 수익 대조
FBL5N고객 개별항목 조회고객별 매출 전표 확인
FAGLL03G/L 계정 개별항목 조회수익 계정 전표 확인

요구사항 매핑표

기준서요구사항대응 기능원천 데이터비고
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)같은 고객(또는 특수관계자)과 동시 또는 거의 동시에 체결한 둘 이상의 계약시기·상대방 요건 판정판매문서 헤더(문서일·고객)일수 기준은 회사 정책 — 확인 필요
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)패키지 협상 / 대가 상호 의존 / 단일 수행의무 중 하나 이상세 지표 충족 여부와 결합 판정계약 검토 기록표준 필드 없음 — 확인 필요
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)결합하면 단일 계약으로 보고 상대 개별판매가격으로 배분결합 시 배분액·재배분 효과·기대 수익판매문서 품목, 개별판매가격 자료개별판매가격은 회사 관리 — 확인 필요
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)장부 수익과 기준 수익의 비교장부 수익 − 기대 수익유니버설 저널(수익 계정)차이는 후보이며 원인 단정 안 함

참고 CDS 뷰

원천테이블

테이블내용사용 필드
VBAK판매문서 헤더VBELN, KUNNR, AUDAT, NETWR
VBAP판매문서 품목VBELN, POSNR, NETWR
KNA1고객 마스터KUNNR, NAME1
ACDOCA유니버설 저널RBUKRS, GJAHR, BELNR, RACCT, HSL
개별판매가격 관리 자료·결합 지표 검토 기록계약별 개별판매가격과 지표 판단확인 필요

CDS 뷰 스케치

@EndUserText.label: 'Contract combination candidate'
define view entity ContractCombineCandidate
  as select from vbak as a
  inner join vbak as b on b.kunnr = a.kunnr and b.vbeln > a.vbeln
{
  key a.vbeln as ContractNoA,
  key b.vbeln as ContractNoB,
      a.kunnr as CustomerNo,
      dats_days_between( a.audat, b.audat ) as DayGap,
      a.netwr as PriceA,
      b.netwr as PriceB
}

OpenUI5 구성

  1. 데이터는 OData V2 모델 하나로 받으며, 서비스 선언은 앱 설정 파일의 데이터 소스에만 둡니다.
  2. 탭마다 별도의 데이터 집합에 바인딩해 화면 블록이 각자 필요한 행만 받고, 한 번에 받아 컨트롤러에서 쪼개지 않습니다.
  3. 조회조건은 필터 객체로 만들어 $filter 로만 전달하고, "전체"는 필터를 만들지 않습니다. 계약 A 체결일 범위는 날짜 필터 하나로 묶어 전달합니다.
  4. 정렬·페이징은 테이블의 sorter 와 threshold 로 $orderby · $top · $skip 을 호출하고, 총건수는 $inlinecount 로 받습니다.
  5. 요약 지표의 합산식은 컨트롤러 한 곳에 모았고, 차이 절대값 합계는 서비스 함수로 받습니다. 소계 행은 이중 집계하지 않습니다.
  6. 서비스에 연결되지 않으면 ErrorHandler 가 메타데이터 실패와 요청 실패를 구분해 안내 창을 띄웁니다.
  7. 테이블은 sap.ui.table, 상세는 sap.m Dialog 로 구성했습니다.

파일 구성

index.html          앱 진입점
Component.js · manifest.json
controller/         BaseController.js · Main.controller.js
view/               Main.view.xml · DetailDialog.fragment.xml
model/              formatter.js · ErrorHandler.js
css/style.css · i18n/i18n_ko.properties
서비스 정의 폴더     메타데이터 · 서비스 로직 · 데이터 파일

검증 결과

검증용 샘플 데이터(회계연도 1개, 가상 법인 2곳, 가상 고객 7곳, 가상 계약 묶음 26건, 점검 기준 5개, 지표 5종과 합계 1행)로 실제 브라우저에서 렌더링하고, 원천 행에서 독립 재계산한 값과 화면 요약 지표를 대조했습니다.

요약 지표값
고객 수7곳
결합 검토 건수26건
결합 후보 건수15건
점검 필요 건수11건
계약금액 합계3,394,000천원
결합 후보 재배분 규모46,973천원
장부−기대 차이 절대값 합계105,550천원
정합성 대사 차이 건수0건
대사(회계연도 2026)검사 건수차이 건수최대 차이
결합 배분 합계2600
재배분 효과 합계2600
기대 수익 합계2600
장부 수익 합계2600
차이 상계2600
판정 건수100
고객별 집계 합계700

정합성 대사 7식은 검사 138건 모두 차이 0건이며, 별도의 독립 재계산 스크립트가 샘플 26건의 결합 판정·배분액·재배분 효과·기대 수익·차이·점검 코드를 모두 같게 다시 구했습니다(총 438개 검사, 차이 0건). 점검 화면이라 의도적으로 넣은 예외 11건(K01 3건 · K02 2건 · K03 3건 · K04 3건)은 판정과 회사 처리 또는 장부 값과 재계산 값이 달라 점검 필요로 표시되며, 이 건수는 대사 차이 건수와 분리해 기록했습니다.

조회 버튼 위치, Enter 조회, 테마 sap_horizon, 행 클릭 상세 팝업, 연결 실패 안내까지 실제 브라우저에서 확인했습니다.

자주 묻는 질문

이 점검은 어떤 기준서의 어떤 요구사항에 근거하며 적용 시기는 어떻게 되나요?

같은 고객(또는 고객의 특수관계자)과 동시 또는 거의 동시에 체결한 둘 이상의 계약을 하나의 계약으로 회계처리하는 요건과, 결합 시 거래가격을 상대 개별판매가격으로 배분한다는 처리(IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)의 계약의 결합)를 다룹니다. 이 화면은 그 처리를 계약 묶음 단위로 다시 계산해 장부와 맞춰 보는 도구입니다. 이미 시행 중인 기준서이며, 개별 문단의 적용 범위와 경과 규정은 기준서 원문에서 확인 필요합니다.

체결일 간격 30일은 기준서가 정한 값인가요?

아닙니다. 기준서는 "동시 또는 거의 동시"라고만 쓰고 일수를 정하지 않습니다. 30일은 샘플 화면의 가정값이며 회사 정책에 맞게 정해야 합니다. 패키지 협상·대가 의존·단일 수행의무 지표의 충족 여부도 계약 검토 기록으로 판단하는 사항이라 확인 필요입니다.

개별판매가격은 어디서 가져오나요?

가격조건이나 평가 자료처럼 표준 원천 필드로 바로 읽히지 않는 회사 관리 정보입니다. 샘플은 가상 법인 2곳과 가상 고객 7곳, 가상 계약 26건과 가상 개별판매가격을 두고 만들었으며, 실제 적용에서는 회사의 자료를 연결해야 하므로 확인 필요입니다.

"점검 필요"는 회계처리를 잘못했다는 뜻인가요?

그렇게 단정하지 않습니다. 판정과 회사 처리가 다르거나 장부 수익과 다시 계산한 수익이 다른 건을 골라 보여주는 표시입니다. 계약을 묶을지, 어떤 개별판매가격을 쓸지는 계약 내용과 검토 자료를 함께 보아야 알 수 있고, 최종 판단은 회사와 감사인이 합니다.

#IFRS 15 #K-IFRS 1115 #계약 결합 #상대 개별판매가격 #수익 배분 #결합 지표 #OpenUI5

계약 결합 판단을 계약 묶음 단위로 미리 걸러내세요

영업 계약과 서비스 계약이 흩어져 있어 결합 여부와 배분 근거를 결산 때마다 다시 확인하느라 시간이 든다면, 우리 회사 계정 체계에 맞춘 점검 화면이 필요하다면 문의해 주세요.

도입 문의

PGB&Company(피지비앤컴퍼니)  │  02129 서울특별시 중랑구 봉우재로 45, 501호  │  사업자등록번호 211-26-66790  │  대표 임민택  │  lmt@pgbe.co.kr

© 2026 PGB&Company. All Rights Reserved.