솔루션 홈
VAT Recon · 세무

SAP 부가세 신고-원장 대사 — 신고서와 세금계정이 같은가

부가세 신고서의 매출세·매입세와 총계정원장 세금계정 잔액을 세목별로 맞춰, 차이가 난 세목을 결산 전에 찾아내는 화면입니다.

부가세 신고서는 세무서로 나가고, 세금계정 잔액은 재무제표에 남습니다. 이 둘이 다르면 어느 쪽이 틀렸는지를 신고 전에 밝혀야 합니다.

차이는 대개 세금코드가 잘못 붙은 전표나, 세금 라인 없이 직접 전기한 건에서 생깁니다. 표준 세금 라인과 원장 구조를 그대로 이어받아 세목 단위로 대사하도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.

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

  • 세금코드 — TaxCode 와 세목 텍스트로 매출세·매입세 구분
  • 세금계정 — 세금코드에 연결된 GL 계정(GlAccount)과 명칭
  • 과세표준과 세액 — 신고 기준 금액과 세율(TaxRate)
  • 원장 잔액 — 세금계정의 총계정원장 잔액(GLTaxAmount)
  • 기간 — 회계연도와 기간 단위 집계
항목내용
업무 영역재무회계(FI) · 세무 · 결산 마감
Namespacezui5.taxrecon
셸 구조조회조건 영역(우측 조회·초기화) + 세목별 대사, 행 선택 시 전표 목록
화면 수조회 화면 1개 + 전표 상세
데이터원장 세금 64건 · 신고 세액 64건
성격조회형(Read-Only) — 전기와 신고는 표준 절차가 담당
UI 테마sap_horizon 단일 적용

실제 화면 3종 둘러보기

회사코드·회계연도·기간으로 조회하면 세목별 신고 세액과 원장 잔액이 나란히 나옵니다 → 차이가 있는 세목을 가려내고 → 행을 눌러 그 세목의 전표를 확인합니다.

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

VAT Recon — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·회계연도·기간·세금코드를 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
VAT Recon — 세목별 대사
메인화면 — 신고 세액과 원장 잔액
메인화면 — 신고 세액과 원장 잔액 — 세금코드·세목·세율·세금계정과 함께 과세표준·신고 세액·원장 잔액·차이가 이어집니다. 차이가 0이 아닌 세목은 상태 색으로 먼저 보입니다.
VAT Recon — 전표 목록
상세 다이얼로그 — 세목을 구성한 전표
상세 다이얼로그 — 세목을 구성한 전표 — 행을 고르면 그 세목에 속한 전표가 펼쳐집니다. 건수와 금액을 대조해 어느 전표가 차이를 만들었는지 좁힐 수 있습니다.

조작 방법

  1. 회사코드회계연도·기간을 고릅니다. 신고 기간 단위로 보는 것이 일반적입니다.
  2. 세금코드로 특정 세목만 볼 수 있습니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  4. 차이 열이 0이 아닌 세목부터 봅니다.
  5. 전표 건수가 함께 표시되므로 몇 건을 확인해야 하는지 미리 알 수 있습니다.
  6. 행을 선택하면 전표 목록이 열립니다. 차이 사유를 기록해 둘 수 있습니다.
  7. 결과는 CSV 다운로드로 내려받아 신고 조서에 첨부합니다.

대사 산식

같은 세액을 신고 기준과 원장 기준으로 각각 구해 비교합니다.

신고 세액 = 과세표준 × 세율
원장 잔액(GLTaxAmount) = 세금계정의 기간 잔액
차이       = 신고 세액 − 원장 잔액

차이 = 0   →  일치
차이 ≠ 0   →  세금코드 오류 · 직접 전기 · 기간 귀속 확인

세목 구분  O 매출세 (예수금)
           I 매입세 (대급금)

세목 단위로 나눠 보는 이유

매출세와 매입세를 합쳐 순액으로만 보면 양쪽이 같은 금액으로 틀렸을 때 차이가 0으로 나옵니다. 세목별로 나누면 그런 상쇄가 사라지고, 표준세율·영세율·면세 중 어디서 어긋났는지까지 좁혀집니다.

차이가 생기는 네 가지 경로

경로상황확인 방법
세금코드 오류거래에 맞지 않는 세금코드 적용전표별 세금코드 확인
직접 전기세금 라인 없이 세금계정에 직접 전기해당 전표 식별
기간 귀속 차이신고 기간과 전기 기간이 다름기간 이동 건 확인
수정 신고 미반영수정 사항이 원장에만 반영수정 내역 대조

조회조건

필드필수설명
회사코드 Bukrs필수대상 회사코드
회계연도 Gjahr필수신고 연도
기간 Monat필수신고 기간
세금코드 TaxCode선택특정 세목만
세목 구분 TaxType선택매출세 / 매입세
상태선택전체 / 차이 발생만

결과 컬럼

컬럼의미 · 표시
세금코드 TaxCode · TaxCodeText세목 코드와 명칭
세목 구분 TaxType매출세(O) / 매입세(I)
세율 TaxRate적용 세율
세금계정 GlAccount · GlAccountText예수금 · 대급금 계정
과세표준 ReturnBase신고 기준 금액
신고 세액과세표준 × 세율
원장 잔액 GLTaxAmount세금계정 잔액
차이신고 − 원장. 0이 아니면 경고 색
전표 건수 DocCount해당 세목 전표 수
차이 사유 VarianceReason담당자 기록

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
S_ALR_87012357부가세 신고 리포트신고 세액과 원장 잔액을 나란히 대사
F.12세금 명세세목별 차이와 전표 건수를 함께 표시
BSET전표 세금 라인 — 과세표준 · 세액신고 세액 원천
ACDOCA · FAGLFLEXA세금계정 잔액원장 잔액 원천
T007A · T007S세금코드와 텍스트세목 명칭과 세율

도입 시 확인이 필요한 부분

세금코드와 세금계정의 매핑이 1:1이 아닐 수 있습니다. 여러 세금코드가 한 계정을 쓰면 계정 단위 잔액을 세목별로 쪼갤 수 없으므로, 대사 단위를 계정 기준으로 볼지 세금코드 기준으로 볼지 정해야 합니다. 해외 사업장이 있으면 국가별 세금 체계도 함께 고려합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCTAXRECON'
@EndUserText.label: '부가세 신고-원장 대사 (Z)'
define view Z_C_TAX_RECONCILIATION
  as select from bset as TaxLine
    inner join      bkpf  as Header   on TaxLine.bukrs = Header.bukrs
                                     and TaxLine.belnr = Header.belnr
                                     and TaxLine.gjahr = Header.gjahr
    left outer join t007s as TaxText  on TaxLine.mwskz = TaxText.mwskz
                                     and TaxText.spras = 'K'
{
  key TaxLine.bukrs,
  key TaxLine.gjahr,
  key Header.monat  as Monat,
  key TaxLine.mwskz as TaxCode,
      TaxText.text1 as TaxCodeText,
      TaxLine.hkont as GlAccount,
      sum( TaxLine.hwbas ) as ReturnBase,
      sum( TaxLine.hwste ) as ReturnTax,
      count( distinct TaxLine.belnr ) as DocCount
      // 원장 잔액은 ACDOCA 세금계정 집계 뷰와 조인해 차이를 계산
}
group by TaxLine.bukrs, TaxLine.gjahr, Header.monat,
         TaxLine.mwskz, TaxText.text1, TaxLine.hkont

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 대사 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
대사 테이블sap.m.Table — 신고·원장·차이를 인접 배치
차이 표시sap.m.ObjectStatus — 일치 / 차이 발생
상세 화면sap.m.Dialog — 세목별 전표 목록

차이 사유를 기록란으로 둔 이유

모든 차이가 오류는 아닙니다. 기간 귀속 때문에 생긴 정당한 차이도 있고, 다음 기에 자동으로 해소됩니다. 사유를 적어 두면 다음 달에 같은 차이를 다시 조사하지 않게 되고, 감사에서 설명 자료가 됩니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.taxrecon) · ko 로케일
view/Main.view.xml조회조건과 대사 테이블
controller/Main.controller.js조회 · 차이 계산 · 전표 상세 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 세율 · 차이 상태 색 포맷터
localdata/gltax.json원장 세금 64건
localdata/taxreturn.json신고 세액 64건

검증 결과

검증 항목결과
신고 세액 = 과세표준 × 세율 (전 건)통과
차이 = 신고 세액 − 원장 잔액통과
전표 건수 = 상세 목록 건수통과
세목 구분과 세금계정 성격 정합 (매출세↔예수금)통과
세금코드가 있으면 명칭·세율도 존재통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처3/3
테마 런타임 확인sap_horizon

자주 묻는 질문

차이가 나면 신고를 미뤄야 하나요?

아닙니다. 원인이 기간 귀속이면 신고는 그대로 하고 원장 쪽에서 다음 기에 해소됩니다. 다만 세금코드 오류라면 전표를 고친 뒤 신고해야 하므로 원인 구분이 먼저입니다.

세금 라인 없이 직접 전기한 건은 어떻게 찾나요?

원장 잔액에는 잡히는데 신고 세액에는 없는 금액이 그것입니다. 세목별 차이가 원장 쪽으로 크게 나면 해당 계정의 전표를 세금 라인 유무로 걸러 확인합니다.

매출세와 매입세를 함께 보나요?

한 화면에서 보되 세목별로 행이 나뉩니다. 순액으로 합치면 양쪽 오류가 상쇄돼 보이지 않으므로 반드시 나눠서 대사합니다.

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

세금 라인은 전기 시 표준이 자동으로 만들고 신고 리포트도 표준이 제공합니다. 이 화면은 그 신고 세액과 세금계정 원장 잔액을 세목 단위로 맞춰, 신고 전에 차이를 찾아내는 확장입니다.

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

신고서와 장부가 어디서 갈라졌는지가 세목으로 보이면 신고 전 점검이 짧아집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

부가세 대사세금계정매출세예수금매입세대급금세목결산VATOpenUI5