SAP 법인세 세무조정 항목 점검 — 신고서 합계와 원장 집계, 한 화면에서 맞춰본다
세무조정 항목을 유형별로 분류하고 신고서 합계와 원장 집계 합계를 대사해 완비성을 점검합니다
법인세 신고서를 쓸 때 익금산입·손금산입 항목을 하나하나 유형별로 분류하고 나면, 정작 그 분류가 신고서 합계와 정확히 맞는지는 별도로 대조해 보기 전에는 확신하기 어렵습니다. 증빙이 빠진 항목이나 같은 계정이 두 유형에 겹쳐 분류된 항목은 더더욱 눈에 띄지 않습니다.
세무조정 항목을 익금산입(유보·기타사외유출·배당·기타)·손금산입(유보·기타) 6개 유형으로 분류·집계하고, 신고서 합계와 원장 집계 합계를 대사해 차이 여부를 가려내며, 증빙 미비·중복분류 의심 건수까지 함께 점검하는 화면을 OpenUI5로 구현했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 표준 전표 조회(
FB03) — 세무조정 항목의 근거가 되는 전표를 표준 화면 그대로 조회할 수 있습니다 - 계정별 원장 조회(
FBL3N)의 데이터 구조를 그대로 이어받아, 계정별 집계와 대사에 활용합니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 세무 대응 |
| 대상 영역 | 법인세 세무조정 항목 분류·완비성 점검 — 유형별 집계, 신고서-원장 대사 |
| Namespace | zui5.taxadj |
| 셸 구조 | 조회조건 영역(우측 조회) + 명세/집계/대사결과 탭, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 3개) + 상세 다이얼로그 |
| SAP 표준 T-code | FB03 · FBL3N |
| 데이터 연동 방식 | OData V2 — 탭마다 엔티티셋에 조건을 실어 개별 조회 |
| 성격 | 조회·대사·점검형 — 최종 분류·신고 판단은 화면 밖에서 회사와 세무대리인이 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
조회조건을 넣고 조회하면 조정 항목 명세가 뜹니다 → 유형별 집계 탭에서 조정유형별 합계를 확인하고 → 대사 결과 탭에서 신고서 합계와 원장 집계 합계의 차이를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면 진입 시 회계연도 기준으로 자동 조회가 한 번 실행됩니다.
- 회계연도(필수)를 선택하고, 조정유형·영구/일시·증빙상태(선택)는 필요할 때만 좁혀 선택합니다. "전체"를 고르면 해당 조건은 조회에서 빠집니다.
- 계정(선택) 입력란은 값을 넣고 Enter 키를 누르면 바로 조회됩니다.
- 조회조건 영역 오른쪽 끝의 조회 버튼을 눌러도 같은 결과가 나오며, 초기화 버튼은 조건을 기본값으로 되돌립니다.
- 조정 항목 명세 탭 제목 옆 괄호 안 숫자가 현재 조회 건수입니다.
- 유형별 집계 탭에서 조정유형별 항목건수·합계금액과 전체 합계를 확인합니다.
- 대사 결과 탭에서 신고서 합계·원장 집계 합계·차이·증빙미비 건수·중복분류의심 건수를 카드로 확인하고, 대사 재실행 버튼으로 다시 계산할 수 있습니다.
- 명세 표의 행을 클릭하면 해당 항목의 상세 다이얼로그가 열립니다.
- 명세 탭 우측 상단 CSV 다운로드(UTF-8 BOM)로 현재 조회 결과를 저장할 수 있습니다.
분류·완비성 판정 로직
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 조정 항목의 증빙상태 = 미비 | 증빙 미비 | 비고에 표시된 안내에 따라 증빙 서류를 재확인합니다 |
| 같은 계정이 서로 다른 조정유형으로 중복 분류된 것으로 표시 | 중복분류의심 | 어느 유형이 맞는 분류인지 재검토하고 하나로 정리합니다 |
| 신고서 합계 − 원장 집계 합계 = 0 | 일치 | 별도 조치가 필요하지 않습니다 |
| 신고서 합계 − 원장 집계 합계 ≠ 0 | 확인 필요 | 대사 결과 탭에서 차이 금액을 확인하고 신고서 작성 근거와 원장 집계 범위를 재대사합니다 |
이 화면이 대신 정하지 않는 것
판정 결과는 확인이 필요한 항목을 알리는 표시일 뿐입니다. 세무조정 항목의 최종 분류와 신고 반영 여부는 회사와 세무대리인(감사인)이 판단합니다.
집계·대사 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 조정 항목 명세를 회계연도·조정유형·영구/일시·증빙상태·계정 조건으로 조회한다 |
| 2단계 | 조정유형별로 항목건수와 조정금액을 합산해 유형별 소계를 만든다 |
| 3단계 | 모든 유형의 소계를 다시 더해 전체 합계 행을 만든다 |
| 4단계 | 전체 합계(=원장 집계 합계)를 신고서 합계(소득금액조정합계표 신고 금액)와 대사해 차이를 계산한다 |
| 5단계 | 증빙상태 미비 건수와 중복분류의심 건수를 별도로 집계해 완비성 점검 결과로 표시한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 대상 회계연도를 선택합니다. |
| 조정유형 / 영구·일시 / 증빙상태 | 선택 | "전체" 선택 시 해당 조건 없이 조회됩니다. |
| 계정 | 선택 | 계정 코드 일부를 입력(부분일치)하고 Enter로 조회합니다. |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 연도 / 항목번호 | 조정 항목의 키 |
| 계정 / 계정명 | 세무조정이 발생한 계정(가상 계정체계) |
| 조정유형 / 영구·일시 | 익금산입·손금산입 세부 유형과 영구차이·일시차이 구분 |
| 조정금액 / 세효과금액 | 세효과금액은 가정 실효세율을 적용한 참고용 계산값입니다 |
| 증빙상태 / 중복분류의심 | 완비성 점검 결과 표시 |
| 비고 | 완비성 점검 결과에 대한 안내 문구 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터를 이어받아 세무조정 유형별 분류와 신고서 대사 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
FB03 | 전표 조회 | 조정 항목의 근거 전표를 조회하는 표준 화면을 그대로 활용합니다 |
FBL3N | 계정별 원장(라인아이템) 조회 | 계정별 데이터 구조를 이어받아 세무조정 유형 분류와 집계·대사에 활용합니다 |
소득금액조정합계표 작성 자체에 정확히 대응하는 SAP 표준 T-code는 확인하지 못했습니다. 국내 법인세 신고 특화 업무로, 표준 전표·원장 조회 기능 위에 이 화면의 분류·대사 로직을 더했습니다.
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
BKPF | BUKRS · GJAHR | 전표 헤더 — 회계연도의 원천 |
BSEG | HKONT · DMBTR | 전표 명세 — 계정·금액의 원천 |
SKA1 / SKAT | SAKNR · TXT50 | 계정 마스터 / 텍스트 — 계정명의 원천 |
define view entity ZI_TaxAdjustmentItem
as select from bseg as adj
association [1..1] to ska1 as _Account
on $projection.CompanyCode = _Account.Bukrs
and $projection.GLAccount = _Account.Saknr
{
key adj.gjahr as FiscalYear,
key adj.buzei as ItemNo,
adj.bukrs as CompanyCode,
adj.hkont as GLAccount,
_Account
// 세무조정 유형·영구/일시 구분·증빙상태는 별도 분류 관리 항목이며 확인이 필요합니다
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · IconTabBar(명세/집계/대사결과) |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 탭마다 엔티티셋에 조건을 실어 개별 조회합니다. 모델 설정은 useBatch:false |
| 조회조건 | sap.m.Select · sap.m.Input — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 명세 목록 | 컬럼 11개로 sap.ui.table.Table 사용, cellClick에서 행 컨텍스트로 상세 다이얼로그를 엽니다 |
| 점검결과 표시 | sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 화면 상태 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.taxadj · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 명세/집계/대사결과 탭 |
view/DetailDialog.fragment.xml | 조정 항목 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액 · 상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 2개 회계연도(2025·2026) 총 46건을 기준으로, 유형별 집계 합계가 명세 합계와 일치하도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 유형별 집계 합계 = 명세 합계(46건 전수 대사) | 통과(차이 0) |
| 신고서 합계 vs 원장 집계 합계 대사(2개 연도) | 2025년 일치 · 2026년 차이 150,000(의도적 검증용 예외) |
| 증빙미비·중복분류의심 판정 분포(의도적 구성) | 증빙미비 3건 · 중복분류의심 3건 |
| 조회 조건 전달 — 계정 필터·정렬 결과 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 집계 전환 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면은 언제부터 사용할 수 있나요
화면 자체는 즉시 사용할 수 있는 조회·점검 도구입니다. 다만 세무조정 항목의 실제 확정과 신고서 반영 시점은 회사의 결산·신고 일정에 따릅니다.
차이가 표시되면 어떻게 해야 하나요
화면은 차이 발생 사실만 확인 필요로 보여줍니다. 원인 분석과 조정은 회사와 세무대리인(감사인)이 판단합니다.
세효과금액은 실제 납부세액인가요
아닙니다. 가정 실효세율을 적용한 참고용 계산값이며, 실제 세율과 세액은 신고 시점 기준으로 별도 확인이 필요합니다.
중복분류의심으로 표시된 항목은 잘못된 것인가요
같은 계정이 서로 다른 조정유형으로 분류된 것으로 보여 재검토가 필요하다는 뜻이며, 최종적으로 오류인지 여부는 화면이 단정하지 않습니다.
신고서 합계와 원장 집계, 미리 맞춰 보세요
세무조정 항목을 유형별로 나눠 적는 것과, 그 합계가 원장과 정확히 맞는지 확인하는 것은 다른 작업입니다. 화면에서 분류 완비성과 신고서-원장 대사를 미리 점검해 두면 신고 전 재작업을 줄일 수 있습니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
| 관련 글 | 차이점 |
|---|---|
| SAP 법인세비용 유효세율 조정표 | 예상세액과 실제세액의 세율 차이 분석 — 이 화면은 세무조정 항목 자체의 분류 완비성과 신고서-원장 대사에 초점 |