SAP 정기보고서 재무제표 공시 초안 작성기 — 시산표로 DART 공시까지 한 번에
시산표 하나로 재무제표 4종을 자동 집계하고, 공시서식 초안(HTML)과 재무제표 XBRL(XML) 초안까지 함께 만듭니다
결산이 끝나면 재무상태표·손익계산서·자본변동표·현금흐름표를 다시 한 번 정리해 DART(전자공시시스템) 정기보고서 공시서식에 옮기고, 재무제표는 별도로 XBRL 태깅까지 해야 합니다. 이 과정을 스프레드시트로 손으로 진행하면 시산표와 공시 문서 사이에서 숫자가 틀어지거나, 임원·주주·계열회사 같은 첨부 현황을 빠뜨리기 쉽습니다.
결산이 끝난 시산표를 표준분류코드로 재무제표 항목에 매핑해 재무상태표·손익계산서·자본변동표· 현금흐름표를 자동 집계하고, 항등식이 실제로 맞는지 실시간으로 검증하면서 DART 정기보고서 공시서식 초안(HTML)과 재무제표 XBRL 초안(XML)을 함께 만들도록 OpenUI5 화면으로 확장했습니다. 시산표만으로 채우기 어려운 임원·주주·계열회사 현황은 엑셀 템플릿을 내려받아 채운 뒤 업로드하면 그대로 반영됩니다. 실제 구동 화면 6종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 전표 원천 —
ACDOCA라인(계정·기간·회사코드·금액) 구조를 그대로 사용 - 계정 마스터 — 표준 G/L 계정 구조 위에 표준분류코드(재무제표 항목 매핑)를 얹어 시산표를 구성
- 표준 화면 — G/L 계정별 잔액(FAGLB03) · G/L 개별 항목(FAGLL03) · 재무제표 조회(F.01)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 결산·공시 |
| 대상 | DART 정기보고서(사업보고서·반기보고서·분기보고서) 재무제표 공시 초안 + XBRL 초안 |
| Namespace | zui5.dartrpt |
| 셸 구조 | 7개 탭(개요·시산표·재무제표·첨부자료·공시서식 초안·XBRL 생성·검증) |
| 화면 수 | 단일 조회 화면(다중 탭) — 별도 다이얼로그 없이 탭 내 미리보기 |
| SAP 표준 T-code | FAGLB03 · FAGLL03 · F.01 |
| 성격 | 집계·작성지원형 — 시산표를 재무제표·공시서식·XBRL 로 연결. 엑셀 업로드로 데이터 교체 가능 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 6종 둘러보기
개요에서 보고서 종류를 고르고 → 시산표 탭에서 mock 데이터 또는 업로드로 원장을 채우면 → 재무제표 탭에 4종이 자동 집계되고 → 공시서식 초안과 XBRL 을 각각 생성 → 잘못된 시산표를 올리면 검증이 실제로 "확인 필요"를 띄우는 것까지 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 개요 탭에서 보고서 종류(사업보고서/반기보고서/분기보고서 1·3분기)를 선택하고 [적용]을 누릅니다.
- 시산표 탭에서 [템플릿 다운로드]로 현재 시산표를 엑셀로 받아 값을 고치거나 새로 채운 뒤 [엑셀 업로드]로 반영합니다. "표준분류코드 안내" 시트에서 계정을 재무제표 항목에 연결하는 코드를 확인할 수 있습니다.
- 재무제표 탭에서 자동 집계 결과와 검증 메시지를 확인하고, CSV 로 내려받을 수 있습니다.
- 첨부자료 탭에서 임원·주주·계열회사 현황을 엑셀 템플릿으로 각각 업로드합니다.
- 공시서식 초안·XBRL 생성 탭에서 각각 [생성] 버튼을 누르면 미리보기가 뜨고 다운로드할 수 있습니다.
- 검증 탭에서 재무상태표 항등식·자본변동표 롤포워드·현금흐름표 대사·첨부자료 완전성 등 11개 항목을 한 번에 확인합니다.
재무제표 집계·대사 판정 규칙
| 규칙 | 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|---|
| 재무상태표 항등식 | 자산총계 = 부채총계 + 자본총계(당기·전기 각각) | 검증 통과 / 확인 필요 | 시산표 계정의 표준분류코드·금액 재확인 |
| 자본변동표 롤포워드 | 기초이익잉여금+당기순이익-배당(계산값)=기말이익잉여금(실제값) | 검증 통과 / 확인 필요 | 당기순이익과 이익잉여금 계정 재확인 |
| 현금흐름표 대사 | 기초현금+순증감(계산값)=기말현금(재무상태표 현금) | 검증 통과 / 확인 필요 | 재무상태표 계정 증감 재확인 |
| 첨부자료 완전성 | 임원·주주·계열회사 현황 1건 이상 + 주주 지분율 합계 ≈100% | 검증 통과 / 확인 필요 | 첨부자료 탭에서 엑셀 템플릿으로 보완 |
이 화면이 대신 정하지 않는 것
사업의 내용, 이사의 경영진단 및 분석의견, 감사인의 감사의견 같은 서술형 항목은 이 화면의 자동 구성 범위가 아닙니다. 계정별 표준분류코드 매핑과 최종 공시 문구·XBRL 태깅은 회사와 감사인이 확정합니다.
시산표에서 XBRL 까지 5단계 처리
| 단계 | 내용 |
|---|---|
| 1단계 | mock 시산표를 쓰거나 엑셀 업로드로 계정코드·표준분류코드·차대구분·당기/전기 금액을 반영(업로드 시 표준분류코드 유효성 검사) |
| 2단계 | 표준분류코드별로 계정을 묶어 재무상태표·손익계산서를 만들고, 자본변동표는 이익잉여금 롤포워드로, 현금흐름표는 재무상태표 계정 증감(간접법)으로 재구성 |
| 3단계 | 임원·주주·계열회사 현황(mock 또는 업로드)을 결합 |
| 4단계 | 보고서 종류에 맞춰 회사개요·재무제표·첨부자료를 DART 정기보고서 목차 순서의 HTML 초안으로 구성 |
| 5단계 | 재무제표 핵심 항목을 확인된 IFRS Full 개념과 이 화면 전용 임시 개념으로 나누어 XBRL 인스턴스(XML)로 변환 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 보고서 종류 | 필수 | 사업보고서(연간)·반기보고서·분기보고서(1분기)·분기보고서(3분기). 공시서식 초안·XBRL 범위에 영향 |
결과 컬럼
| 탭 | 컬럼 · 표시 |
|---|---|
| 시산표 | 계정코드·계정과목명·차대구분·표준분류코드·당기금액·전기금액 |
| 재무제표 4종 | 과목·당기(말)·전기(말), 소계·합계 강조 |
| 첨부자료 3종 | 임원(성명·직위 등)·주주(지분율 등)·계열회사(관계·지분율 등) |
| 검증 | 검증 항목·결과(통과/확인 필요)·설명 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 결산이 끝난 표준 원장 데이터를 DART 공시서식·XBRL 로 연결하는 관점을 더해 확장합니다.
| SAP 표준 T-code | 연관 기능 |
|---|---|
FAGLB03 | G/L 계정별 잔액 조회 — 시산표 산출의 원천 |
FAGLL03 | G/L 개별 항목 조회 — 계정별 전기 라인 상세 확인 |
F.01 | 재무제표 조회 — 집계 결과와 대사하는 대상 |
도입 시 확인이 필요한 부분
계정별 표준분류코드 매핑 기준, XBRL 공식 택소노미 검증, 서술형 공시 항목 작성은 회사의 결산·공시 프로세스와 감사인 협의를 거쳐 확정해야 합니다.
참고 CDS 뷰
운영 서비스로 연결할 때를 가정해 새로 스케치한 집계 뷰 예시입니다.
@AbapCatalog.sqlViewName: 'ZC_DARTRPTTB'
define view Z_C_DartReportTrialBalance as select from ACDOCA
{
key RBUKRS as CompanyCode,
key RACCT as GLAccount,
key GJAHR as FiscalYear,
sum( HSL ) as AmountInCoCodeCrcy
}
group by RBUKRS, RACCT, GJAHR
// 표준분류코드(재무제표 항목) 매핑은 애플리케이션 레이어(엑셀 템플릿의 표준분류코드 컬럼)에서 수행
OpenUI5 구성
| 기능 | 사용 컨트롤·라이브러리 |
|---|---|
| 화면 골격 | sap.m.IconTabBar 7개 탭 |
| 시산표 그리드 | sap.ui.table.Table(39행×6열) |
| 재무제표·첨부자료·검증 | sap.m.Table |
| 엑셀 템플릿 | SheetJS(xlsx, cdnjs) — 템플릿 생성·업로드 파싱 |
| 초안·XBRL | HTML/XML 문자열 조립 후 iframe 미리보기·Blob 다운로드 |
| 공통 처리 | CSV·텍스트 파일 다운로드 공통 컨트롤러, 전역 오류 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment · SheetJS(xlsx) |
Component.js | 조회조건·데이터 모델 초기화 |
view/Main.view.xml | 7개 탭 단일 뷰 |
controller/Main.controller.js | 탭별 조회·업로드·생성·검증 로직 |
model/FsEngine.js | 재무제표 4종 집계 엔진 |
model/ExcelIO.js | 엑셀 템플릿 생성·업로드 파싱 |
model/DraftBuilder.js | 공시서식 초안(HTML) 조립 |
model/XbrlBuilder.js | XBRL 인스턴스(XML) 조립 |
localdata/mockdata.json | 회사개요·시산표(39계정×2개년)·첨부자료 mock |
검증 결과
39개 계정 × 2개년(2026·2025) 시산표를 기준으로 회계 항등식을 전수 검증했고, 엑셀 템플릿 다운로드→수정→ 재업로드 왕복 테스트로 화면이 실제 데이터를 다시 계산한다는 것까지 확인했습니다.
| 검증 항목 | 결과 |
|---|---|
| 재무상태표 항등식(당기·전기), 자본변동표 롤포워드, 현금흐름표 대사 | 통과(차이 0) |
| 엑셀 템플릿 왕복 테스트 — 균형 유지 수정본 재업로드 | 검증 통과 유지 |
| 엑셀 템플릿 왕복 테스트 — 의도적 불균형 수정본 재업로드 | "확인 필요" 정확히 검출 |
| 공시서식 초안(HTML)·XBRL(XML) 생성·다운로드·구조 검증 | 통과(수치가 재무제표 집계 결과와 일치) |
| 화면 렌더링 — 7개 탭 + 업로드 성공/실패 회귀 실동작 후 캡처 | 9/9 |
| 조회 버튼(적용) 위치 · sap_horizon 테마 적용 · 표시 금지 검사 | 확인·0건 |
계정·금액은 모두 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면에서 만든 XBRL을 바로 DART에 제출해도 되나요?
아닙니다. 확인된 IFRS Full 개념과 이 화면 전용 임시 개념을 함께 담은 사전 검토용 초안입니다. 실제 제출 전 반드시 공식 K-IFRS 표준계정과목체계(택소노미)와 DART 재무제표 작성도구로 재검증해야 합니다.
사업의 내용, 경영진단 및 분석의견 같은 서술형 항목도 자동으로 채워주나요?
아니요. 이 화면은 시산표·첨부자료로 구성 가능한 회사개요, 재무제표, 임원·주주·계열회사 현황만 초안으로 만듭니다. 서술형 항목은 회사가 별도로 작성해야 합니다.
반기보고서·분기보고서를 선택하면 무엇이 달라지나요?
공시서식 초안에서 자본변동표·현금흐름표가 빠지고 재무상태표·손익계산서 중심의 요약 구성이 되며, 첨부자료도 임원·대주주 현황 위주의 요약으로 구성됩니다. 재무제표 탭의 집계 자체는 보고서 종류와 무관하게 동일한 시산표를 사용합니다.
시산표를 업로드했는데 검증에서 확인 필요가 뜨면 어떻게 하나요?
검증 탭에서 어느 항등식이 틀어졌는지 먼저 확인하고, 시산표 탭에서 해당 계정의 표준분류코드와 금액을 다시 확인합니다. 이 화면은 계산이 맞는지 점검할 뿐 원인을 대신 교정하지는 않습니다.