SAP 부분별 감가상각 점검 — IAS 16, 선체와 엔진은 같은 속도로 닳지 않는다
유형자산의 유의적인 부분이 제 내용연수로 따로 상각되고 있는지, 교체한 부분의 장부금액이 지워졌는지 자산·감가상각 데이터로 먼저 확인해 둡니다
선박 한 척을 25년 쓴다고 해서 엔진도 25년을 가는 것은 아닙니다. IAS 16 유형자산(K-IFRS 제1016호)은 원가 가운데 전체 원가에 비해 유의적인 부분을 따로 감가상각하도록 합니다. 수명이 다른 부분을 한 덩어리로 상각하면 짧은 수명의 감가상각비가 뒤로 밀리고, 교체할 때 제거할 장부금액도 알 수 없게 됩니다.
SAP 고정자산에서는 하위번호로 부분을 나눠 관리할 수 있지만, 실무에서는 한 번호로 묶어 대표 내용연수로 상각하는 일이 흔합니다. 표준 자산·감가상각 구조를 그대로 이어받아 자산을 부분으로 나눠 유의적인 부분을 판정하고 부분별 기준 장부금액을 장부와 대사하는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 자산 — 고정자산 마스터(
ANLA)의 자산·하위번호로 부분을 식별 - 감가상각 — 감가상각 영역(
ANLB)의 내용연수와 원가·누계(ANLC)를 그대로 사용 - 표준 화면 — 자산 조회(AS03) · 자산 탐색기(AW01N) · 감가상각 실행(AFAB) · 자산 폐기(ABAVN)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 고정자산 |
| 관련 기준서 | IAS 16 유형자산(K-IFRS 제1016호) — 유형자산의 원가 가운데 전체 원가에 비해 유의적인 부분의 별도 감가상각, 부분 교체 시 교체된 부분의 장부금액 제거 |
| Namespace | zui5.compdepr |
| 셸 구조 | 조회조건 영역(우측 조회) + 부분별 감가상각 대사 요약 + 부분 명세·자산별·자산 분류별·분리 판정별·점검 예외 5개 탭, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | AS03 · AW01N · AFAB · ABAVN · S_ALR_87011990(§7 참고) |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 하위번호 분리·폐기 전표 기표는 화면 밖 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 6종 둘러보기
회사코드·회계연도를 넣고 조회하면 부분별 감가상각 대사 요약과 부분 명세가 한 화면에 뜹니다 → 탭을 옮겨 자산별·자산 분류별·분리 판정별 집계를 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 회계연도를 넣습니다. 자산 분류·자산번호·판정 상태는 비워 두면 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 부분별 감가상각 대사 요약에서 유의적 부분 수와 기준·장부 장부금액, 교체 처분손실, 장부금액 차이를 먼저 확인합니다.
- 탭을 옮겨 가며 부분 명세 → 자산별 → 자산 분류별 → 분리 판정별 → 점검 예외 순으로 좁혀 봅니다.
- 행을 누르면 원가 비중·부분/자산 내용연수·경과월과 기준·장부 감가상각누계가 상세 다이얼로그로 열립니다.
- 부분 명세와 점검 예외 탭에서는 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
같은 속도로 닳지 않는다 — 유의적인 부분 판정 규칙
원가 비중이 크고 수명이 자산 전체와 다른 부분은 따로 상각합니다. 교체된 부분은 장부에서 지웁니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 원가 비중 10% 이상 + 내용연수가 자산 대표 내용연수와 다름 | 유의적 부분 | 부분 내용연수로 따로 감가상각합니다. |
| 비중이 작거나 내용연수가 같음 | 비유의적 | 자산 전체와 함께 상각해도 됩니다. |
| 부분을 교체함 | 교체 부분 제거 | 교체 전 부분의 장부금액을 제거하고 처분손실로 인식합니다. |
| 유의적인 부분을 자산 대표 내용연수로 함께 상각 | 점검 필요 | 하위번호로 분리해 부분 내용연수로 상각합니다. |
| 교체된 부분의 장부금액이 남아 있음 | 점검 필요 | 폐기 처리 여부를 확인합니다. |
| 비중 5% 이상 10% 미만 + 내용연수 다름 + 미분리 | 확인 필요 | 유의적인지 다시 판단합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시이며, 기준서 충족 여부를 단정하지 않습니다. 기준서는 유의적인 부분의 금액 기준을 정하지 않으므로, 화면의 10%·5% 기준은 확인 대상을 고르는 참고값입니다. 내용연수와 감가상각방법이 같은 유의적인 부분은 묶어서 상각할 수 있습니다. 화면은 잔존가치 0·정액법을 가정한 참고 계산이며, 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
부분 분해에서 장부금액 대사까지 5단계 산출
| 단계 | 내용 |
|---|---|
| 1단계 | 자산을 부분으로 나누고 원가 비중을 구한다 — 원가 비중 = 부분 원가 ÷ 자산 원가 |
| 2단계 | 유의적인 부분을 판정한다 — 비중 10% 이상 · 내용연수가 자산 대표 내용연수와 다름 |
| 3단계 | 부분별 기준 감가상각누계를 계산한다 — 감가상각누계 = 부분 원가 × 경과월 ÷ (기준 적용 내용연수 × 12) — 비유의적·미분리 부분은 자산 대표 내용연수 |
| 4단계 | 교체 부분을 제거한다 — 기준 장부금액 = 0 · 처분손실 = 교체 시점 장부금액 |
| 5단계 | 장부와 대사한다 — 장부금액 차이 = 장부 장부금액 − 기준 장부금액 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 회계연도 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 자산 분류 | 선택 | 전체 / 선박 / 생산설비 / 건물 / 발전설비 |
| 자산번호 | 선택 | 한 자산의 부분만 좁혀 볼 때 씁니다. |
| 판정 상태 | 선택 | 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 컬럼 · 표시 |
|---|---|
| 부분별 감가상각 대사 요약 | 부분 건수 · 자산 수 · 유의적 부분 · 원가 합계 · 기준/장부 장부금액 · 교체 처분손실 · 장부금액 차이 · 예외 건수 |
| 부분 명세 | 자산번호 · 자산 · 부분 · 부분 원가 · 원가 비중 · 부분 내용연수 · 장부 적용 내용연수 · 분리 판정 · 기준/장부 장부금액 · 차이 · 판정 |
| 자산별 · 자산 분류별 · 분리 판정별 집계 | 구분 · 건수 · 원가 · 기준/장부 장부금액 · 교체 처분손실 |
| 점검 예외 | 예외번호 · 자산번호 · 예외 유형 · 내용 · 차이 · 중요도 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 부분별 감가상각 관점의 조회·검증을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
AS03 | 고정자산 마스터 조회 | 자산·하위번호(부분)와 내용연수 설정을 가져옵니다 |
AW01N | 자산 탐색기 | 부분별 감가상각 계획과 누계를 확인합니다 |
AFAB | 감가상각 실행 | 부분별 감가상각 전기 결과를 대사합니다 |
ABAVN | 자산 폐기 | 교체된 부분의 제거 처리를 확인합니다 |
S_ALR_87011990 | 자산 이력표 | 원가·감가상각누계 증감을 자산별로 대사합니다 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IAS 16 (K-IFRS 제1016호) | 전체 원가에 비해 유의적인 부분은 별도 감가상각 | 원가 비중·내용연수 기준 유의성 판정과 미분리 검출 | ANLA · ANLB | 유의성 기준 금액은 회사가 정합니다. |
| IAS 16 (K-IFRS 제1016호) | 내용연수와 감가상각방법이 같은 유의적인 부분은 묶어서 상각 가능 | 내용연수가 같은 부분은 비유의적으로 분류 | ANLB | 묶음 판단은 사용자 몫입니다. |
| IAS 16 (K-IFRS 제1016호) | 부분 교체 시 교체된 부분의 장부금액 제거 | 교체 부분 기준 장부금액 0 · 처분손실 산출과 미제거 검출 | ANEP · ACDOCA | 교체 부분 원가 추정 방법은 회사가 정합니다. |
| IAS 16 (K-IFRS 제1016호) | 감가상각은 자산의 미래경제적효익 소비 형태를 반영 | 부분 내용연수별 감가상각누계 산출 | ANLC | 정액법·잔존가치 0 은 참고 가정입니다. |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
ANLA | ANLN1 · ANLN2 · ANLKL · TXT50 | 자산과 하위번호(부분) |
ANLB | ANLN1 · ANLN2 · AFASL · NDJAR · NDPER | 부분별 감가상각 키·내용연수 |
ANLC | ANLN1 · ANLN2 · KANSW · KNAFA · NAFAG | 원가·감가상각누계 |
ANEP | ANLN1 · ANLN2 · BWASL · ANBTR | 폐기·교체 거래 |
ACDOCA | RBUKRS · GJAHR · ANLN1 · ANLN2 · HSL | 감가상각·처분손실 전표 |
define view entity ZC_ComponentDeprItem
as select from I_FixedAsset as fa
inner join I_FixedAssetDeprArea as da on da.FixedAsset = fa.FixedAsset
and da.FixedAssetSubNumber = fa.FixedAssetSubNumber
{
key fa.FixedAsset as AssetNo,
key fa.FixedAssetSubNumber as CompId,
fa.FixedAssetDescription as CompName,
fa.AssetClass as AssetClass,
da.PlannedUsefulLifeInYears as CompLife,
da.AcquisitionValue as CompCost,
da.AccumulatedDepreciation as BookAccDep
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 대사 요약 패널 · sap.m.IconTabBar 5개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩합니다. 모델 설정은 useBatch:false · defaultBindingMode:"OneWay" · defaultCountMode:"Inline" |
| 조회조건 | sap.m.Input · sap.m.ComboBox — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 정렬 · 페이징 | sap/ui/model/Sorter와 모델의 페이징 기능으로 처리 — 전체를 받아 화면에서 걸러내지 않습니다 |
| 명세·예외 표 | sap.ui.table.Table — 행 클릭 시 상세 다이얼로그 |
| 집계 표 | sap.m.Table — sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결 |
Component.js | 화면 상태·조회조건 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.compdepr · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 대사 요약 · 5개 탭 |
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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 5개 자산 16개 부분을 기준으로 원가·감가상각누계·장부금액이 원(KRW) 단위로 맞물리도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 자산별 부분 원가 합계 = 자산 원가 | 통과(차이 0) |
| 원가 비중 = 부분 원가 ÷ 자산 원가 | 통과(차이 0) |
| 유의적 부분 판정 = 비중 10% 이상 · 내용연수 상이 | 통과(차이 0) |
| 기준 적용 내용연수 = 유의적·분리·교체 부분은 부분 내용연수, 그 밖은 자산 대표 내용연수 | 통과(차이 0) |
| 기준 감가상각누계 = 부분 원가 × 경과월 ÷ 기준 적용 내용연수 | 통과(차이 0) |
| 교체 부분: 기준 장부금액 0 · 처분손실 = 교체 시점 장부금액 | 통과(차이 0) |
| 장부 부분 장부금액 = 기준 | 통과(의도적 예외 제외 차이 0) |
| 자산별 집계 = 명세 집계 | 통과(차이 0) |
| 자산 분류별 집계 = 명세 집계 | 통과(차이 0) |
| 분리 판정별 집계 = 명세 집계 | 통과(차이 0) |
| 대사 요약행 = 실제 집계 결과 | 통과(차이 0) |
| 금액 차이 건 = 예외 등록 건 | 통과(의도적 예외 제외 차이 0) |
| 확인 대상 건 안내 | 유의적 부분 미분리 2건 · 교체 부분 미제거 1건 · 분리 판단 경계 1건(의도적으로 구성한 케이스) |
| 조회 조건 전달 — 16건 → 6건 필터 · top 3 · 내림차순 정렬 · __count 16 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처 | 6/6 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 부분별 감가상각과 교체 부분 제거 결과를 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
IAS 16 유형자산(K-IFRS 제1016호)은 이미 시행 중인 기준서입니다. 이 화면은 선박·설비·건물처럼 수명이 서로 다른 부분으로 이뤄진 유형자산을 다룹니다. 부분 교체나 내용연수 재검토가 생길 때마다 결과가 달라지므로 결산마다 점검할 대상입니다.
얼마나 커야 유의적인 부분인가요?
기준서는 금액 기준을 정하지 않습니다. 전체 원가에 비해 유의적인지, 그리고 내용연수나 소비 형태가 다른지를 보고 회사가 판단합니다. 화면의 10% 기준은 판단을 돕는 참고값이며, 5% 이상 10% 미만인 부분은 다시 볼 대상으로 알려 줍니다.
부분을 교체하면 어떻게 처리하나요?
새 부분의 원가는 자산에 더하고, 교체된 부분의 장부금액은 제거해 처분손실로 인식합니다. 교체된 부분을 따로 상각해 오지 않았다면 그 장부금액을 추정해야 하는데, 새 부분의 원가를 기준으로 추정하는 방법을 쓸 수 있습니다. 부분을 처음부터 나눠 두면 교체 때 제거할 금액이 분명해집니다.