솔루션 홈
IFRS 15

SAP 위탁판매 수익인식 점검 — IFRS 15, 거래처에 넘긴 제품이 위탁약정이면 팔린 만큼만 매출로 잡았는지 장부와 맞춰본다

판매 전 통제 유지·회수 가능·무조건적 지급의무 없음 세 지표로 출고 건을 나누고, 팔린 만큼만 매출로 잡았는지 장부·재고·원장과 맞춰 봅니다

거래처에 제품을 넘겼는데 그 거래처가 제품을 통제하지 못한다면 매출로 잡아도 될까요? IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)은 제품을 다른 당사자에게 인도하더라도 그 당사자가 제품을 통제하지 못하는 위탁약정이면 인도 시점에 수익을 인식하지 않도록 하고, 위탁약정 여부를 보여 주는 지표로 판매 전까지 회사가 통제를 유지하는지, 회사가 제품을 회수하거나 다른 제3자에게 넘길 수 있는지, 거래처에 제품 대가를 지급할 무조건적 의무가 없는지를 듭니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다.

실무에서는 위탁약정인데 출고 시점에 전량을 매출로 잡거나, 일반 판매인데 매출을 빠뜨리거나, 지표 일부만 충족해 성격이 애매한 건이 섞이곤 합니다. 출고 건마다 세 지표를 확인해 기대 매출을 구하고 장부 매출·거래처 위탁재고·원장 매출 잔액과 견주는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분 — 판매오더와 청구문서는 VA03 · VF03 이, 고객 개별 항목은 FBL5N 이, 매출 계정 항목은 FAGLL03 이, 자재문서와 재고 개요는 MB51 · MMBE 가 담당합니다. 이 화면은 표준 데이터 구조를 그대로 이어받아 출고 건 약정 판정과 매출·재고·원장 대사라는 조회·검증 관점을 더해 확장합니다.
항목내용
업무 영역재무회계(FI) — 수익(판매)
관련 기준서IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 위탁약정의 수익인식
Namespacezui5.consignsale
셸 구조단일 페이지 + 5개 탭
화면 수메인 1 · 상세 다이얼로그 1
SAP 표준 T-codeVA03 · VF03 · FBL5N · FAGLL03 · MB51 · MMBE
데이터 연동 방식OData V2 (조회조건 전부 $filter)
성격조회·재계산·대사·점검형
테마sap_horizon · 한국어
요약내용
점검 대상출고 건별 위탁약정 지표와 기대 인식 매출·장부 매출, 거래처 위탁재고 수량, 제품군별 원장 매출 잔액
핵심 산식기대 인식 매출 = 위탁약정은 최종 판매 수량 × 단가, 일반 판매는 출고액 · 출고액 = 기대 인식 매출 + 매출 미인식액(+ 확인 필요 출고액)
결과 표시정상 / 점검 필요 / 확인 필요

실제 화면 6종 둘러보기

출고 건별 약정 판정 탭과 요약 지표
출고 건별 약정 판정 탭과 요약 지표 — 조회조건과 요약 줄, 출고 건마다 세 지표 충족 여부와 기대 매출·장부 매출이 한 화면에 뜹니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
거래처별 위탁재고 수량 탭
거래처별 위탁재고 수량 탭 — 거래처마다 기초·출고·최종 판매·회수를 더하고 빼 기말 수량을 구한 뒤 거래처가 보고한 수량과 견줍니다.
제품군별 매출 증감표 탭
제품군별 매출 증감표 탭 — 출고액이 기대 인식 매출·매출 미인식액·확인 필요 출고액으로 나뉘는 모습과 장부 매출·원장 매출 잔액 대사를 보여 줍니다.
판정 구분별 요약 탭
판정 구분별 요약 탭 — 위탁약정·일반 판매·약정 성격 확인 필요 구분별 건수와 금액을 모아 봅니다.
대사 결과 탭
대사 결과 탭 — 대사식마다 검사 건수와 차이 건수, 최대 차이 금액을 보여 줍니다.
출고 건 상세 창
출고 건 상세 창 — 출고 건 행을 누르면 지표와 금액 요약, 해당 거래처의 위탁재고 수량이 한 창에 열립니다.

사용 방법

  1. 조회조건 입력 — 회계연도는 필수이고(기본 2026), 회사코드는 목록에서 고릅니다(기본 1000). 점검 결과와 출고 번호는 선택입니다. 출고 번호는 대소문자를 가리지 않고 입력합니다.
  2. 조회 — 조회 버튼은 조회조건 영역의 입력 칸들 오른쪽 끝에 있고 초기화 버튼이 그 옆에 있습니다. 입력 칸에서 Enter 키를 눌러도 조회됩니다. 화면이 열릴 때는 기본 조건으로 한 번 자동 조회합니다.
  3. 요약 KPI 확인 — 판정 출고 건수, 점검 필요·확인 필요 건수, 매출 미인식액 합계, 확인 필요 출고액 합계, 장부·기대 매출 차이 절대값 합계를 봅니다.
  4. 탭 이동 순서 — 출고 건별 약정 판정 → 거래처별 위탁재고 수량 → 제품군별 매출 증감표 → 판정 구분별 요약 → 대사 결과 순으로 봅니다.
  5. 행 클릭 상세 — 출고 건별 탭의 행을 누르면 지표·금액 요약과 해당 거래처의 위탁재고 수량이 상세 창에 나타납니다. 닫기 버튼으로 닫습니다.
  6. CSV 내려받기 — 현재 탭과 같은 조건의 자료를 UTF-8 BOM CSV 로 내려받습니다. 파일 이름은 한글 기능명입니다.

위탁약정을 가르는 세 지표와 판정 규칙

출고 건마다 세 지표(판매 전까지 회사 통제 · 회수·타처 이전 가능 · 거래처의 무조건적 지급의무 없음)의 충족 수를 세어 약정 판정을 정하고, 장부 매출을 기대 인식 매출과 비교합니다.

판정 조건결과 상태사용자 조치
지표 3개 충족 → 위탁약정, 장부 매출 = 최종 판매 수량 × 단가정상조치 없음
지표 3개 충족 → 위탁약정, 장부 매출 ≠ 기대 매출점검 필요미판매분이 매출로 잡혔는지, 판매 보고가 반영됐는지 확인
지표 0개 충족 → 일반 판매, 장부 매출 = 출고액정상조치 없음
지표 0개 충족 → 일반 판매, 장부 매출 ≠ 출고액점검 필요출고 시점 매출 인식 여부와 차이 사유 확인
지표 1~2개 충족확인 필요약정서·인도 조건으로 통제 이전 여부를 확인(기대 매출은 산정하지 않음)
거래처 보고 수량 ≠ 계산 기말 수량점검 필요거래처 재고 보고·실사 자료 확인
제품군의 매출 차이 합계 ≠ 0 또는 원장 차이 ≠ 0점검 필요해당 제품군의 출고 건 확인
제품군에 확인 필요 출고액만 있음확인 필요약정 성격 확인 후 재조회

판정 결과는 확인 대상을 알리는 표시이며, 최종 판단은 회사와 감사인이 합니다.

출고 판정에서 재고·원장 대사까지의 순서

  1. 출고액 = 출고 수량 × 단가
  2. 충족 지표 수 = Y 개수 → 3 이면 위탁약정, 0 이면 일반 판매, 그 밖에는 확인 필요 (대사식 R2)
  3. 기대 인식 매출 = 위탁약정은 최종 판매 수량 × 단가, 일반 판매는 출고액, 확인 필요는 산정하지 않음
  4. 매출 미인식액 = 위탁약정의 (출고 수량 − 최종 판매 수량) × 단가 → 출고액 = 기대 인식 매출 + 매출 미인식액 (R1)
  5. 매출 차이 = 장부 매출 − 기대 인식 매출 (판정 완료 건)
  6. 거래처 기말 수량 = 기초 + 출고 − 최종 판매 − 회수 (R3), 거래처 출고 수량 = Σ 출고 건 수량(위탁약정·확인 필요) (R4)
  7. 제품군 장부 매출 = Σ 출고 건 장부 매출 = 원장 매출 잔액, 제품군 출고액 = 기대 + 미인식 + 확인 필요 출고액 (R5)
  8. 요약 합계 = Σ 구분별 행, 구분별 출고액 = 기대 + 미인식 + 확인 필요 (R6)

금액은 원 단위이며, 거래처·제품·금액은 모두 가상 설정값입니다.

조회조건

조회조건입력 방식필수 여부전달 방식
회사코드목록(1000 · 2000)선택(기본 1000)CompanyCode eq
회계연도직접 입력필수(기본 2026)FiscalYear eq
점검 결과목록(전체 · 정상 · 점검 필요 · 확인 필요)선택ResultText eq — '전체'이면 조건을 만들지 않음 (출고 건별 탭)
출고 번호직접 입력선택ShipId eq (출고 건별 탭)

결과 컬럼

탭주요 컬럼
출고 건별 약정 판정출고 번호 · 점검 결과 · 거래처 · 제품군 · 출고일 · 출고/판매 수량 · 단가 · 출고액 · 지표 3종 충족 여부 · 충족 지표 · 약정 판정 · 기대 인식 매출 · 매출 미인식액 · 장부 매출 · 매출 차이 · 비고
거래처별 위탁재고 수량거래처 · 점검 결과 · 기초·출고·최종 판매·회수·기말(계산) 수량 · 거래처 보고 수량 · 수량 차이 · 비고
제품군별 매출 증감표제품군 · 점검 결과 · 출고액 · 기대 인식 매출 · 매출 미인식액 · 확인 필요 출고액 · 장부 매출 · 매출 차이 합계 · 원장 매출 잔액 · 원장 차이
판정 구분별 요약판정 구분(위탁약정 · 일반 판매 · 약정 성격 확인 필요 · 합계) · 건수(정상/점검 필요/확인 필요) · 출고액·기대 매출·미인식액·확인 필요 출고액·장부 매출 합계 · 매출 차이 절대값 합계
대사 결과대사식 · 대사 항목 · 산식 · 검사 건수 · 차이 건수 · 최대 차이 금액

SAP 표준 기능 매핑

SAP 표준 T-code 매핑

표준 T-code표준 기능이 화면과의 관계
VA03판매오더 조회출고 건의 계약 조건(인도·회수 조건)을 확인할 때 이어서 사용
VF03청구문서 조회장부 매출로 잡힌 청구 건을 확인할 때 사용
FBL5N고객 개별 항목 조회거래처별 매출채권 인식 내역 확인
FAGLL03G/L 계정 개별 항목 조회매출 계정의 장부 매출과 이 화면의 집계를 대조
MB51자재문서 목록출고·회수 자재문서 수량 확인
MMBE재고 개요재고 수량 확인. 위탁 주문유형·특수재고 코드는 확인 필요

표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다.

IFRS 요구사항 매핑

기준서요구사항대응 기능원천 데이터비고
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)제품을 다른 당사자에게 인도하는 위탁약정인지 평가 — 판매 전 통제 유지, 회수·타처 이전 가능, 무조건적 지급의무 없음 지표출고 건별 약정 판정 탭의 지표 3종과 충족 수납품·판매오더 계약 조건지정 기간 경과 조건은 미반영(확인 필요)
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)위탁약정이면 거래처가 제품을 최종 판매하는 시점에 수익 인식기대 인식 매출 = 최종 판매 수량 × 단가거래처 판매 보고, 청구·매출 원장최종 판단은 회사와 감사인
IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)통제가 이전되지 않은 제품은 수익 없이 재고로 관리매출 미인식액, 거래처별 위탁재고 수량고객 위탁재고, 자재문서거래처 보고 수량과 대사

참고 CDS 뷰

원천테이블

원천테이블설명사용 필드
LIKP · LIPS납품 헤더·품목납품번호, 수취 거래처, 실제 출고일, 납품 수량
VBRK · VBRP청구 헤더·품목청구 수량, 청구 금액(단가 산출)
ACDOCA유니버설 저널 항목매출 계정 금액(장부 매출)
MSKU고객 특수재고거래처 보유 위탁재고 수량
KNA1고객 마스터거래처 코드·이름

필드 매핑

OData 엔티티.프로퍼티원천테이블.필드 / 산식
ShipSet.ShipId · ConsigneeCode · ShipDateLIKP-VBELN · LIKP-KUNNR · LIKP-WADAT_IST
ShipSet.ShipQty · UnitPrice · ShipAmtLIPS-LFIMG · VBRP-NETWR ÷ VBRP-FKIMG · ShipQty × UnitPrice (파생)
ShipSet.SoldQty거래처 판매 보고 수량(가상 수집 항목, 확인 필요)
ShipSet.CtrlHold · RecallRight · NoUncondPay계약 조건 점검표 값(가상 설정값, 확인 필요)
ShipSet.IndCount · ArrangeText지표 Y 개수 · 3→위탁약정 / 0→일반 판매 / 그 외→확인 필요 (파생)
ShipSet.ExpectRev · UnrecogAmt위탁약정: SoldQty × UnitPrice · (ShipQty − SoldQty) × UnitPrice / 일반 판매: ShipAmt · 0 (파생)
ShipSet.BookRev · RevDiffACDOCA 매출 계정 금액 합 · BookRev − ExpectRev (파생)
ConsSet.BeginQty · EndQty · ReportQtyMSKU 기초·기말 수량 · 계산 기말 수량 · 거래처 재고 보고(가상 수집 항목)
ConsSet.EndQty · QtyDiffBeginQty + ShipQty − SoldQty − RecallQty · EndQty − ReportQty (파생)
RollSet.* · SumSet.*ShipSet 을 제품군·판정 구분으로 집계한 값, 원장 매출 잔액은 ACDOCA 집계

CDS 뷰 스케치

define view entity ConsignShipCheck
  as select from likp as h
    inner join lips as i on i.vbeln = h.vbeln
    left outer join vbrp as b on b.vgbel = i.vbeln and b.vgpos = i.posnr
{
  key h.vbeln                          as ShipId,
      h.kunnr                          as ConsigneeCode,
      h.wadat_ist                      as ShipDate,
      i.lfimg                          as ShipQty,
      div( b.netwr, b.fkimg )          as UnitPrice,
      i.lfimg * div( b.netwr, b.fkimg ) as ShipAmt,
      case when CtrlHold = 'Y' and RecallRight = 'Y' and NoUncondPay = 'Y' then '위탁약정'
           when CtrlHold = 'N' and RecallRight = 'N' and NoUncondPay = 'N' then '일반 판매'
           else '확인 필요' end        as ArrangeText
}

스케치이며 계약 조건 지표(CtrlHold 등)와 거래처 판매 보고 수량은 별도 점검표에서 받는 값으로 가정합니다(확인 필요).

OpenUI5 구성

구성내용
업무 영역재무회계(FI) · 수익(판매)
화면 구성조회조건 영역(우측 조회) + 요약 줄 + 출고 건별 판정·거래처별 위탁재고·제품군별 증감표·구분별 요약·대사 5개 탭, 상세 Dialog
데이터 모델OData V2 모델을 앱 설정(manifest)에서 선언하고, 표마다 해당 엔티티셋에 직접 바인딩
조회조건 처리필터 객체로 만들어 서버 조회 조건($filter)으로 전달하며 "전체"는 조건을 만들지 않음
정렬·페이징정렬 객체로 서버 정렬($orderby), 목록 범위 읽기로 페이징($top·$skip), 총건수는 인라인 건수
집계요약 값은 서비스 집계 엔티티셋에서 읽고, 금액 문자열은 숫자로 변환해 표시·비교
표 구성건수가 많고 컬럼이 많은 출고 건별 탭은 sap.ui.table.Table, 나머지 탭과 상세 창은 sap.m.Table
실패 안내서비스 연결 실패와 요청 실패, 빈 응답을 구분해 사용자 메시지로 안내
테마sap_horizon · 한국어

파일 구성

구분내용
앱 본체index.html · manifest.json · Component.js · controller · view · model · i18n · css
데이터 서비스OData 서비스 정의와 엔티티셋별 데이터
검증 전용앱 본체와 분리된 검증용 샘플 데이터 구성
설명서readme.html (13개 절)

검증 결과

화면 구성에 쓴 검증용 샘플 데이터는 가상 출고 46건(회사 1000 36건 · 회사 2000 10건)과 거래처 9곳을 기준으로 원 단위·수량 단위로 맞물리도록 구성했습니다.

대사식검사결과차이 건수
출고액 = 기대 인식 매출 + 매출 미인식액 (판정 완료 건)38일치0
충족 지표 수 = Y 개수, 3→위탁약정 / 0→일반 판매 / 그 외→확인 필요46일치0
기초 + 출고 − 판매 − 회수 = 기말 수량9일치0
거래처 출고 수량 = Σ 출고 건 수량9일치0
제품군 장부 매출 = Σ 출고 건 장부 매출 = 원장 매출 잔액7일치0
요약 합계 = Σ 구분별 행, 구분별 출고액 = 기대 + 미인식 + 확인 필요18일치0

회사 1000 은 “점검 필요” 출고 8건(위탁약정 5건: 출고 시 전량 매출 인식 4건·판매분 매출 누락 1건, 일반 판매 3건: 출고분 매출 없음 2건·장부 매출 부족 1건), “확인 필요” 출고 6건(지표 일부 충족), 거래처 수량 “점검 필요” 2곳이 예외이고, 회사 2000 에도 같은 유형의 예외를 소수 넣었습니다. 이는 점검 화면의 동작을 보이기 위해 의도적으로 구성한 케이스이며 대사 차이와 분리해 기록했습니다. 기대값은 별도 스크립트로 다시 계산해 전수 비교했고 대사 차이는 0건이었으며, 화면의 요약 지표(회사 1000: 출고 36건 · 점검 필요 8 · 확인 필요 6 · 매출 미인식액 233,982,000원)도 스크립트 결과와 일치했습니다.

자주 묻는 질문

이 화면의 “점검 필요”는 회계처리가 틀렸다는 뜻인가요?

아닙니다. 이 화면은 위탁약정 여부에서 기대되는 매출을 장부 매출과 맞춰 차이가 나는 건을 가려내는 점검 도구입니다. 차이의 원인과 최종 회계 판단은 기준서 원문과 회사의 회계정책에 따라 회사와 감사인이 합니다.

적용 시기와 범위는 어떻게 되나요?

이 화면은 IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) 중 제품을 거래처에 인도하되 통제가 이전되지 않을 수 있는 위탁약정의 수익인식만 다룹니다. 회사별 적용 시점과 경과규정, 문단번호는 원문으로 확인하지 못해 확인 필요로 두었고, 다른 수익 논점은 범위에 넣지 않았습니다.

세 지표를 일부만 충족하면 어떻게 보이나요?

위탁약정인지 일반 판매인지 이 화면이 판정하지 않고 “확인 필요”로 표시합니다. 약정서와 인도 조건으로 통제가 이전됐는지 확인해 지표를 보완하고 다시 조회하면 판정됩니다.

지정 기간이 지나면 수익을 인식하는 조건도 반영되나요?

반영하지 않았습니다. 이 화면은 지표 3종과 거래처의 최종 판매 수량만 쓰는 가상 설정이며, 기간 경과 조건과 보증금 등 실제 약정 조건의 반영 방식은 확인 필요입니다.

#IFRS 15 #K-IFRS 1115 #위탁약정 #수익인식 #위탁재고 #통제 이전 #OpenUI5

결산 직전, 위탁 출고분의 매출 인식을 건별로 미리 맞춰 두세요

거래처 재고에 제품이 남아 있는 회사는 감사 시기에 위탁 출고분의 매출 인식 근거와 재고 수량을 엑셀로 다시 정리하게 됩니다. 화면에서 지표 충족 여부와 장부 매출이 다른 건을 미리 가려 두면 결산과 감사 대응이 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

도입 문의