솔루션 홈
VAT Return · 세무

SAP 부가세 신고서 작성 — 집계에서 서식까지 이어 붙이기

신고 기간의 매출·매입 자료를 집계해 신고서 항목에 채우고, 거래처 건수와 함께 제출 자료를 만드는 화면입니다.

부가세 신고서는 칸이 정해진 서식입니다. 그런데 그 칸을 채우는 숫자는 여러 집계를 거쳐야 나옵니다. 매출과 매입을 세금코드별로 나누고, 거래처별로 건수를 세고, 영세율과 면세를 따로 뽑아야 합니다.

엑셀로 옮기며 정리하면 옮기는 과정에서 오류가 납니다. 표준 세금 라인 구조를 그대로 이어받아 집계와 서식 항목을 바로 잇도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면을 함께 공개합니다.

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

  • 전표 키 — 회사코드(BUKRS) · 전표번호(BELNR)
  • 사업장 — 신고 단위 사업장 정보
  • 세금 라인 — 세금코드별 과세표준과 세액
  • 거래처 건수 — 유형별 거래처 수(BP_CNT)
  • 주소 — 신고 주체 정보(ADDR)
항목내용
업무 영역재무회계(FI) · 세무 신고
Namespacefi089_vatreturn
셸 구조조회조건 영역 + 신고서 항목 + 거래처 집계
화면 수조회·작성 화면 1개
데이터신고 집계와 거래처 건수 등 다중 엔티티
성격조회·작성형 — 실제 신고는 외부 시스템
산출물신고서 항목값과 합계표 근거
UI 테마sap_horizon 단일 적용

실제 화면 1종 둘러보기

회사코드·사업장·신고 기간으로 집계하면 신고서 항목이 채워집니다 → 거래처 건수와 세액을 확인하고 → 제출 자료로 내려받습니다.

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

VAT Return — Main.view.xml
신고서 항목과 집계
신고서 항목과 집계 — 회사코드·사업장·신고 기간을 고르면 매출과 매입이 유형별로 집계되고 신고서 항목에 채워집니다. 거래처 건수와 세액이 함께 표시되고, 신고 주체 정보도 확인됩니다.

조작 방법

  1. 회사코드사업장을 고릅니다. 사업장이 신고 단위입니다.
  2. 신고 기간을 지정합니다. 예정·확정 구분에 맞춥니다.
  3. 집계하면 신고서 항목이 채워집니다.
  4. 과세·영세율·면세가 구분돼 있는지 확인합니다.
  5. 거래처 건수를 확인합니다. 세금계산서 합계표 매수와 맞아야 합니다.
  6. 납부세액이 매출세액 − 매입세액과 일치하는지 봅니다.
  7. 결과는 다운로드로 내려받아 신고 시스템에 전달합니다.

집계 규칙

세금코드로 유형을 나누고, 유형마다 과세표준과 세액을 모읍니다.

매출 집계  과세 · 영세율 · 면세로 구분
매입 집계  일반 매입 · 고정자산 매입 · 불공제로 구분

매출세액 = Σ(과세 매출 과세표준 × 세율)
매입세액 = Σ(공제 가능 매입 세액)
납부세액 = 매출세액 − 매입세액

거래처 건수  유형별 거래처 수 → 세금계산서 합계표 근거

거래처 건수를 함께 세는 이유

신고서에는 금액만 들어가지만 세금계산서 합계표에는 거래처 수와 매수가 들어갑니다. 금액 집계와 건수 집계를 따로 하면 기준이 어긋나 두 서식이 맞지 않습니다. 같은 집계에서 함께 세면 그런 불일치가 생기지 않습니다.

신고서 작성 4단계

단계내용산출물
① 자료 집계기간 내 세금 라인 수집유형별 금액
② 항목 배정신고서 칸에 배치신고서 항목값
③ 건수 집계거래처 수와 매수합계표 근거
④ 제출신고 시스템 전송신고 완료

조회조건

필드필수설명
회사코드 BUKRS필수신고 주체
사업장필수신고 단위 사업장
신고 기간필수예정 · 확정 구분
세금코드선택특정 유형만 확인
전기일선택기간 세부 조정

결과 컬럼

신고서 항목

항목내용
매출 — 과세과세표준과 세액
매출 — 영세율과세표준 (세액 0)
매출 — 면세면세 공급가액
매입 — 일반공급가액과 세액
매입 — 고정자산별도 항목
매입 — 불공제공제되지 않는 매입
납부세액매출세액 − 매입세액

거래처 집계

항목내용
거래처 건수 BP_CNT유형별 거래처 수
매수세금계산서 발행·수취 매수
금액 합계유형별 합계

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
S_ALR_87012357부가세 신고 리포트신고서 항목 배치와 건수 집계 추가
F.12세금 명세유형별 상세 확인
BSET전표 세금 라인집계 원천
BKPF · BSEG전표 헤더와 라인거래처 정보
T007A세금코드 설정유형 구분

도입 시 확인이 필요한 부분

신고서 서식은 법령 개정에 따라 바뀝니다. 항목 구성이 화면에 고정돼 있으면 개정 때마다 개발이 필요합니다. 세금코드와 신고서 항목의 매핑을 설정으로 관리하면 서식 변경에 대응하기 쉽습니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCVATRETURN'
@EndUserText.label: '부가세 신고서 집계 (Z)'
define view Z_C_VAT_RETURN_FORM
  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 bseg as Line   on TaxLine.bukrs = Line.bukrs
                                 and TaxLine.belnr = Line.belnr
                                 and TaxLine.gjahr = Line.gjahr
{
  key TaxLine.bukrs,
  key TaxLine.gjahr,
  key Line.bupla  as Bupla,
  key TaxLine.mwskz as TaxCode,
      sum( TaxLine.hwbas ) as TaxBase,
      sum( TaxLine.hwste ) as TaxAmount,
      count( distinct coalesce( Line.kunnr, Line.lifnr ) ) as PartnerCount,
      count( distinct TaxLine.belnr ) as DocCount
      // 세금코드 → 신고서 항목 매핑은 설정 테이블로 관리
}
group by TaxLine.bukrs, TaxLine.gjahr, Line.bupla, TaxLine.mwskz

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

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 신고서 항목 · 거래처 집계
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
신고서 항목sap.m.Table — 서식 순서대로 배치
거래처 집계sap.m.Table — 유형별 건수와 금액
금액sap.m.ObjectNumber — 우측정렬

서식 순서대로 배치한 이유

신고서에 옮겨 적을 때 화면 순서와 서식 순서가 다르면 칸을 찾아가며 옮기게 됩니다. 그 과정에서 줄을 착각하는 실수가 나옵니다. 화면을 서식과 같은 순서로 두면 위에서 아래로 그대로 옮길 수 있습니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — ko 로케일 · sap_horizon
view/Main.view.xml조회조건 · 신고서 항목 · 거래처 집계
controller/Main.controller.js집계 · 항목 배정 · 건수 산출 · 다운로드
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 건수 포맷터
localdata/HeadsDraft.json신고 집계 데이터
localdata/ZFCMC_F07_C002*.json신고 관련 엔티티

검증 결과

검증 항목결과
납부세액 = 매출세액 − 매입세액통과
세액 = 과세표준 × 세율 (유형별)통과
영세율 건은 세액 0통과
거래처 건수 = 중복 제거한 거래처 수통과
신고서 항목 합계 = 원천 세금 라인 합계통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 집계 실동작 후 캡처통과
테마 런타임 확인sap_horizon

자주 묻는 질문

서식이 바뀌면 화면을 고쳐야 하나요?

매핑을 설정으로 관리하면 개발 없이 대응할 수 있습니다. 세금코드와 신고서 항목의 연결을 테이블로 두면 항목이 추가돼도 설정만 바꾸면 됩니다.

불공제 매입은 왜 따로 잡나요?

세액을 공제받지 못하는 매입이기 때문입니다. 접대비나 비영업용 승용차 관련 매입이 여기 들어가며, 신고서에도 별도 칸이 있습니다.

거래처 건수가 합계표와 다르면요?

집계 기준이 다른 것입니다. 한 거래처와 여러 건을 거래했을 때 거래처 수로 셀지 매수로 셀지에 따라 숫자가 달라지므로 기준을 맞춰야 합니다.

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

세금 라인과 집계는 표준이 제공합니다. 이 화면은 그 집계를 신고서 서식 순서로 배치하고 거래처 건수까지 함께 산출해, 옮겨 적는 과정을 줄이는 확장입니다.

부가세 신고서 작성, 지금 쓰는 SAP 위에서 확장해 보세요

집계에서 서식까지 이어지면 옮겨 적다 생기는 오류가 사라집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

부가세 신고서신고서 작성매출세액매입세액합계표거래처 건수OpenUI5