SAP 고객 인수조건 수익 인식 시점 점검 — IFRS 15, 인수가 형식적 절차인지 가려 인수 인정일을 다시 구하고 장부 수익 인식 월과 맞춰본다
인수 조건 · 인수 인정일 · 기간귀속 · 거절·반품 잔존을 납품 건 단위로 다시 계산해 장부 수익과 비교합니다
고객이 제품을 인수해야 대금을 줄 수 있다는 조건이 계약에 있으면, IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)에서는 그 인수가 통제 이전을 알리는 지표 중 하나로 쓰입니다. 합의된 사양과 비교해 통제 이전을 객관적으로 확인할 수 있으면 고객 인수는 형식적 절차로 볼 수 있어 인도 시점에 수익을 인식할 수 있지만, 그렇지 않거나 시험기간 동안 고객이 거절할 수 있다면 실제 인수나 시험기간 종료를 기다리는지 살펴야 합니다. 인수를 거절하거나 반품한 건에는 수익이 남아 있으면 안 됩니다.
실무에서는 인수 조건이 계약서에, 인수일이 현장 확인서에, 수익 인식일이 원장에 흩어져 있어 인도일에 서둘러 매출을 잡거나 거절 건이 그대로 남는 일이 한 줄씩 숨어 있기 쉽습니다. 이 화면은 납품 건마다 인수 조건에 따른 인수 인정일과 인정 금액을 다시 구해 장부 값과 한 줄에서 비교하도록 OpenUI5 화면으로 확장했습니다. 같은 기준서의 통제 이전 시점 전반과 기간귀속을 다룬 매출 인식시점 기간귀속 점검이 인도 유형별 기준일과 인식일의 선후를 본다면, 이 글은 고객 인수 조건 자체 — 인수가 형식적인지, 시험기간이 끝났는지, 거절·반품 건이 남았는지 — 를 판정 축으로 삼습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) — 수익 인식 시점 |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 고객의 인수(customer acceptance) 조건과 수익 인식 시점 |
| Namespace | zui5.custaccept |
| 셸 구조 | 단일 페이지 + 5개 탭 |
| 화면 수 | 메인 1 · 상세 팝업 1 |
| SAP 표준 T-code | VA03 · VL03N · VF03 · FBL5N · FAGLL03 |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·산출·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 납품 건별 인수 조건, 시험기간, 고객 인수일, 거절·반품 여부, 장부 수익 인식일·금액, 재계산한 인수 인정일·금액, 차이 |
| 핵심 산식 | 인수 인정 금액 = 인정일이 있으면 계약금액, 없으면 0 · 차이 = 장부 인식 금액 − 인수 인정 금액 · 월 차이 = 장부 인식 − 인수 인정 |
| 결과 표시 | 정상 / 점검 필요 |
실제 화면 6종 둘러보기






사용 방법
- 회계연도를 넣고, 인수 조건·고객 코드·납품일 범위·점검 코드·점검 결과는 필요할 때만 고릅니다. "전체"를 고르면 해당 조건 없이 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건(회계연도 2026)으로 자동 조회됩니다.
- 요약 지표에서 납품 건수, 점검 필요 건수, 계약금액, 장부 인식 금액, 인수 인정 금액, 연말 차이, 인수 전 인식 금액, 정합성 대사 차이 건수를 확인합니다.
- 납품·인수 명세 → 기준별 점검 → 인수조건별 비교 → 월별 기간귀속 → 대사 결과 탭 순서로 이동합니다.
- 납품·인수 명세에서 행을 누르면 재계산 과정과 장부 비교 팝업이 열립니다.
- CSV 내려받기로 현재 탭의 결과를 UTF-8(BOM) 파일로 받습니다.
인수 조건별 수익 인식 시점 판정 규칙
같은 납품 건에서는 아래 순서대로 보며 먼저 걸리는 코드가 붙습니다. 장부 인식 월과 인수 인정 월이 같으면 날짜가 달라도 점검 대상이 아닙니다. 결과는 원인을 단정하지 않고 확인을 요청하는 표시입니다.
| 판정 대상 | 판정 조건 | 점검 코드 | 결과 | 사용자 조치 |
|---|---|---|---|---|
| 납품·인수 명세 | 인수를 거절했거나 반품한 건에 장부 수익 인식 금액이 남아 있음 | C04 | 점검 필요 | 반품·취소 전표와 사유 문서 확인 |
| 납품·인수 명세 | 고객 승인 후 인수 조건인데 인수일이 없고 장부 수익이 인식됨 | C02 | 점검 필요 | 통제 이전을 객관적으로 확인할 근거 확인 |
| 납품·인수 명세 | 시험기간 후 인수 조건인데 시험기간이 끝나지 않았고 명시 인수도 없는데 장부 수익이 인식됨 | C05 | 점검 필요 | 시험기간 약정과 거절 권리 확인 |
| 납품·인수 명세 | 고객 승인·시험기간 조건 건에서 장부 인식 월이 인수 인정 월보다 앞섬 | C01 | 점검 필요 | 인수 확인서 일자와 인식 기준일 확인 |
| 납품·인수 명세 | 객관적 확인이 가능한 조건인데 장부 인식 월이 인도 월보다 늦음 | C03 | 확인 필요 | 형식적 절차로 본 근거와 지연 사유 확인 |
| 납품·인수 명세 | 위 어느 것도 해당하지 않음 | C00 | 정상 | 조치 없음 |
샘플의 점검 필요 13건은 C01 4건 · C02 2건 · C03 3건 · C04 2건 · C05 2건입니다. 인수 조건의 해석과 형식적 절차 여부는 회사 정책이며 샘플 화면은 가상 기준을 씁니다. 구분 판단은 회사와 감사인이 합니다.
인수 인정일에서 기간귀속 차이까지의 산출 순서
- 인수 조건별 인수 인정일 — 객관적 확인 가능(O)이면 납품일, 고객 승인 후 인수(S)이면 고객 인수일(없으면 인정일 없음), 시험기간 후 인수(T)이면 고객 인수일이 있으면 그 날짜, 없으면 납품일 + 시험기간(일)이 기준일 이전일 때 그 날짜, 아니면 인정일 없음
- 거절·반품 건은 인정일 없음, 인수 인정 금액 0
- 인수 인정 금액 = 인정일이 있으면 계약금액, 없으면 0
- 장부 인식 금액 = 장부 수익 인식일이 있으면 계약금액, 없으면 0
- 건별 차이 = 장부 인식 금액 − 인수 인정 금액
- 월별 기간귀속 — 장부 인식 월과 인수 인정 월을 월별로 집계해 월 차이와 누적 차이를 구함
- 점검 코드 분류 후 인수 조건별·월별로 합산하고, 합계 행은 소계 행을 제외한 개별 행 합계로 맞춤
예를 들어 고객 승인 후 인수 조건 건이 1월 11일에 납품되어 1월에 매출로 잡혔는데 고객 인수일이 2월 15일이라면, 인수 인정 월은 2월이라 C01 에 걸립니다. 같은 건을 2월에 인식했다면 정상입니다.
조회조건
| 조건 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | YYYY 4자리 |
| 인수 조건 | 선택 | 객관적 확인 가능 · 고객 승인 후 인수 · 시험기간 후 인수 |
| 고객 코드 | 선택 | 고객 코드 한 건 |
| 납품일 시작·종료 | 선택 | 납품일 범위, 시작이 종료보다 늦으면 안내 |
| 점검 코드 | 선택 | C00~C05 |
| 점검 결과 | 선택 | 정상 · 점검 필요 |
결과 컬럼
납품·인수 명세 23개 컬럼, 기준별 점검 11개 컬럼, 인수조건별 비교 14개 컬럼, 월별 기간귀속 15개 컬럼, 대사 결과 9개 컬럼으로 구성되며 금액 단위는 원이고 요약 지표는 천원입니다.
| 탭 | 주요 컬럼 |
|---|---|
| 납품·인수 명세 | 납품 번호·고객·품목·수량·계약금액·납품일, 인수 조건·시험기간·고객 인수일·거절·반품, 수익 전표·장부 수익 인식일·금액·인식 월, 재계산 인수 인정일·월·금액, 차이, 점검 결과·코드·내용 |
| 기준별 점검 | 점검 코드·기준·판정 방법, 검사 건수, 점검 필요 건수, 대상 금액 합계, 최대 금액, 점검 결과·내용 |
| 인수조건별 비교 | 인수 조건, 납품 건수, 계약금액, 장부 인식 금액, 인수 인정 금액, 인수 보류 금액, 점검 필요 건수·금액 |
| 월별 기간귀속 | 월, 납품 건수, 장부 인식 금액, 인수 인정 금액, 월 차이, 누적 차이, 앞당겨·늦게 인식한 건수, 점검 필요 건수 |
| 대사 결과 | 대사 번호·항목·대사식, 좌변·우변, 검사·차이 건수, 최대 차이 |
SAP 표준 기능 매핑
표준 T-code
| T-code | 표준 기능 | 이 화면과의 관계 |
|---|---|---|
| VA03 | 판매오더 조회 | 계약금액과 계약서의 인수 조건 문구를 확인한 뒤 이 화면에서 건 단위로 대조 |
| VL03N | 납품 문서 조회 | 납품일(물품 인도일)과 수량 확인 |
| VF03 | 청구 문서 조회 | 청구 금액과 청구일 확인 |
| FBL5N | 고객 항목 조회 | 고객별 채권·수익 전표 대조 |
| FAGLL03 | 총계정원장 항목 조회 | 수익 계정의 전기일과 금액 확인 |
IFRS 요구사항 매핑
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 통제 이전 시점에 수익 인식 | 납품·인수 명세 탭, 월별 기간귀속 탭 | 납품 문서, 수익 전표 | 문단 번호는 원문 확인 필요 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 고객의 인수 — 합의 사양으로 객관적 확인이 가능한 경우 | 인수 조건 O 건(C03) | 계약 조건 관리 정보(확인 필요) | 형식적 절차 여부는 회사 판단 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 고객의 인수 — 고객이 인수해야 통제가 이전되는 경우 | 인수 조건 S 건(C01·C02) | 인수 확인서 일자(확인 필요) | 인수 전 인식 후보 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 고객의 인수 — 시험기간 후 인수 조건 | 인수 조건 T 건(C05) | 시험기간 약정(확인 필요) | 거절 권리의 해석은 확인 필요 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 인수 거절·반품 시 수익 철회 | 거절·반품 건(C04) | 반품·취소 전표(확인 필요) | 수익 잔존 후보 |
참고 CDS 뷰
원천테이블
| 테이블 | 내용 | 사용 필드 |
|---|---|---|
| VBAK · VBAP | 판매오더 헤더·품목 | VBELN, KUNNR, POSNR, NETWR, ARKTX |
| LIKP · LIPS | 납품 헤더·품목 | VBELN, POSNR, KUNNR, WADAT_IST, LFIMG |
| VBRK · VBRP | 청구 헤더·품목 | VBELN, FKDAT, NETWR |
| ACDOCA | 유니버설 저널 | RBUKRS, GJAHR, POPER, RACCT, BUDAT, HSL |
| 계약 조건·인수 확인서 관리 정보 | 인수 조건, 시험기간, 인수일, 거절·반품 여부 | 확인 필요 |
CDS 뷰 스케치
@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Customer acceptance revenue basis'
define view entity CustAcceptCheck
as select from likp
inner join lips on lips.vbeln = likp.vbeln
inner join vbap on vbap.vbeln = lips.vgbel and vbap.posnr = lips.vgpos
{
key likp.vbeln as DelivNo,
key lips.posnr as ItemNo,
likp.kunnr as CustCode,
likp.wadat_ist as DelivDate,
vbap.netwr as ContractAmt
}인수 조건·인수일·수익 전표 연결은 회사의 계약 관리 방식과 계정 체계에 맞춰 정하며 위 값은 스케치입니다(확인 필요).
OpenUI5 구성
- 데이터는 OData V2 모델 하나로 받으며, 서비스 선언은 앱 설정 파일의 데이터 소스에만 둡니다.
- 탭마다 별도의 데이터 집합에 바인딩해 화면 블록이 각자 필요한 행만 받고, 한 번에 받아 컨트롤러에서 쪼개지 않습니다.
- 조회조건은 필터 객체로 만들어 $filter 로만 전달하고, "전체"는 필터를 만들지 않습니다. 납품일 범위는 하나의 날짜 필터로 묶어 전달합니다.
- 정렬·페이징은 테이블의 sorter 와 threshold 로 $orderby · $top · $skip 을 호출하고, 총건수는 $inlinecount 로 받습니다.
- 요약 지표의 합산식은 컨트롤러 한 곳에 모았고, 인수 전 인식 금액은 서비스 함수로 받으며 소계 행은 이중 집계하지 않습니다.
- 서비스에 연결되지 않으면 ErrorHandler 가 메타데이터 실패와 요청 실패를 구분해 안내 창을 띄우고, 조회 결과가 비면 안내 메시지를 보여 줍니다.
- 테이블은 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개, 가상 납품 건 48건, 점검 기준 5개, 인수 조건 구분 3개와 합계 1행, 월 12개와 합계 1행)로 실제 브라우저에서 렌더링하고, 원천 행에서 독립 재계산한 값과 화면 요약 지표를 대조했습니다. 건 단위 점검(인수 인정일·금액·차이·기간·점검 코드 336건)과 월별·합계 점검까지 총 400건에서 차이는 0건입니다.
| 요약 지표 | 값 |
|---|---|
| 납품 건수 | 48건 |
| 점검 필요 건수 | 13건 |
| 계약금액 | 3,248,000천원 |
| 장부 인식 금액 | 2,914,000천원 |
| 인수 인정 금액 | 2,615,000천원 |
| 연말 차이(장부−인정) | +299,000천원 |
| 인수 전 인식 금액 | 609,000천원 |
| 정합성 대사 차이 건수 | 0건 |
| 대사(회계연도 2026) | 검사 건수 | 차이 건수 | 최대 차이 |
|---|---|---|---|
| 장부 인식 합계 | 12 | 0 | 0 |
| 인수 인정 합계 | 12 | 0 | 0 |
| 연말 차이 | 12 | 0 | 0 |
| 건 단위 차이식 | 48 | 0 | 0 |
| 인수조건별 계약금액 | 3 | 0 | 0 |
| 인수 보류 금액 | 3 | 0 | 0 |
| 점검 필요 건수 | 5 | 0 | 0 |
정합성 대사는 모두 차이 0건입니다. 점검 화면이라 의도적으로 넣은 예외 건은 점검 필요 13건(인수 전 기간 수익 인식 4건, 미인수 건 수익 인식 2건, 객관 확인 가능 건 인식 지연 3건, 거절·반품 건 수익 잔존 2건, 시험기간 미경과 건 수익 인식 2건)이며, 이 건수는 정합성 대사의 차이 건수와 분리해 기록했습니다. 연말 차이 +299,000천원은 미인수·시험기간 미경과·거절 건의 장부 수익이며, 인수 전 기간 인식 후보와 인식 지연 후보는 연간 합계는 같고 월만 이동합니다.
조회 버튼 위치, Enter 조회, 테마 sap_horizon, 행 클릭 상세 팝업, 연결 실패 안내까지 실제 브라우저에서 확인했습니다.
자주 묻는 질문
이 점검은 어떤 기준서의 어떤 요구사항에 근거하며 적용 시기는 어떻게 되나요?
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 통제가 고객에게 이전되는 시점에 수익을 인식하도록 하며, 고객의 인수 조건은 그 시점을 판단하는 데 쓰입니다. 이 화면은 합의 사양으로 객관적 확인이 가능한 경우, 고객이 인수해야 하는 경우, 시험기간 후 인수 조건, 거절·반품 건의 수익 인식 시점을 건 단위로 다시 계산해 장부와 맞춰 보는 도구입니다. 부분 인수와 용역 계약은 범위에 넣지 않았고, 시행일과 경과 규정, 문단 번호는 기준서 원문에서 확인 필요합니다.
인수 조건이 있으면 항상 고객이 인수한 날에 수익을 인식해야 하나요?
그렇게 단정하지 않습니다. 합의된 사양으로 통제 이전을 객관적으로 확인할 수 있어 인수가 형식적 절차라고 판단되면 인도 시점에 인식할 수 있고, 그렇지 않으면 고객이 실제로 인수한 시점까지 기다리는지를 봅니다. 화면은 이 구분을 인수 조건 코드로 받아 인정일을 다시 구할 뿐이며, 형식적 절차인지의 판단은 계약 조건을 보고 회사와 감사인이 합니다.
인수일이 장부 인식일과 날짜만 다르면 점검 필요인가요?
장부 인식 월과 인수 인정 월이 다를 때만 기간귀속 차이로 봅니다. 같은 달 안에서 날짜만 다르면 점검 대상이 아닙니다. 다만 월 단위 기준은 샘플의 설명용 가정이며 실제 마감 기준일에 맞춰 조정해야 합니다.
"점검 필요"는 회계처리를 잘못했다는 뜻인가요?
그렇게 단정하지 않습니다. 다시 계산한 값과 장부 값이 다르거나 확인할 사항이 있는 행을 골라 보여주는 표시입니다. 원인은 계약 조건과 전표를 함께 보아야 알 수 있고, 최종 판단은 회사와 감사인이 합니다.
수익 인식 시점 차이를 결산 전에 납품 건 단위로 걸러내세요
고객 인수 조건처럼 판단이 들어가는 항목이 계약서와 확인서와 원장에 흩어져 있어 결산 때마다 다시 확인하느라 시간이 든다면, 우리 회사 계정 체계에 맞춘 점검 화면이 필요하다면 문의해 주세요.