SAP 기능별-성격별 비용 공시 대사 — 주석에 쓸 성격별 분석, 원장으로 먼저 맞춰본다
영업비용을 기능별로 표시해 온 회사라면 주석에 성격별 분석을 새로 밝혀야 합니다. 그 대사표를 미리 만들어 보는 화면입니다.
IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호)는 영업비용을 손익계산서에 기능별로 표시하는 회사라면, 주석에 성격별(원재료비·종업원급여비용·감가상각비 등) 비용 분석을 추가로 공시하도록 요구합니다. 국제기준은 2027년 1월 1일 이후 개시 회계연도부터 적용되고 조기적용이 허용되며, 비교기간도 새 기준으로 다시 표시해야 합니다.
문제는 지금 원장에는 계정이 어느 성격 항목에 속하는지 알려주는 표준 필드가 없다는 점입니다. 계정 담당자가 성격 코드를 별도로 매핑·관리해야 하는데, 신규 계정이 매핑에서 빠지면 성격별 합계가 기능별 합계와 어긋나 버립니다. SAP 표준 원장 데이터를 그대로 이어받아 계정별 매핑 결과를 성격 항목으로 재집계하고, 기능별 합계와 자동으로 대사하도록 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 4종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 계정별 잔액 조회 — G/L 계정 잔액(
FAGLB03)으로 집계하는 계정별 연간·월별 발생액을 그대로 인용 - 기능별 표시 — 재무제표버전(FSV) 기준 재무제표 조회(
F.01)에서 매출원가· 판매비와관리비로 나누는 그룹핑 방식을 그대로 이어받아 성격별 재집계의 출발점으로 사용 - 계정 마스터 — G/L 계정 마스터 조회(
FS00)의 계정코드·계정명을 그대로 인용
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 결산·공시 |
| 관련 기준서 | IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) — 기능별 표시 시 성격별 비용 분석 공시 |
| Namespace | zui5.expnature |
| 셸 구조 | 조회조건 영역(우측 조회) + 성격별 비용 공시 대사표 + 계정별 상세, 계정 월별 발생 내역 Dialog |
| 화면 수 | 조회 화면 1개 + 계정 월별 발생 내역 다이얼로그 |
| SAP 표준 T-code | F.01 · FAGLB03 ·
FS00 |
| 성격 | 조회·대사형 — 원장 전기와 결산은 표준 트랜잭션이 담당 |
| 테마 | sap_horizon 단일 적용 |
실제 화면 4종 둘러보기
회계연도를 고르면 성격별 비용 공시 대사표가 뜹니다 → 계정 검색으로 특정 계정만 좁혀 보고 → 기능구분으로 매출원가·판관비만 걸러보고 → 계정을 눌러 월별 발생 내역을 드릴다운합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 조회조건 영역에서 회계연도(2026 당기 · 2025 전기)와 기능구분(전체 · 매출원가 · 판매비와관리비)을 선택합니다.
- 계정코드 또는 계정명을 알고 있으면 계정 검색 입력란에 입력 후 Enter 키를 누르거나 우측 상단의 조회 버튼을 클릭합니다. 두 방법 모두 동일하게 동작합니다.
- 성격별 비용 공시 대사표는 검색어·필터와 무관하게 항상 전체 계정 기준 대사 결과를 보여줍니다.
- 계정별 상세 표의 행을 클릭하면 해당 계정의 월별 발생 내역 다이얼로그가 열립니다.
- CSV 다운로드로 현재 조회조건 기준 계정별 상세를 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.
- 조건 해제는 계정 검색어만 비우고 재조회, 초기화는 모든 조회조건을 기본값으로 되돌리고 재조회합니다.
계정별 성격 매핑 판정 규칙
이 화면의 핵심은 "계정이 성격별 항목에 정확히 매핑되어 있는가"와 "기능별 합계와 성격별 합계가 일치하는가"를 함께 점검하는 것입니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 계정이 성격별 매핑 테이블에 정확히 1개의 성격 코드로 연결됨 | 매핑 정상 | 조치 불필요 |
| 계정이 매핑 테이블에 없음(신규 계정 등) | 매핑 누락 | 회계팀이 신규 계정의 성격 구분을 확정해 매핑 테이블에 반영 — 미매핑 버킷에 포함되어 있어 대사 자체는 깨지지 않음 |
| 성격별 합계 − 기능별 합계 = 0 | 대사 일치 | 조치 불필요 |
| 성격별 합계 − 기능별 합계 ≠ 0 | 검증 필요 | 매핑 테이블 누락·중복 여부와 원장 마감 상태를 확인 |
점검 도구이지 최종 판단이 아닙니다
이 화면은 계정을 성격별 항목으로 자동 재집계하고 기능별 합계와의 차이를 계산해 보여주는 점검 도구입니다. 어떤 계정을 어느 성격 항목으로 분류할지에 대한 최종 판단과 실제 공시 문안 확정은 회사와 감사인이 기준서 원문에 따라 내려야 합니다.
기능별→성격별 배분·대사 처리 순서
| 단계 | 내용 |
|---|---|
| 1단계 | 기능별(매출원가/판매비와관리비)로 표시된 GL 계정별 연간 발생액을 원장에서 집계합니다. |
| 2단계 | 각 계정을 성격별 비용 공시 매핑 테이블에서 조회해 성격 코드를 확인합니다. |
| 3단계 | 매핑 테이블에 없는 계정은 "미매핑" 버킷으로 별도 집계하되, 성격별 합계에는 포함시켜 총액은 항상 기능별 합계와 일치하도록 유지합니다. |
| 4단계 | 성격 코드별로 금액을 합산해 성격별 비용 공시 대사표를 만들고, 기능별 합계와 비교해 차이를 계산합니다. 계정별 상세에서 특정 행을 클릭하면 해당 계정의 월별 발생 내역을 드릴다운으로 보여줍니다. |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| Company Code | 고정 | 회사코드(고정값 1000) |
| 회계연도 | 필수 | 2026(당기) · 2025(전기) |
| 기능구분 | 선택 | 전체 · 매출원가 · 판매비와관리비 — 계정별 상세만 필터링, 대사표는 항상 전체 기준 |
| 계정 검색 | 선택 | 계정코드 또는 계정명 부분일치, Enter 키로 즉시 재조회 |
결과 컬럼
성격별 비용 공시 대사표
| 컬럼 | 의미 · 표시 |
|---|---|
| 구분 | 기능별 합계(기준행) · 성격별 항목명(6종) · 미매핑(확인 필요) · 성격별 합계(검증행) |
| 금액 | 해당 구분의 연간 금액 |
| 계정수 | 해당 성격 항목에 매핑된 계정 수 |
| 누계 | 성격별 항목을 위에서부터 누적한 금액(마지막 행이 성격별 합계와 일치) |
계정별 상세
| 컬럼 | 의미 · 표시 |
|---|---|
| 계정코드 · 계정명 | G/L 계정 마스터 |
| 기능구분 | 매출원가 · 판매비와관리비 |
| 성격구분 | 매핑된 성격 코드(MATCOST·LABOR·DEPR·OUTSRC·UTIL·OTHEROP· UNMAPPED) |
| 연간금액 | 계정의 연간 발생액 합계, 행 클릭 시 월별 발생 내역 다이얼로그로 이동 |
| 매핑상태 | 매핑 정상 · 매핑 누락(확인 필요) |
SAP 표준 기능 매핑
표준 실행은 아래 T-code 들이 담당하고, 이 화면은 그 위에서 기능별 표시와 성격별 공시를 자동으로 대사하는 관점을 더해 확장합니다.
| SAP 표준 T-code | 연관 기능 |
|---|---|
F.01 | 재무제표 — 재무제표버전(FSV) 기준 G/L 계정 잔액 조회. 하나의 원장을 서로 다른 그룹핑(기능별/성격별 FSV)으로 조회하는 기능을 이 화면은 그 두 그룹핑 결과가 서로 일치하는지 자동 대사하는 방향으로 확장 |
FAGLB03 | G/L 계정 잔액 조회 — 계정별 연간·월별 발생액 조회의 표준 화면, 이 화면의 계정별 상세·월별 드릴다운이 참조하는 원천 조회 기능 |
FS00 | G/L 계정 마스터 조회 — 계정코드·계정명의 원천. 다만 "성격별 공시 항목" 자체는 표준 마스터 필드가 아니므로 이 화면은 별도 매핑 참조 데이터를 사용 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IFRS 18 (K-IFRS 제1118호) | 기능별 표시 시 성격별 비용 분석 공시 | 계정별 매핑을 통한 성격별 비용 공시 대사표 산출 | ACDOCA.HSL, SKA1/SKAT |
성격 코드 매핑은 표준 마스터가 아닌 이 화면의 참조 데이터(신설) |
| IFRS 18 (K-IFRS 제1118호) | 동일 기간 재무제표 항목 간 총액 일치(완전성) | 기능별 합계 vs 성격별 합계 자동 대사, 차이 0 검증 | ACDOCA.HSL 집계값 재계산 |
차이 발생 시 검증 필요 상태로 표시, 자동 수정하지 않음 |
| IFRS 18 (K-IFRS 제1118호) | 신규·미분류 항목의 투명한 공시 | 미매핑 계정을 확인 필요 상태로 별도 노출하되 합계에는 포함 | 이 화면 매핑 참조 데이터(매핑상태) | 합계 왜곡 없이 예외만 표시 |
참고 CDS 뷰
이 화면의 조회 로직을 참고용으로 스케치한 CDS 뷰이며, 실제 활성화된 뷰가 아닙니다.
@AbapCatalog.sqlViewName: 'ZEXPNATRECON'
@EndUserText.label: '기능별-성격별 비용 공시 대사 (참고 스케치)'
define view Z_I_ExpenseNatureRecon
as select from acdoca
association [0..1] to ska1 as _Account on acdoca.racct = _Account.saknr
association [0..1] to zexpnaturemap as _NatureMap on acdoca.racct = _NatureMap.racct
{
key acdoca.rbukrs,
key acdoca.gjahr,
key acdoca.racct,
acdoca.poper,
_Account.saknr as account_number,
_NatureMap.func_code as function_code, // 매출원가 / 판매비와관리비
_NatureMap.nature_code as nature_code, // 원재료비 / 종업원급여비용 / ... / 미매핑
sum( acdoca.hsl ) as annual_amount
}
group by
acdoca.rbukrs, acdoca.gjahr, acdoca.racct, acdoca.poper,
_Account.saknr, _NatureMap.func_code, _NatureMap.nature_code
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 회사의 계정과목표와 성격별 매핑 관리 방식에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 성격별 비용 공시
대사표 · 계정별 상세 |
| 조회조건 | sap.m.Select · sap.m.Input — 우측
끝에 조회 버튼, Enter 키 조회 지원 |
| 대사표 · 상세 | sap.m.Table + ObjectStatus —
매핑상태·미매핑 행을 Success/Warning 상태로 표시 |
| 월별 발생 내역 | sap.m.Dialog + sap.m.Table |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon ·
lodash · moment |
Component.js | 조회조건 모델 · 결과 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.expnature ·
ko 로케일 |
view/Main.view.xml | 조회화면 + 성격별 비용 공시 대사표 + 계정별 상세 |
view/DetailDialog.fragment.xml | 계정 월별 발생 내역 다이얼로그 |
controller/Main.controller.js | 조회 · 대사 검증 · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
controller/ErrorHandler.js | 전역 오류 처리 |
model/ModelMock.js | localdata JSON 읽기(Promise) + 기능별· 성격별 재집계 |
model/formatter.js | 금액 · 회계기간 · 매핑상태 포맷 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
localdata/expnature.json | 계정 마스터 · 성격 매핑 참조 · 월별 발생액 검증용 데이터 |
운영 전환 시에는 ModelMock 내부만 실제 서비스 호출로 바꾸면 화면과 대사 로직은
그대로 씁니다.
검증 결과
GL 계정 21건(매출원가 9건 · 판매비와관리비 12건, 그중 1건은 의도적으로 성격 미매핑 처리), 2개 회계연도 × 12개월 발생 데이터 492건 기준으로 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 실행한 대사 검증 건수 | 8건(연도별 4건 × 2개년) |
| 기능별 합계 = 성격별 합계 (2026 · 2025) | 차이 0 |
| 원본 발생액에서 독립 재계산한 합계 vs 공시 합계 | 차이 0 |
| 실패 건수 | 0건 |
| 의도적 예외(미매핑 계정) 건수 | 1건 — 2026년 신규계정 619000, 합계에는 정상 반영 |
| 최대 오차 금액 | 0원 |
| 조회 버튼 상단 우측 배치 · Enter 키 조회 동작 | 통과 |
적용 테마 sap_horizon 확인 | 통과 |
| 화면 렌더링 — 실브라우저에서 조회 → 계정 검색 → 기능구분 필터 → 월별 내역까지 실동작 후 캡처 | 4/4 |
계정·금액은 모두 검증용으로 구성한 데이터입니다.
자주 묻는 질문
IFRS 18은 언제부터 적용되나요?
IFRS 18은 2027년 1월 1일 이후 시작하는 회계연도부터 적용되며, 조기 적용이 허용됩니다. 비교표시되는 과거 기간의 재무제표도 새 기준에 맞춰 재작성합니다.
이 화면이 계정의 성격 분류를 최종 확정해 주나요?
아니요. 이 화면은 계정별 매핑 결과를 기능별 합계와 자동으로 대사해 차이와 미매핑 항목을 보여주는 점검 도구입니다. 실제 공시에 사용할 성격별 분류와 문안의 최종 확정은 회사와 감사인이 기준서 원문에 따라 판단해야 합니다.
성격별로 표시하는 회사도 이 화면이 필요한가요?
영업비용을 처음부터 성격별로 표시하는 회사는 이 대사 작업 자체가 필요하지 않습니다. 이 화면은 기능별로 표시하면서 주석에 성격별 분석을 별도로 공시해야 하는 회사를 대상으로 합니다.
미매핑 계정이 있으면 대사가 깨지나요?
아니요. 미매핑 계정은 미매핑(확인 필요) 버킷으로 성격별 합계에 포함되므로 기능별 합계와의 대사 자체는 항상 유지됩니다. 다만 해당 계정은 공시 전에 올바른 성격 항목으로 재분류해야 할 대상으로 화면에 표시됩니다.
| 한눈에 보는 요약 | 내용 |
|---|---|
| 대상 기준서 | IFRS 18 재무제표 표시와 공시(K-IFRS 제1118호) |
| 점검 대상 | 기능별 표시 회사의 성격별 비용 분석 주석 |
| 핵심 산식 | 성격별 합계 = 기능별 합계 (미매핑 포함), 차이 0 목표 |
| 검증 결과 | 8건 전수 통과, 미매핑 예외 1건 별도 공시 |