SAP 매출 인식시점 기간귀속 점검 — IFRS 15, 통제가 넘어간 날과 매출로 잡은 날이 같은 달인지 원장과 맞춰본다
출하일·인도확인일·검수확인일 가운데 통제 이전 기준일을 정하고, 인식일이 앞서거나 월·연도 경계를 넘긴 건을 가려냅니다
물건을 내보냈다고 곧바로 매출이 되는 것은 아닙니다. IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 한 시점에 이행하는 수행의무의 수익을 자산의 통제가 고객에게 이전되는 시점에 인식하도록 하고, 그 시점을 판단할 때 지급청구권, 법적 소유권, 물리적 점유, 소유에 따른 위험과 보상, 고객의 인수 같은 지표를 살피도록 합니다. 출하 시점에 통제가 넘어가는 계약도 있고, 고객 사업장에 도착해야 또는 고객 검수가 끝나야 넘어가는 계약도 있어서, 결산 때 월말 전후의 출하·인도·검수 일자와 매출 전기일을 나란히 놓고 보는 일이 반복됩니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다.
실무에서는 출하 전에 미리 매출을 올리거나, 인도확인이 끝난 뒤 다음 달에야 반영하거나, 연말 출하분이 기준일은 다음 해인데 올해 매출로 잡히는 일이 생깁니다. 판매 건마다 인도 유형별로 통제 이전 기준일을 정하고 원장 인식일과 견주어 인식월이 다른 건, 옮겨질 금액과 다음 회계연도로 넘어갈 금액까지 한 번에 보는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) — 수익 인식 |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 한 시점에 이행하는 수행의무의 통제 이전 시점 |
| Namespace | zui5.salescut |
| 셸 구조 | 단일 페이지 + 5개 탭 |
| 화면 수 | 메인 1 · 상세 다이얼로그 1 |
| SAP 표준 T-code | VA03 · VL03N · VF03 · FAGLL03 · FBL5N |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 판매 건별 인도 유형·통제 이전 기준일·매출 인식일·청구 금액·원장 인식액 |
| 핵심 산식 | 일수 차이 = 인식일 − 기준일 · 기간별 재계산액 = 원장 인식액 − 유출 + 유입 · 유출 합계 − 유입 합계 = 다음 회계연도 이월 금액 |
| 결과 표시 | 정상 / 점검 필요 / 확인 필요 |
실제 화면 6종 둘러보기






사용 방법
- 회계연도를 넣고, 회사와 인도 유형(출하 시점 · 도착 인도 · 검수 조건)은 필요할 때만 고릅니다. 비워 두면(전체) 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건으로 자동 조회됩니다.
- 요약 줄에서 판매 건수, 점검·확인 필요 건수, 원장 인식 매출, 기준일 확인 건 인식액, 조기 인식 금액, 기간 이동 대상 금액, 다음 연도 이월 대상을 먼저 확인합니다.
- 탭을 옮겨 가며 판매 건별 판정 → 인도 유형별 집계 → 기간별 귀속 대사 → 결과 구분별 집계 → 정합성 대사 순으로 좁혀 봅니다.
- 건별 판정 탭에서 행을 누르면 통제 이전 기준과 일수·기간 계산, 판정 단계, 이벤트 일정이 상세 다이얼로그로 열립니다.
- 각 탭의 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
통제가 넘어간 날을 정하고 인식일과 견주는 네 단계 판정
판매 건마다 기준일 확인, 인식일 선후, 인식월 일치, 금액 대사 순으로 판정합니다. 기준일은 인도 유형에 따라 출하 시점 건은 출하일, 도착 인도 건은 인도확인일, 검수 조건 건은 검수확인일로 정합니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 인도 유형에 맞는 이벤트 일자(출하일·인도확인일·검수확인일)가 없음 | 확인 필요 | 확인 자료를 받은 뒤 다시 조회 |
| 매출 인식일이 통제 이전 기준일보다 앞섬(일수 차이가 음수) | 점검 필요 | 인식일 이전에 통제가 이전되었다고 볼 근거 확인 |
| 매출 인식월이 통제 이전 기준월과 다름(월·연도 경계) | 점검 필요 | 기간 귀속 검토 |
| 청구 금액과 원장 인식액이 다름 | 점검 필요 | 청구서와 원장 전기 금액 차이의 원인 확인 |
| 네 단계 모두 충족 | 정상 | - |
인식일이 기준일보다 3일 이내로 늦고 같은 달이면 허용 범위(적기)로 봅니다. 판정 결과는 확인 대상을 알리는 표시이며, 최종 판단은 회사와 감사인이 합니다.
기준일 확정에서 기간별 재계산까지 산출 5단계
- 기준일 확정 —
인도 유형별 이벤트 일자 = 통제 이전 기준일 - 일수 차이 —
매출 인식일 − 통제 이전 기준일 - 기간 이동 금액 — 인식월과 기준월이 다르면 원장 인식액, 같으면 0
- 기간별 재계산 —
원장 인식액 − 유출 + 유입 = 기준일 기준 재계산액 - 대사 —
유출 합계 − 유입 합계 = 다음 회계연도 이월 금액,청구 금액 + 금액 차이 = 원장 인식액, 인도 유형별 합계 = 결과 구분별 합계 = 기간별 원장 합계 = 건별 합계
금액 단위는 원입니다.
조회조건
| 조회조건 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 기본 2026 |
| 회사 | 선택 | 전체 선택 시 조건 없이 조회 |
| 인도 유형 | 선택 | 출하 시점 · 도착 인도 · 검수 조건, 전체 선택 시 조건 없이 조회 |
| 점검 결과 | 선택 | 건별 판정 탭 — 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 내용 |
|---|---|
| 요약 | 판매 건수 · 점검·확인 필요 건수 · 원장 인식 매출 · 기준일 확인 건 인식액 · 조기 인식 금액 · 기간 이동 대상 금액 · 다음 연도 이월 대상 |
| 판매 건별 판정 | 판매 건 · 고객 · 제품군 · 인도 유형 · 인코텀즈 · 점검 결과 · 주문일 · 출하일 · 인도확인일 · 검수확인일 · 통제 이전 기준일 · 매출 인식일 · 인식월 · 기준월 · 일수 차이 · 인식 시점 · 청구 금액 · 금액 차이 · 원장 인식액 · 기간 이동 금액 · ①~④ 단계 · 판정 근거·설명 |
| 인도 유형별 집계 | 건수 · 원장 인식액 · 기준일 확인 건수 · 조기·지연 인식 건수와 금액 · 기간 이동 건수와 금액 · 평균 일수 차이 |
| 기간별 귀속 대사 | 기간 · 인식 건수 · 원장 인식액 · 유출 · 유입 · 기준일 기준 재계산액 · 순 이동 · 다음 연도 이월 대상 |
| 결과 구분별 집계 | 정상·점검 필요·확인 필요별 건수 · 금액 |
| 정합성 대사 | 대사식 · 산식 · 검사 건수 · 차이 건수 · 최대 차이 금액 · 예외 건수 |
SAP 표준 기능 매핑
- 원장 — 매출 인식액과 회계전기일은 유니버설 저널(
ACDOCA), 청구는VBRK·VBRP, 납품은LIKP·LIPS, 인코텀즈는VBKD를 사용해 집계
| T-code | 이름 | 쓰임 |
|---|---|---|
VA03 | 판매오더 조회 | 인코텀즈와 주문일을 확인합니다 |
VL03N | 납품 조회 | 출고 확인일과 고객 인도 확인 일자를 확인합니다 |
VF03 | 청구문서 조회 | 청구 금액과 청구일을 확인합니다 |
FAGLL03 | G/L 계정 개별항목 | 매출 계정의 회계전기일과 금액을 확인합니다 |
FBL5N | 고객 개별항목 | 고객 미결·청산 내역과 교차 확인합니다 |
| 기준서 | 요구사항 | 화면 반영 |
|---|---|---|
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 한 시점에 이행하는 수행의무는 자산의 통제가 고객에게 이전되는 시점에 수익을 인식 | ① 기준일 확인, ② 인식일 선후 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 통제 이전 지표(지급청구권 · 법적 소유권 · 물리적 점유 · 소유에 따른 위험과 보상 · 고객의 인수) 검토 | 인도 유형 분류, 이벤트 일정 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 인식 기간의 귀속(월·연도 경계) 점검 | ③ 인식월 일치, 기간별 귀속 대사 |
참고 CDS 뷰
define view entity I_GoodsCutoffCheck
as select from vbak as so
inner join vbkd as bd on bd.vbeln = so.vbeln and bd.posnr = '000000'
{
key so.vbeln as SalesId,
bd.inco1 as Incoterm,
case when bd.inco1 in ('EXW','FCA','FOB','CIF') then 'SHIP'
when bd.inco1 in ('DAP','DDP') then 'ARRIVAL'
end as TermBasis
// 납품 확인 일자(LIKP-PODAT)와 청구·원장 일자는 각각 조인해 기준일·인식일로 사용
// 검수확인일은 회사 관리 자료 — 확인 필요
}뷰 이름과 조인은 스케치이며, 검수 조건 건의 검수확인일은 표준 필드로 단정하지 않아 확인 필요로 남겼습니다.
OpenUI5 구성
| 구성 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 수익 인식 |
| 화면 구성 | 조회조건 영역(우측 조회) + 요약 줄 + 판매 건별 판정·인도 유형별 집계·기간별 귀속 대사·결과 구분별 집계·정합성 대사 5개 탭, 상세 Dialog |
| 데이터 모델 | OData V2 모델을 앱 설정(manifest)에서 선언하고, 표마다 해당 엔티티셋에 직접 바인딩 |
| 조회조건 처리 | 필터 객체로 만들어 서버 조회 조건($filter)으로 전달하며 "전체"는 조건을 만들지 않음 |
| 정렬·페이징 | 정렬 객체로 서버 정렬($orderby), 표 범위 읽기로 페이징($top·$skip), 총건수는 인라인 건수 |
| 집계 | 요약 값은 컨트롤러 한 곳에서 계산하고 금액 문자열은 숫자로 변환해 합산 |
| 실패 안내 | 서비스 연결 실패와 요청 실패, 빈 응답을 구분해 사용자 메시지로 안내 |
| 테마 | sap_horizon · 한국어 |
파일 구성
| 구분 | 내용 |
|---|---|
| 앱 본체 | index.html · manifest.json · Component.js · controller · view · model · i18n · css |
| 데이터 서비스 | OData 서비스 정의와 엔티티셋별 데이터 |
| 검증 전용 | 앱 본체와 분리된 검증용 샘플 데이터 구성 |
| 설명서 | readme.html (13개 절) |
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 가상 회사 2곳의 판매 120건(이벤트 439줄)을 기준으로 인식액·유출·유입이 원 단위로 맞물리도록 구성했습니다.
| 대사식 | 검사 | 결과 | 의도적 예외 |
|---|---|---|---|
| 건별 원장 인식액 합계 = 인도 유형별 = 결과 구분별 = 기간별 원장 합계 | 6 | 일치 | 0 |
| 청구 금액 + 금액 차이 = 원장 인식액 | 120 | 차이 0건, 금액 차이가 있는 건 2건은 점검 대상으로 분리 기록 | 2 |
| 인식일 − 통제 이전 기준일 = 일수 차이 | 112 | 일치 | 0 |
| 통제 이전 기준일 = 인도 유형별 이벤트 일자 | 120 | 차이 0건, 기준일 미확인 8건은 확인 필요로 분리 기록 | 8 |
| 원장 인식액 − 유출 + 유입 = 기준일 기준 재계산액 | 24 | 일치 | 0 |
| 유출 합계 − 유입 합계 = 다음 회계연도 이월 금액 | 2 | 일치 | 0 |
| 정상 + 점검 필요 + 확인 필요 = 전체 판매 건수 | 2 | 일치 | 0 |
금액 차이 2건, 기준일 미확인 8건, 조기 인식 28건, 월 경계 차이 27건은 점검 화면의 동작을 보이기 위해 의도적으로 구성한 케이스입니다. 판정 분포는 정상 72건 · 점검 필요 40건 · 확인 필요 8건입니다. 대사식은 별도 스크립트로 전수 실행해 차이가 0건이었고, 화면 요약의 원장 인식 매출 17,083,400,000, 기준일 확인 건 인식액 16,168,400,000, 조기 인식 금액 4,575,000,000, 기간 이동 대상 금액 3,533,000,000, 다음 연도 이월 대상 1,059,000,000은 검증 스크립트 합계와 같습니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 판매 건마다 매출 인식일과 통제 이전 기준일, 월 경계, 금액을 대조해 살펴볼 건을 가려내는 점검 도구입니다. 통제가 언제 이전되었는지에 대한 최종 판단과 회계처리는 기준서 원문과 회사의 회계정책에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 이미 시행 중인 기준서이며, 이 화면은 그 가운데 한 시점에 이행하는 수행의무의 통제 이전 시점과 기간 귀속 요구사항만 대상으로 합니다. 진행률로 인식하는 수행의무는 범위 밖이고, 문단번호와 세부 경과규정은 원문으로 확인하지 못해 확인 필요로 남겼습니다.
기준일 자료가 없으면 어떻게 표시되나요?
도착 인도·검수 조건 건에서 인도확인일 또는 검수확인일 자료가 없으면 기준일을 정할 수 없으므로 확인 필요로 표시하고 일수 차이와 기간 이동 금액은 산출하지 않습니다. 자료를 받은 뒤 다시 조회하면 판정 단계가 갱신됩니다.
인코텀즈가 같으면 통제 이전 시점도 같은가요?
반드시 같지는 않습니다. 인코텀즈는 위험 이전 시점을 정하는 거래 조건이고, 통제 이전은 계약 조건과 여러 지표를 종합해 판단합니다. 이 화면은 인도 유형별로 기준일 후보를 나누어 보여줄 뿐이며 개별 계약의 판단 근거는 회사가 확인합니다.
결산 직전, 매출 인식일과 통제 이전일을 미리 맞춰 두세요
월말·연말에 출하와 검수 일자를 엑셀로 다시 대조하는 대신, 화면에서 인식일이 앞선 건과 월·연도 경계를 넘긴 건을 미리 가려 두면 결산과 감사 대응이 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.