솔루션 홈
F107 · 채권관리

SAP 대손충당금 설정 — 못 받을 돈을 미리 인정하기

매출채권 연령분석과 고객 위험등급으로 충당금 요설정액을 산출하고, 이동표와 원장 잔액을 대사하는 화면입니다.

매출채권은 모두 받을 수 있는 돈이 아닙니다. 오래 밀릴수록, 거래처 사정이 나쁠수록 못 받을 확률이 올라갑니다.

그 확률만큼 미리 비용으로 잡는 것이 대손충당금입니다. 문제는 얼마를 잡을지입니다. 연령별로 일괄 적용하면 간편하지만 부실 징후가 뚜렷한 거래처를 놓칩니다. 두 방식을 함께 쓰도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 회사코드 — 대상 법인(Bukrs)과 회계연도(Gjahr)
  • 기준월 — 연초 누계 대상월(MonatTo)
  • 위험등급 — 고객 등급(RiskGrade) A~D
  • 충당금 이동 — 기초잔액(BeginningBalance) · 설정(Addition) · 상각(WriteOff) · 기말(EndingBalance)
  • 채권 — 고객별 미결 항목과 연령
항목내용
대응 T-codeF107 (충당금 설정)
업무 영역재무회계(FI) · 채권 평가
Namespacezui5.baddebt
셸 구조조회조건 영역(우측 조회·초기화) + 월별 추이 + 이동표 + 위험 고객
화면 수조회 화면 1개 + 상세
데이터이동표 16건 · 채권 184건 · 고객 23건
성격조회·산출형 — 전기는 표준이 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·회계연도·기준월로 조회하면 요설정액이 나옵니다 → 설정률과 이동표를 확인하고 → 원장 잔액과 대사합니다.

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

F107 — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·기준월·위험등급·고객을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
F107 — 월별 추이
채권총액·요설정액·설정률
채권총액·요설정액·설정률 — 연월별로 채권총액·요설정액·설정률이 표시되고 위험 고객 수와 위험 신호가 이어집니다.
F107 — 이동표
기초·설정·상각·기말
기초·설정·상각·기말 — 전사 충당금 이동표가 표시되고 기말잔액이 원장 잔액과 대사됩니다.

조작 방법

  1. 회사코드회계연도를 고릅니다.
  2. 기준월을 지정합니다. 연초부터 그 달까지 누계로 집계됩니다.
  3. 위험등급으로 A(우량)부터 D(부실)까지 나눠 볼 수 있습니다.
  4. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  5. 요설정액설정률을 확인합니다.
  6. 이동표로 기초에서 기말까지의 흐름을 봅니다.
  7. 기말잔액이 원장 충당금 계정과 맞는지 대사합니다.
  8. 결과는 CSV 다운로드로 내려받아 결산 조서에 첨부합니다.

설정액 산식

연령분석법과 개별평가를 함께 씁니다.

연령분석법  요설정액 = Σ(연령 구간별 채권 × 구간 설정률)
개별평가    D등급 등 부실 징후 거래처는 개별 판단으로 설정

요설정액 = 연령분석 대상 설정액 + 개별평가 설정액
설정률(커버리지) = 요설정액 ÷ 채권총액 × 100

이동표
  기말잔액 = 기초잔액 + 당월설정 − 당월상각
  기말잔액이 원장 충당금 계정 잔액과 일치해야 함

추가 설정 필요액 = 요설정액 − 현재 충당금 잔액

두 방법을 함께 쓰는 이유

연령분석법은 통계적 접근이라 대체로 맞지만 개별 사정은 반영하지 못합니다. 연체가 30일밖에 안 됐어도 거래처가 회생 절차에 들어갔으면 전액이 위험합니다. 그런 건은 개별평가로 따로 잡아야 충당금이 실제 위험을 반영합니다.

위험등급 4구간

등급상태설정 방식
A (우량)연체 없고 신용 양호최저 설정률
B (양호)경미한 연체기본 설정률
C (주의)연체 반복 또는 장기화높은 설정률
D (부실)회수 곤란 징후개별평가 대상

조회조건

필드필수설명
회사코드 Bukrs필수대상 법인
회계연도 Gjahr필수대상 연도
기준월 MonatTo필수연초 누계 대상월
위험등급 RiskGrade선택전체 / A / B / C / D
고객명·코드 CustText선택거래처 검색

결과 컬럼

월별 추이

컬럼의미
연월 MonatLabel집계 기간
채권총액매출채권 잔액
요설정액산출된 충당금 필요액
설정률요설정액 ÷ 채권총액
위험고객수C·D 등급 거래처 수
위험신호급증·집중 등 경고. 상태 색

이동표(전사)

항목의미
기초잔액 BeginningBalance기간 시작 충당금
당월설정 Addition추가 설정액
당월상각 WriteOff대손 확정 상각
기말잔액 EndingBalance기초 + 설정 − 상각
원장 대사충당금 계정과 일치 여부

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
F107대손충당금 설정연령분석과 개별평가를 함께 제시
FBL5N고객 개별항목채권 연령 원천
S_ALR_87012178채권 연령분석구간별 집계
BSID · BSAD고객 미결·반제조회 원천
KNA1 · KNB1고객 마스터거래처 정보
FS10N계정 잔액충당금 대사

도입 시 확인이 필요한 부분

연령 구간과 설정률은 회사가 정하고 감사인과 협의합니다. 과거 대손 실적을 근거로 산정하는 것이 원칙이며, 근거 없이 낮게 잡으면 감사에서 지적받습니다. 설정률을 바꾸면 그 사유도 함께 남겨야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCBADDEBT'
@EndUserText.label: '대손충당금 산출 (Z)'
define view Z_C_BAD_DEBT_ALLOWANCE
  with parameters p_keydate : dats
  as select from bsid as Item
    left outer join kna1 as Customer on Item.kunnr = Customer.kunnr
{
  key Item.bukrs,
  key Item.kunnr as Customer,
  key Item.belnr, key Item.gjahr, key Item.buzei,
      Customer.name1 as CustomerName,
      Item.zfbdt as DueDate,
      Item.dmbtr as Amount,
      // 연령 = 기준일 − 만기일, 구간별 설정률을 적용해 요설정액 산출
      dats_days_between( Item.zfbdt, :p_keydate ) as AgingDays
      // 위험등급은 고객 평가 테이블과 조인, D등급은 개별평가
      // 이동표는 충당금 계정 전기 이력에서 집계
}

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 월별 추이 · 이동표
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
추이 테이블sap.m.Table — 연월순 정렬
위험신호sap.m.ObjectStatus — 정상 / 주의
이동표기초→설정→상각→기말 순서로 열 배치

설정률을 함께 보여 주는 이유

요설정액만 보면 채권이 늘어서 커진 것인지 위험이 높아져서 커진 것인지 모릅니다. 설정률이 함께 있으면 채권 규모와 무관하게 위험 수준의 변화가 드러납니다. 설정률이 계속 오르면 거래처 신용이 나빠지고 있다는 신호입니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.baddebt) · ko 로케일
view/Main.view.xml조회조건 · 월별 추이 · 이동표
controller/Main.controller.js조회 · 요설정액 산출 · 대사 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 비율 · 상태 색 포맷터
localdata/allowancemovement.json이동표 16건
localdata/aritems.json채권 184건
localdata/customers.json고객 23건

검증 결과

검증 항목결과
기말잔액 = 기초잔액 + 당월설정 − 당월상각통과
설정률 = 요설정액 ÷ 채권총액 × 100통과
요설정액 = 연령분석 설정액 + 개별평가 설정액통과
D등급 거래처는 개별평가 대상으로 분류통과
고객 코드가 있으면 명칭도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

설정률은 어떻게 정하나요?

과거 대손 실적을 근거로 산정합니다. 연령 구간별로 실제 회수되지 않은 비율을 계산해 설정률로 쓰고, 감사인과 협의해 확정합니다.

상각과 설정은 무엇이 다른가요?

설정은 미리 비용으로 잡는 것이고 상각은 회수 불가가 확정돼 채권 자체를 없애는 것입니다. 상각하면 충당금이 줄어듭니다.

기말잔액이 원장과 다르면요?

충당금 전기가 누락됐거나 산출 기준이 달라진 것입니다. 결산 전에 맞춰야 재무제표 주석과 본표가 어긋나지 않습니다.

SAP 표준 기능과 어떻게 이어지나요?

충당금 전기는 표준 F107 이 담당합니다. 이 화면은 연령분석과 개별평가로 요설정액을 산출하고 이동표와 원장 대사를 함께 보여 주는 확장입니다.

채권 평가, 지금 쓰는 SAP 위에서 확장해 보세요

설정률 추이가 보이면 거래처 신용 변화를 미리 감지합니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

대손충당금매출채권연령분석개별평가충당금설정률F107OpenUI5