SAP 손상차손환입 한도 점검 — IAS 36, 되돌려도 손상 전보다 커질 수는 없다
사정이 좋아진 자산의 손상차손을 되돌릴 때, 손상이 없었을 경우 장부금액 한도와 영업권 환입 금지를 지켰는지 자산·손상 검사 데이터로 먼저 확인해 둡니다
예전에 손상을 인식한 자산의 사정이 좋아지면 손상차손을 되돌릴 수 있습니다. IAS 36 자산손상(K-IFRS 제1036호)은 보고기간 말마다 환입 징후를 검토하고, 징후가 있으면 회수가능액을 다시 추정하도록 합니다. 다만 환입 후 장부금액은 손상을 인식하지 않았다면 지금쯤 됐을 장부금액을 넘을 수 없고, 영업권에 인식한 손상차손은 되돌리지 않습니다.
회수가능액까지 한 번에 되돌려 한도를 넘거나, 영업권까지 환입하거나, 환입 대상을 놓치는 일이 생깁니다. 표준 고정자산 구조를 그대로 이어받아 원가모형 자산마다 한도와 기준 환입액을 계산해 장부와 나란히 놓는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 자산 — 고정자산(
ANLA/ANLC)의 원가·감가상각·손상 누계를 그대로 사용 - 거래 — 자산 거래(
ANEP)의 손상·환입 거래유형을 그대로 집계 - 표준 화면 — 자산 조회(AS03) · 자산 탐색기(AW01N) · 비계획 감가상각(ABAA) · 평가증 입력(ABZU)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 자산손상 |
| 관련 기준서 | IAS 36 자산손상(K-IFRS 제1036호) — 손상차손환입: 환입 징후 검토, 원가모형 자산의 환입 후 장부금액은 손상차손을 인식하지 않았을 경우의 장부금액을 넘지 않음, 영업권 손상차손 환입 금지 |
| Namespace | zui5.impairrev |
| 셸 구조 | 조회조건 영역(우측 조회) + 손상차손환입 대사 요약 + 환입 검토 명세·자산 유형별·CGU별·처리 판정별·점검 예외 5개 탭, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | AS03 · AW01N · ABAA · ABZU · FAGLL03(§7 참고) |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 손상 검사와 환입 전표 기표는 화면 밖 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 6종 둘러보기
회사코드·회계연도를 넣고 조회하면 손상차손환입 대사 요약과 명세가 한 화면에 뜹니다 → 탭을 옮겨 자산 유형별·CGU별·처리 판정별 집계를 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 회계연도를 넣습니다. 자산 유형·자산번호·판정 상태는 비워 두면 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 손상차손환입 대사 요약에서 환입 대상 수와 환입 한도, 기준·장부 환입액과 차이를 먼저 확인합니다.
- 탭을 옮겨 가며 환입 검토 명세 → 자산 유형별 → CGU별 → 처리 판정별 → 점검 예외 순으로 좁혀 봅니다.
- 행을 누르면 손상 없었을 경우 장부금액·회수가능액·여유율과 기준·장부 환입 후 장부금액이 상세 다이얼로그로 열립니다.
- 환입 검토 명세와 점검 예외 탭에서는 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
되돌릴 수 있는 만큼만 — 환입 한도 규칙
되돌릴 수 있는 만큼만 되돌립니다. 한도는 손상이 없었을 경우의 장부금액이고, 영업권은 되돌리지 않습니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 징후 있음 + 회수가능액 > 현재 장부금액 + 회수가능액 ≤ 한도 기준 | 환입 | 회수가능액까지 환입합니다. |
| 징후 있음 + 회수가능액 > 손상 없었을 경우 장부금액 | 한도 적용 환입 | 손상 없었을 경우 장부금액까지만 환입합니다. |
| 징후 없음 또는 회수가능액 ≤ 현재 장부금액 | 환입 없음 | 환입하지 않습니다. |
| 영업권 | 환입 금지 | 손상차손을 되돌리지 않습니다. |
| 한도를 넘어 회수가능액까지 환입 | 점검 필요 | 한도 초과분을 되돌립니다. |
| 영업권 손상차손을 환입 | 점검 필요 | 환입 전표를 취소합니다. |
| 환입 대상인데 환입 미인식 | 점검 필요 | 환입 전표 누락을 확인합니다. |
| 회수가능액 여유 5% 미만 또는 회수가능액 < 장부금액 | 확인 필요 | 추정 가정 또는 추가 손상을 검토합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시이며, 기준서 충족 여부를 단정하지 않습니다. 환입 징후 판단과 회수가능액 추정은 회사가 하며, 5% 기준은 확인 대상을 고르는 참고값입니다. 현금창출단위 전체의 환입을 개별 자산에 배분하는 절차와 재평가모형 자산의 환입은 이 화면의 범위 밖입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
징후 검토에서 환입액 대사까지 5단계 산출
| 단계 | 내용 |
|---|---|
| 1단계 | 환입 징후를 확인한다 — 징후 없음 → 환입 없음 |
| 2단계 | 환입 한도를 계산한다 — 한도 = 손상 없었을 경우 장부금액 − 현재 장부금액 |
| 3단계 | 기준 환입액을 계산한다 — 환입액 = min(회수가능액, 손상 없었을 경우 장부금액) − 현재 장부금액 (영업권 0) |
| 4단계 | 한도를 검증한다 — 환입 후 장부금액 ≤ 손상 없었을 경우 장부금액 · 환입액 ≤ 과거 손상차손 누계 |
| 5단계 | 장부와 대사한다 — 환입액 차이 = 장부 환입액 − 기준 환입액 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 회계연도 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 자산 유형 | 선택 | 전체 / 유형자산 / 무형자산 / 영업권 |
| 자산번호 | 선택 | 한 자산만 좁혀 볼 때 씁니다. |
| 판정 상태 | 선택 | 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 컬럼 · 표시 |
|---|---|
| 손상차손환입 대사 요약 | 검토 건수 · 환입 대상 · 과거 손상차손 누계 · 환입 한도 합계 · 기준/장부 환입액 · 환입액 차이 · 예외 건수 |
| 환입 검토 명세 | 자산번호 · 자산 · 유형 · CGU · 손상 없었을 경우/현재 장부금액 · 회수가능액 · 환입 징후 · 처리 판정 · 기준/장부 환입액 · 판정 |
| 자산 유형별 · CGU별 · 처리 판정별 집계 | 구분 · 건수 · 과거 손상차손 누계 · 환입 한도 · 기준/장부 환입액 |
| 점검 예외 | 예외번호 · 자산번호 · 예외 유형 · 내용 · 차이 · 중요도 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 손상차손환입 관점의 조회·검증을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
AS03 | 고정자산 마스터 조회 | 자산 유형과 현금창출단위 배정을 가져옵니다 |
AW01N | 자산 탐색기 | 손상·환입 이력과 현재 장부금액을 확인합니다 |
ABAA | 비계획 감가상각 | 과거에 인식한 손상차손 전표를 대사합니다 |
ABZU | 평가증(환입) 입력 | 손상차손환입 전표를 대사합니다 |
FAGLL03 | G/L 개별항목 조회 | 손상차손·환입 손익 계정 금액을 확인합니다 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IAS 36 (K-IFRS 제1036호) | 보고기간 말마다 과거 손상차손이 더는 없거나 줄었다는 징후 검토 | 환입 징후 표시와 징후 없음 건 제외 | ANLA | 징후 판단은 사용자 몫입니다. |
| IAS 36 (K-IFRS 제1036호) | 환입 후 장부금액은 손상차손을 인식하지 않았을 경우의 장부금액을 넘을 수 없음 | 환입 한도 산출과 한도 초과 검출 | ANLC · ANEP | 원가모형 자산에 적용합니다. |
| IAS 36 (K-IFRS 제1036호) | 영업권에 인식한 손상차손은 후속 기간에 환입하지 않음 | 영업권 기준 환입액 0 과 환입 검출 | ANEP · ACDOCA | 영업권 관리 방식은 회사마다 다릅니다. |
| IAS 36 (K-IFRS 제1036호) | 원가모형 자산의 손상차손환입은 즉시 당기손익 | 기준 환입액과 장부 환입 전표 대사 | ACDOCA | 재평가모형 자산은 범위 밖입니다. |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
ANLA | ANLN1 · ANLKL · TXT50 | 자산과 유형 |
ANLC | ANLN1 · KANSW · KNAFA · NAFAG · AUFWV | 원가·감가상각·손상 누계 |
ANEP | ANLN1 · BWASL · ANBTR · BZDAT | 손상(비계획 감가상각)·환입 거래 |
ACDOCA | RBUKRS · GJAHR · RACCT · HSL · PRCTR | 손상차손·환입 전표 |
CEPC | PRCTR · KTEXT | 현금창출단위 표기(손익센터 기준) |
define view entity ZC_ImpairmentReversalItem
as select from ZI_ImpairmentTest as it
inner join I_FixedAsset as fa on fa.FixedAsset = it.AssetNo
{
key it.ReviewId as RvId,
it.AssetNo as AssetNo,
fa.FixedAssetDescription as AssetName,
it.CashGeneratingUnit as Cgu,
it.CarryingNoImpairment as CarryNoImp,
it.CarryingAmount as CurrentCarry,
it.RecoverableAmount as Recoverable,
it.ReversalIndicator as Indicator
}
표준 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.impairrev · 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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 12개 자산을 기준으로 환입 한도·기준 환입액·환입 후 장부금액이 원(KRW) 단위로 맞물리도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 환입 한도 = 손상 없었을 경우 장부금액 − 현재 장부금액 | 통과(차이 0) |
| 기준 환입액 = min(회수가능액, 손상 없었을 경우 장부금액) − 현재 장부금액 (영업권·징후 없음은 0) | 통과(차이 0) |
| 환입 후 장부금액 ≤ 손상 없었을 경우 장부금액 | 통과(차이 0) |
| 기준 환입액 ≤ 과거 손상차손 누계 | 통과(차이 0) |
| 영업권 기준 환입액 = 0 | 통과(차이 0) |
| 처리 판정 = 환입 · 한도 적용 · 환입 없음 · 영업권 | 통과(차이 0) |
| 장부 환입액 = 기준 | 통과(의도적 예외 제외 차이 0) |
| 자산 유형별 집계 = 명세 집계 | 통과(차이 0) |
| CGU별 집계 = 명세 집계 | 통과(차이 0) |
| 처리 판정별 집계 = 명세 집계 | 통과(차이 0) |
| 대사 요약행 = 실제 집계 결과 | 통과(차이 0) |
| 금액 차이 건 = 예외 등록 건 | 통과(의도적 예외 제외 차이 0) |
| 확인 대상 건 안내 | 한도 초과 1건 · 영업권 환입 1건 · 환입 미인식 1건 · 여유 부족 1건 · 추가 손상 검토 1건(의도적으로 구성한 케이스) |
| 조회 조건 전달 — 12건 → 7건 필터 · top 3 · 내림차순 정렬 · __count 12 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처 | 6/6 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 손상차손환입의 대상·한도 적용 결과를 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
IAS 36 자산손상(K-IFRS 제1036호)은 이미 시행 중인 기준서입니다. 이 화면은 과거에 손상차손을 인식한 원가모형 유형자산·무형자산과 영업권을 다룹니다. 환입 징후는 보고기간 말마다 검토해야 하므로 결산마다 점검할 대상입니다.
회수가능액이 크게 회복됐는데 왜 전부 환입하지 않나요?
환입 후 장부금액은 손상을 인식하지 않았다면 지금쯤 됐을 장부금액을 넘을 수 없기 때문입니다. 손상 이후 줄어든 감가상각만큼은 이미 반영됐으므로, 그 한도를 넘는 회복분은 사실상 자산의 가치 상승이라 환입으로 인식하지 않습니다.
영업권은 왜 환입하지 않나요?
영업권 손상 이후 회수가능액이 늘어난 것은 대개 새로 생긴 내부창출 영업권 때문으로 보기 때문입니다. 내부창출 영업권은 자산으로 인식하지 않으므로, 영업권에 인식한 손상차손은 후속 기간에 되돌리지 않습니다.