솔루션 홈
일반회계

SAP 내부거래 대사 — 관계사끼리 주고받은 금액이 맞는가

Trading Partner가 등록된 거래처의 매출·매입 전표를 모아 관계사별 차액을 먼저 보여 주는 화면입니다.

연결결산에서 가장 먼저 막히는 자리가 내부거래 금액 불일치입니다.

우리가 관계사에 100을 팔았다고 기록했는데 상대는 90을 샀다고 기록해 두면, 그 차이를 찾아야 제거분개를 할 수 있습니다. 그런데 전표를 하나씩 뒤지기 전에 알아야 할 것은 어느 관계사에서 얼마가 벌어졌는가입니다. 이 화면은 Trading Partner가 등록된 거래처의 매출·매입을 모아 관계사별 차액을 먼저 보여 주고, 그 줄을 누르면 해당 관계사 전표만 남깁니다.

SAP 표준 구조를 그대로 이어받은 부분

  • 대상 판정 — 거래처(KNA1 · LFA1)에 Trading Partner가 등록된 코드만
  • 매출 — BSID · BSAD 의 AR 자료
  • 매입 — BSIK · BSAK 의 AP 자료
  • 관계사 마스터 — T880(Global Company Data) · 계정 텍스트 SKAT
항목내용
업무 영역재무회계(FI) · 관계사 내부거래
Namespacezui5.icrecon
셸 구조조회조건 영역(우측 조회) + 관계사별 요약 + 전표 명세
화면 수조회 화면 1개 (요약·명세 2단)
데이터전표 23건 (매출 12 · 매입 11) · 관계사 4곳
성격조회형(Read-Only)
UI 테마sap_horizon 단일 적용

실제 화면 6종 둘러보기

조회하면 관계사별 차액이 먼저 보입니다 → 차액이 큰 줄을 눌러 명세로 내려가고 → 매출·매입을 갈라 원인을 좁힙니다.

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

Main.view.xml
전체 조회 — 요약이 먼저
전체 조회 — 요약이 먼저 — 위에 관계사별 매출·매입과 차액이 오고, 아래에 전표 명세가 놓입니다. 차액이 있는 관계사는 붉게 표시되어 어디부터 봐야 할지가 먼저 드러납니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
금액 컬럼
통화·환율과 원화 환산
통화·환율과 원화 환산 — 외화 거래는 거래통화 금액과 적용 환율, 원화 환산액이 함께 나옵니다. 대사는 원화 기준으로 하되 원래 금액도 볼 수 있어야 차이 원인을 짚을 수 있습니다.
매출만
매출 — AR 자료만
매출 — AR 자료만 — 구분을 매출로 두면 채권 전표만 남습니다. 요약의 매입 칸이 비면서 우리가 관계사에 청구한 금액만 집계됩니다.
매입만
매입 — AP 자료만
매입 — AP 자료만 — 매입으로 바꾸면 채무 전표만 남습니다. 같은 관계사라도 매출과 매입이 따로 잡히므로 어느 방향에서 차이가 났는지 좁힐 수 있습니다.
관계사 필터
요약 클릭 — 해당 관계사만
요약 클릭 — 해당 관계사만 — 요약 라인을 누르면 조회조건의 Trading Partner가 채워지고 명세가 그 관계사 전표만 남깁니다. 차액이 큰 곳부터 바로 파고들 수 있습니다.
조건 해제
조건 해제 — 전체로 복귀
조건 해제 — 전체로 복귀 — 조건을 풀면 다시 모든 관계사가 요약에 나옵니다. 한 곳을 확인한 뒤 다음 관계사로 넘어가는 흐름입니다.

조작 방법

  1. Posting Date 를 확인합니다. 기본값은 전월 1일부터 말일까지입니다.
  2. 위쪽 관계사별 요약에서 대사 차액을 먼저 봅니다. 차이가 있으면 붉게 표시됩니다.
  3. 차액이 큰 요약 라인을 클릭하면 그 관계사 전표만 아래에 남습니다.
  4. 구분을 매출 또는 매입으로 바꿔 어느 방향에서 차이가 났는지 좁힙니다.
  5. 외화 건은 거래통화 금액과 환율을 함께 확인합니다.
  6. 조건 해제로 전체 관계사로 돌아가 다음 곳을 확인합니다.

대상 판정과 집계 규칙

대상은 Trading Partner 등록 여부로 가르고, 집계는 관계사 단위로 묶습니다.

조회 대상

  Vendor / Customer 마스터에 Trading Partner 가 등록된 코드만 검색
     → 등록되지 않은 일반 거래처는 내부거래가 아니므로 제외

구분별 조회 (사양서)

  매출 선택   → 검색조건 기간에 발생된 AR 자료  (BSID / BSAD)
  매입 선택   → 검색조건 기간에 발생된 AP 자료  (BSIK / BSAK)
  전체 선택   → 매출 + 매입

관계사별 집계

  매출액 = 해당 Trading Partner 의 AR 전표 원화금액 합계
  매입액 = 해당 Trading Partner 의 AP 전표 원화금액 합계
  대사 차액 = 매출액 − 매입액
  미결 매출 / 미결 매입 = 반제되지 않은 금액
항목산식 · 규칙
대상 판정거래처에 Trading Partner 등록 여부
매출차변(S) · 채권 계정 · BSID/BSAD
매입대변(H) · 채무 계정 · BSIK/BSAK
원화 환산거래통화 금액 × 적용 환율
대사 차액관계사별 매출액 − 매입액
미결 구분반제전표가 없는 건
요약 연동요약 라인 클릭 시 해당 관계사로 명세 필터

요약을 명세 위에 둔 이유

전표 수십 건을 먼저 보면 어디에 문제가 있는지 알 수 없습니다. 관계사별 차액을 먼저 보여 주면 볼 곳이 한두 곳으로 줄고, 그 줄을 눌러 명세로 내려가는 흐름이 만들어집니다. 차액이 있는 관계사를 붉게 표시한 것도 같은 이유입니다.

조회 구분 3종

무엇을 보느냐에 따라 읽는 테이블과 집계 방향이 달라집니다.

구분대상읽는 테이블의미
매출ARBSID · BSAD우리가 관계사에 청구한 금액
매입APBSIK · BSAK관계사가 우리에게 청구한 금액
전체AR + AP네 테이블 모두관계사별로 양방향을 한 화면에서 대사

양방향을 한 화면에 두었기에 차액이 어느 쪽에서 났는지 바로 좁힐 수 있습니다.

조회조건

필드필수설명
Company code필수변경 못함
Posting Date필수기본값 전월 1일 ~ 전월 말일
Document Date선택증빙일 기준 추가 제한
Document type선택전표유형
Trading Partner선택관계사. 요약 클릭으로도 채워짐
구분필수전체 / 매출 / 매입

결과 컬럼

컬럼의미 · 표시
구분 · Trading Partner매출/매입과 관계사
vendor/Customer · 거래처구분거래처 코드·명칭과 Customer/Vendor 구분
회계연도 · 전표번호 · Line 번호전표 키
Posting date · Doc. Date전기일과 증빙일
전표유형전표 유형과 명칭
통화 · 금액 · 환율 · 금액(KRW)거래통화 금액과 원화 환산
계정코드 · 계정코드명채권·채무 계정
반제여부 · 반제일자미결 여부 판단

보조 기능

컬럼의미 · 표시
매출 건수 · 매출액관계사별 AR 집계
매입 건수 · 매입액관계사별 AP 집계
대사 차액매출액 − 매입액. 차이가 있으면 붉게
미결 매출 · 미결 매입아직 반제되지 않은 금액

SAP 표준 기능 매핑

전표는 표준이 만들고, 이 화면은 관계사 단위로 모아 차액을 드러냅니다.

표준역할이 화면에서의 확장
T880Global Company DataTrading Partner 마스터
BSID · BSAD미결·반제 채권매출 자료 원천
BSIK · BSAK미결·반제 채무매입 자료 원천
KNA1 · LFA1고객·공급업체 마스터Trading Partner 등록 여부 판정
FBL5N · FBL1N 관점개별항목 조회전표 단위 확인
연결결산내부거래 제거대사 차액이 제거분개의 출발점

운영 데이터 소스 매핑

항목SAP 원천비고
채권BSID · BSADBUKRS · KUNNR · BELNR · DMBTR · AUGBL
채무BSIK · BSAKBUKRS · LIFNR · BELNR · DMBTR · AUGBL
관계사T880RCOMP 와 명칭
거래처KNA1 · LFA1Trading Partner 등록 여부
계정 텍스트SKAT계정 명칭

도입 시 확인이 필요한 부분

Trading Partner를 거래처 마스터의 어느 필드로 관리하는지 먼저 확인해야 합니다. 또 회사코드가 여러 개인 그룹이면 상대 회사코드 쪽 장부도 같은 화면에서 봐야 대사가 끝나므로, 회사코드 범위와 권한 설계를 함께 잡아야 합니다. 제거분개 대상 계정 범위도 미리 정해 두면 좋습니다.

참고 CDS 뷰

내부거래를 조회할 때는 전표에 거래처와 관계사 정보를 붙인 뷰가 편합니다.

@AbapCatalog.sqlViewName: 'ZCICRECON'
@EndUserText.label: '내부거래 대사 (Z)'
define view Z_C_INTERCOMPANY_RECON
  as select from bsid as Item
    inner join      kna1  as Customer on Item.kunnr = Customer.kunnr
    left outer join t880  as Partner  on Customer.vbund = Partner.rcomp
    left outer join skat  as AcctText on  Item.hkont = AcctText.saknr
                                      and AcctText.spras = 'K'
{
  key Item.bukrs       as Bukrs,
  key Item.gjahr       as Gjahr,
  key Item.belnr       as Belnr,
  key Item.buzei       as Buzei,
      'AR'             as RecordType,
      Customer.vbund   as TradingPartner,
      Partner.name1    as TradingPartnerName,
      Item.kunnr       as Partner,
      Customer.name1   as PartnerName,
      Item.budat       as PostingDate,
      Item.bldat       as DocumentDate,
      Item.blart       as DocumentType,
      Item.waers       as Currency,
      Item.wrbtr       as AmountInCurrency,
      Item.dmbtr       as AmountInKrw,
      Item.hkont       as GlAccount,
      AcctText.txt50   as GlAccountName,
      Item.augbl       as ClearingDoc,
      Item.augdt       as ClearingDate
}
where Customer.vbund <> ''

매출 측 설계입니다. 매입은 BSIK·LFA1 로 같은 형태를 만들어 union 하고, 반제분은 BSAD·BSAK 를 더합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 요약 · 명세 2단
조회조건DatePicker · ComboBox · RadioButtonGroup
요약sap.ui.table.Table — 차액 있으면 행 강조
명세sap.ui.table.Table — 구분·관계사·거래처 3컬럼 고정
요약-명세 연동cellClick → 조회조건의 Trading Partner 설정 후 재조회
미결 강조RowSettings.highlight + 반제여부 컬럼
CSVBlob + UTF-8 BOM — 사양서 컬럼 순서

미결 금액을 요약에 함께 둔 이유

차액을 보면 바로 '왜 다르지'부터 묻게 되는데, 상당수는 반제 시점 차이입니다. 미결 매출·매입을 옆에 두면 차액 중 얼마가 아직 정리되지 않은 건인지 가늠할 수 있어 전표를 열기 전에 한 단계 걸러집니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.icrecon) · ko 로케일 · sap_horizon
Component.js조회조건 모델 · 결과 모델 초기화
view/Main.view.xml조회화면 + 관계사 요약 + 전표 명세
controller/Main.controller.js조회 · 구분 필터 · 요약 연동 · CSV
model/ModelMock.jsAR/AP 분기 조회 · 관계사별 집계 · 차액 계산
model/formatter.js금액(△ 표기) · 환율 · 구분 · 반제 · 차액 포맷터
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/icrecon.json내부거래 전표 시뮬레이션 데이터

검증 결과

화면 구성에 쓴 데이터는 관계사별 매출·매입이 섞인 내부거래 전표입니다.

데이터규모구성
전표23건매출 12 · 매입 11 · 미결 10
금액매출 369,983,300원매입 343,020,400 · 차액 26,962,900
관계사4곳KRW·USD·EUR 거래 혼재
검증 항목결과
모든 전표에 Trading Partner 가 등록됨 (T880 존재)통과
매출은 Customer, 매입은 Vendor 마스터에 존재통과
거래처의 Trading Partner 가 전표와 일치통과
매출은 차변·채권 계정, 매입은 대변·채무 계정통과
원화금액 = 거래통화금액 × 환율 · KRW 는 환율 1통과
전기일이 조회 기간 내 · 증빙일 ≤ 전기일통과
반제 건만 반제전표·반제일자 보유통과
반제일자는 전기일 이후통과
전표번호 중복 없음 · 금액 > 0통과
화면 렌더링 — 전체 → 매출 → 매입 → 관계사 필터 → 복귀6/6

관계사·거래처·금액은 모두 검증용 데이터입니다.

자주 묻는 질문

Trading Partner가 등록된 거래처만 보는 이유는?

내부거래는 관계사끼리의 거래이고, SAP은 그 관계를 거래처 마스터의 Trading Partner로 표시합니다. 이 값이 없으면 일반 외부 거래이므로 대사 대상이 아닙니다. 반대로 관계사인데 이 값이 비어 있으면 목록에 나오지 않으니, 차액이 이상할 때는 마스터 등록부터 확인해야 합니다.

대사 차액이 0이 아니면 무조건 문제인가요?

그렇지는 않습니다. 매출과 매입은 인식 시점이 다를 수 있습니다. 우리가 이번 달에 출하해 청구했는데 상대는 다음 달에 입고 처리하면 기간 차이로 차액이 납니다. 미결 금액을 함께 보여 주는 것도 그래서입니다. 시점 차이인지 금액 자체가 다른지를 먼저 가려야 합니다.

매출만 따로 보는 기능은 언제 쓰나요?

차액이 어느 방향에서 났는지 좁힐 때 씁니다. 매출만 보면 우리가 청구한 금액이, 매입만 보면 상대가 청구한 금액이 정리됩니다. 관계사에서 받은 명세와 대조할 때는 한쪽만 놓고 보는 편이 빠릅니다.

외화 거래는 어떻게 대사하나요?

화면은 원화 환산액으로 집계합니다. 다만 거래통화 금액과 적용 환율도 함께 보여 줍니다. 양쪽이 서로 다른 환율을 썼다면 거래통화 금액은 같은데 원화만 다를 수 있어, 두 값을 모두 확인해야 원인이 잡힙니다.

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

데이터는 BSID·BSAD·BSIK·BSAK 표준 구조 그대로이고 관계사는 T880을 참조합니다. 여기서 확인한 차액이 연결결산의 내부거래 제거분개로 이어지고, 전표 단위 확인은 표준 개별항목 조회 화면에서 계속할 수 있습니다.

내부거래 대사, 지금 쓰는 SAP 위에서 확장해 보세요

관계사별 차액이 먼저 보이면 연결결산 준비가 전표 뒤지기에서 확인 작업으로 바뀝니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

내부거래관계사 대사Trading PartnerT880BSIDBSIKOpenUI5