SAP 이연법인세자산 실현가능성 점검 — IAS 12, 결손금을 쓸 과세소득이 있는지부터 맞춰본다
세무상결손금을 장부에 자산으로 올리기 전에, 그 결손금을 실제로 쓸 과세소득이 언제 얼마나 있는지부터 연도별로 맞춰봤습니다
IAS 12 법인세(K-IFRS 제1012호)는 미사용 세무상결손금·미사용 세액공제·차감할 일시적차이에 대해, 이를 사용할 수 있는 미래 과세소득이 발생할 가능성이 높은 범위에서만 이연법인세자산을 인식하도록 합니다. 인식하지 않은 금액은 만료일과 함께 공시하고, 매 보고기간말에 다시 검토해야 합니다. 이 요구사항을 결산 전에 점검할 수 있도록 OpenUI5 화면으로 구현했습니다.
회사별로 향후 5개 연도의 추정 과세소득에 가산할 일시적차이 소멸액을 더해 사용 가능 과세소득을 구하고, 항목을 만료가 빠른 순서로 정렬해 만료 이전 연도의 과세소득부터 배분합니다. 배분된 만큼이 인식 산출액, 남는 만큼이 미인식액이며, 원장의 이연법인세자산 잔액과 대사해 차이가 발생한 항목을 “점검 필요”로 표시합니다. 인식하지 않은 금액은 만료구간별로 다시 모아 공시 초안 점검에 쓸 수 있게 했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 장부 인식액 — G/L 계정 잔액 조회(
FAGLB03)의 이연법인세자산 계정 잔액 구조를 그대로 이어받습니다 - 차이 추적 — G/L 개별 항목 조회(
FAGLL03)로 잔액을 구성하는 전표를 확인합니다 - 표시금액 대조 — 재무제표(
F.01)의 재무상태표 이연법인세자산 금액과 회사별 합계를 맞춰봅니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 법인세 결산 |
| 관련 기준서 | IAS 12 법인세(K-IFRS 제1012호) |
| Namespace | zui5.dtarecov |
| 셸 구조 | 조회조건 영역(우측 조회) + KPI 6종 + 탭 4개, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 4개) + 상세 다이얼로그 |
| SAP 표준 T-code | FAGLB03 · FAGLL03 · F.01 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·점검형 — 인식 여부의 최종 판단은 회사와 감사인이 수행 |
| UI 테마 | sap_horizon 단일 적용 |
| 요약 | 내용 |
|---|---|
| 무엇을 보나 | 항목별 잠재 이연법인세자산 · 인식 산출액 · 미인식액 · 장부 인식액 · 차이 |
| 어떤 기준으로 | 만료 이전 연도의 사용 가능 과세소득 범위에서만 인식 산출 |
| 무엇을 가려내나 | 장부-산출 차이 발생(점검 필요), 1년 이내 만료 미인식(확인 필요) |
| 공시 연결 | 미인식 금액을 만료구간(1년 이내 · 2~5년 · 6~10년 · 10년 초과 · 기한 없음)별로 집계 |
실제 화면 3종 둘러보기
기본 조건으로 조회하면 항목별 판정이 뜹니다 → 미래 과세소득 배분 탭에서 연도별 사용률을 보고 → 만료구간별 미인식 명세로 공시 금액을 확인하고 → 행을 클릭해 항목 상세를 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면에 들어오면 서비스 정의가 로드되는 즉시 기본 조건(기준연도 2026, 전체 회사)으로 자동 조회가 1회 실행됩니다.
- 조회조건 영역에서 기준연도(필수)를 고릅니다.
- 회사코드 · 항목 유형 · 판정 · 항목 ID(선택)로 범위를 좁힙니다. “전체”로 둔 조건은 조회 요청에서 빠집니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 같은 줄 왼쪽에 있으며 기본 조건으로 되돌리고 다시 조회합니다.
- KPI 6종(잠재 · 인식 산출 · 미인식 · 장부 인식 · 차이 · 점검/확인 건수)으로 전체 상태를 먼저 봅니다.
- 탭을 옮겨 ① 항목별 인식 판정 → ② 미래 과세소득 배분 → ③ 만료구간별 미인식 명세 → ④ 회사별 요약 순으로 확인합니다.
- ① 탭에서 행을 클릭하면 연도별 배분 내역과 대사 결과를 담은 상세 다이얼로그가 열립니다.
- 각 탭 오른쪽 위 CSV 내려받기(UTF-8 BOM)로 현재 탭의 결과를 저장합니다.
과세소득 배분과 인식 판정 규칙
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 장부 인식액 − 인식 산출액 ≠ 0 | 점검 필요 | 원장 잔액과 과세소득 추정·배분 근거를 대조해 차이 발생 원인을 확인 |
| 차이 0, 미인식액 > 0, 만료가 기준연도+1년 이내 | 확인 필요 | 소멸 예정 항목의 미인식 사유와 공시 반영 여부를 확인 |
| 차이 0, 미인식액 > 0, 만료 1년 초과 또는 기한 없음 | 일부 미인식 | 다음 보고기간말 재검토 대상으로 관리 |
| 차이 0, 미인식액 = 0 | 정상 | 별도 조치 불필요 |
배분 순서(만료가 빠른 순, 기한 없음은 마지막)와 추정 기간(5개 연도)은 회사 정책에 따라 달라질 수 있는 가정입니다. 세액공제는 공제액 ÷ 세율만큼의 과세소득이 필요하다고 보고 배분합니다.
이연법인세자산 산출·대사 5단계
| 단계 | 내용 |
|---|---|
| 1단계 | 연도별 사용 가능 과세소득 = 추정 과세소득 + 가산할 일시적차이 소멸 |
| 2단계 | 만료가 빠른 항목부터 만료 이전 연도의 과세소득을 배분 — 연도별 배분액 ≤ 사용 가능 과세소득 |
| 3단계 | 잠재 DTA = 필요 과세소득 × 세율, 인식 산출액 = 배분 과세소득 × 세율, 잠재 DTA = 인식 산출액 + 미인식 DTA |
| 4단계 | 차이 = 장부 인식액 − 인식 산출액 — 0 이 아니면 점검 필요 |
| 5단계 | 만료구간 소계 = Σ 유형별 미인식, 회사 합계 = Σ 구간 소계 = Σ 항목 미인식 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 기준연도 | 필수 | 보고기간말이 속한 연도 — 네 탭 모두에 적용 |
| 회사코드 | 선택(기본 전체) | 네 탭 모두에 적용 |
| 항목 유형 | 선택(기본 전체) | 세무상결손금 · 미사용 세액공제 · 차감할 일시적차이 — ① 탭에 적용 |
| 판정 | 선택(기본 전체) | 점검 필요 · 확인 필요 · 일부 미인식 · 정상 — ① 탭에 적용 |
| 항목 ID | 선택 | 특정 항목만 조회 — ① 탭에 적용 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 회사 · 항목 · 유형 | 회사코드·회사명, 항목 식별자, 결손금/세액공제/일시적차이 구분 |
| 발생연도 · 만료연도 · 만료구간 | 배분 가능 연도와 공시 구간의 기준 |
| 미사용 금액 · 필요 과세소득 · 잠재 DTA | 항목이 전액 쓰일 때의 이연법인세자산 |
| 배분 과세소득 · 인식 산출액 · 미인식 DTA · 인식률 | 과세소득 배분 결과 |
| 장부 인식액 · 차이 · 판정 | 원장 잔액과의 대사 결과 |
| 추정 과세소득 · 가산할 일시적차이 소멸 · 사용 가능 · 배분액 · 잔여 · 사용률 | ② 미래 과세소득 배분 탭 |
| 만료구간 · 건수 · 미인식 금액(과세표준) · 미인식 DTA | ③ 만료구간별 미인식 명세 탭(구간 소계 · 회사 합계 포함) |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 과세소득 배분·인식 한도 산출·대사 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
FAGLB03 | G/L 계정 잔액 조회 | 이연법인세자산 계정 잔액을 장부 인식액으로 받아 산출액과 대사합니다 |
FAGLL03 | G/L 개별 항목 조회 | 차이가 발생한 항목의 구성 전표를 추적하는 출발점이 됩니다 |
F.01 | 재무제표 | 재무상태표 이연법인세자산 표시금액과 회사별 합계를 대조합니다 |
IFRS 요구사항 매핑
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IAS 12(K-IFRS 제1012호) | 미사용 세무상결손금·세액공제의 이연법인세자산은 사용 가능한 미래 과세소득의 발생가능성이 높은 범위에서 인식 | ① 탭 인식 산출액·미인식 DTA | 결손금·공제 명세, 계획 손익 | 배분 순서는 회사 가정 |
| IAS 12(K-IFRS 제1012호) | 차감할 일시적차이의 이연법인세자산 인식 | 일시적차이 항목 배분 | 일시적차이 명세 | - |
| IAS 12(K-IFRS 제1012호) | 이연법인세자산과 미인식 이연법인세자산의 보고기간말 재검토 | 기준연도별 재산출 · 장부 대사 | G/L 잔액 | 차이는 점검 필요로 표시 |
| IAS 12(K-IFRS 제1012호) | 인식하지 않은 차감할 일시적차이·결손금·세액공제 금액과 만료일 공시 | ③ 탭 만료구간별 미인식 명세 | ① 탭 산출 결과 | 공시 문안은 회사 작성 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
ACDOCA | RBUKRS · GJAHR · RACCT · HSL | 유니버설 저널 — 이연법인세자산 계정 잔액(장부 인식액) |
ACDOCP | RBUKRS · GJAHR · RACCT · HSL | 계획 데이터 — 추정 과세소득의 출발점(계획 손익) |
T001 | BUKRS · BUTXT · WAERS | 회사코드 — 회사명·통화 |
SKA1 / SKB1 | SAKNR | G/L 계정 마스터 — 이연법인세자산 계정 범위 |
define view entity ZI_DtaBookedBalance
as select from I_JournalEntryItem
{
key CompanyCode,
key FiscalYear,
key AssignmentReference as AttrId,
sum( AmountInCompanyCodeCurrency ) as BookedDta
}
where Ledger = '0L'
and GLAccount between '0001180000' and '0001189999'
group by CompanyCode, FiscalYear, AssignmentReference
세무상결손금·세액공제·일시적차이 명세는 표준 테이블이 없어 세무조정 결과를 별도로 관리하는 구조를 가정했습니다. 계정 범위와 항목 구분 기준은 가상 데이터 기준 스케치입니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · KPI 6종 · IconTabBar 4개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩하고, 최초 바인딩은 보류했다가 조회 시 필터를 건 뒤 재개합니다 |
| 조회조건 | sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 정렬은 Sorter, 페이징은 테이블 스크롤로 모델이 처리합니다 |
| 항목별 판정 · 만료구간 명세 | sap.ui.table.Table — 컬럼 16개 다건 그리드, 판정·소계 행은 표준 강조색으로 구분하고 cellClick 으로 상세를 엽니다 |
| 과세소득 배분 · 회사별 요약 · 상세 배분 내역 | sap.m.Table |
| KPI | 회사별 요약 엔티티셋을 같은 조건으로 읽어 컨트롤러 한 곳에서 합산합니다. 금액은 문자열로 오는 Decimal 을 숫자로 바꿔 계산합니다 |
| 예외 메시지 | 메타데이터 실패·요청 실패·빈 결과를 구분해 안내하는 전용 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 모델 초기화, 예외 메시지 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.dtarecov · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · KPI · 4개 탭 |
view/DetailDialog.fragment.xml | 항목 상세(연도별 배분) 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · KPI · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/formatter.js · model/ErrorHandler.js | 표시 서식·판정 상태 · 예외 메시지 처리 |
i18n/i18n_ko.properties | 화면 문구 |
검증 결과
검증용 샘플 데이터(가상 4개 회사 · 2개 기준연도 · 항목 79건 · 연도별 배분 69건)를 기준으로 대사식을 전수 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 잠재 DTA = 인식 산출액 + 미인식 DTA (항목별) (79건) | 통과(차이 0) |
| 잠재 DTA = 필요 과세소득 × 세율 (79건) | 통과(차이 0) |
| 인식 산출액 = 배분 과세소득 × 세율 (79건) | 통과(차이 0) |
| 항목 배분 과세소득 = Σ 연도별 배분 내역 (79건) | 통과(차이 0) |
| 사용 가능 과세소득 = 추정 과세소득 + 가산할 일시적차이 소멸 (40건) | 통과(차이 0) |
| 잔여 = 사용 가능 − 배분액, 배분액 = Σ 항목 배분 (80건) | 통과(차이 0) |
| 배분 한도(연도별 배분 ≤ 사용 가능, 만료 후 배분 없음) (109건) | 통과(차이 0) |
| 회사별 요약 = Σ 항목(잠재·인식·미인식·장부·차이) (40건) | 통과(차이 0) |
| 만료구간 명세: 구간 소계 = Σ 유형, 회사 합계 = Σ 소계 = Σ 항목 미인식 (68건) | 통과(차이 0) |
| 차이 = 장부 인식액 − 인식 산출액 (79건) | 통과(차이 0) |
| 점검 기능 확인용 의도적 예외(장부 인식액을 산출액과 다르게 둔 항목) | 4건 — 모두 “점검 필요”로 판정, 예외 외 차이 0건 |
| 화면 KPI · 만료구간 회사 합계 · 상세 배분 합계 = 검증 스크립트 결과 | 일치 |
| 조회 조건 전달 — 기준연도·회사·유형·판정·항목 필터 · 정렬 · 총건수 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 | 0건 |
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다. 이연법인세자산 인식에 대한 최종 회계 판단은 회사와 감사인이 수행합니다.
자주 묻는 질문
이 화면이 다루는 기준서와 적용 시기는 어떻게 되나요?
현행 IAS 12 법인세(K-IFRS 제1012호)의 이연법인세자산 인식·재검토·미인식 금액 공시 요구사항을 다룹니다. 특정 개정 기준서의 시행에 맞춘 화면이 아니라 매 보고기간말 결산에 쓰는 점검 화면입니다.
"점검 필요"로 표시되면 회계처리가 잘못됐다는 뜻인가요?
아닙니다. 원장에 인식된 이연법인세자산과 화면이 산출한 인식액 사이에 차이가 발생했다는 뜻입니다. 이 화면은 분류·집계·대사를 돕는 점검 도구이며, 과세소득 추정의 합리성과 인식 여부에 대한 최종 판단은 회사와 감사인이 합니다.
과세소득을 만료가 빠른 항목부터 배분하는 이유는 무엇인가요?
만료 전에 써야 하는 항목부터 과세소득을 쓰는 가정을 기본값으로 둔 것입니다. 회사의 세무 계획이나 법령상 공제 순서가 다르면 그 가정에 맞춰 배분 규칙을 조정해야 합니다.
추정 과세소득 데이터는 어디서 가져오나요?
화면은 OData 서비스 모델에 바인딩되어 조회조건에 맞춰 데이터를 불러옵니다. 추정 과세소득은 계획 손익에 세무조정 추정을 더하는 구조를 가정하며, 이 글의 화면은 검증용 샘플 데이터를 기준으로 캡처했습니다.