SAP 계정 잔액 차기이월 대사 점검 — 전기말이 곧 당기초가 맞는지, 계정마다 확인한다
전기말잔액이 당기초잔액으로 제대로 넘어왔는지, 기초에 당기증감을 더한 값이 당기말잔액과 맞는지 계정 단위로 대사해 둡니다
회계연도가 바뀌면 재무상태표 계정의 전기말잔액은 당기초잔액으로 그대로 넘어와야 하고, 손익계산서 계정은 0으로 초기화되어야 합니다. 이 잔액이월이 계정마다 제대로 됐는지, 그리고 기초에 당기 중 증감을 더한 값이 지금 시스템상 잔액과 맞는지는 결산 때마다 반복해서 확인하게 되는 항목입니다.
SAP 표준 원장 구조에서 계정·회사코드별 기간 잔액을 그대로 이어받아, 전기말잔액→당기초잔액 이월과 당기초+당기증감=당기말 대사를 계정 단위로 자동화하고 확인이 필요한 계정을 가려내는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 잔액이월 실행 — 신 총계정원장 잔액이월 실행의 표준 화면(
FAGLGVTR)이 만든 이월 결과를 그대로 이어받아 대사합니다 - 표준 화면 — 계정별 잔액 조회(
FAGLB03) · 총계정원장 라인아이템 조회(FAGLL03)의 조회 구조를 참고했습니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 회계 결산 |
| 대상 영역 | 계정 잔액 차기이월 대사 — 전기말잔액→당기초잔액 이월, 당기초+당기증감=당기말 대사 |
| Namespace | zui5.carryfwd |
| 셸 구조 | 조회조건 영역(우측 조회) + 점검 요약 배너 + 계정별 이월 대사 목록, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | FAGLGVTR · FAGLB03 · FAGLL03 |
| 데이터 연동 방식 | OData V2 — 목록 화면이 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 이월 실행 자체는 화면 밖 표준 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·회계연도를 넣고 조회하면 점검 요약과 계정별 이월 대사 목록이 한 화면에 뜹니다 → 점검결과를 "확인 필요"로 좁혀 예외만 모아보고 → 행을 클릭해 월별 증감 상세를 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회사코드·계정유형·점검결과는 비워 두면(전체) 조건 없이 조회되고, 회계연도만 필수로 채웁니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 화면을 열면 우선 전체 목록과 점검 요약 배너가 기본 표시됩니다.
- 점검 요약 배너에서 전체 건수, 확인 필요 건수, 이월차이·증감대사차이 건수를 먼저 확인합니다.
- 계정 행을 클릭하면 월별(회계기간별) 차변·대변·순증감·누적잔액이 상세 다이얼로그로 열립니다.
- 목록 우측 상단 CSV 내려받기(UTF-8 BOM)로 현재 조회조건 기준 전체 결과를 저장할 수 있습니다.
이월·대사 판정 로직
판정은 두 가지 대사식을 함께 봅니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 당기초잔액 − 이월기대값(BS: 전기말잔액 / PL: 0) = 0 | 정상 | 추가 조치가 필요하지 않습니다. |
| 당기초잔액 − 이월기대값 ≠ 0 (이월차이) | 확인 필요 | 잔액이월 실행 로그와 수동 조정분개 여부를 확인합니다. |
| (당기초잔액+당기증감) − 당기말잔액 = 0 | 정상 | 추가 조치가 필요하지 않습니다. |
| (당기초잔액+당기증감) − 당기말잔액 ≠ 0 (증감대사차이) | 확인 필요 | 월별 증감 상세에서 반영되지 않은 전표나 조정 항목을 확인합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시일 뿐입니다. 차이의 원인이 무엇인지, 조정이 필요한지는 회사와 감사인이 판단합니다.
대사 처리 단계
| 단계 | 내용 |
|---|---|
| 1단계 | 계정별로 전기 기말잔액과 당기 기초잔액을 나란히 놓는다 |
| 2단계 | 계정유형에 따라 이월기대값을 정한다 — 재무상태표 계정은 전기말잔액, 손익계산서 계정은 0 |
| 3단계 | 당기초잔액과 이월기대값의 차이를 이월차이로 산출한다 |
| 4단계 | 기준기간까지의 월별 순증감을 누적해 당기증감을 구한다 |
| 5단계 | 당기초잔액+당기증감의 계산값과 시스템상 당기말잔액을 비교해 증감대사차이를 산출한다 |
| 6단계 | 이월차이·증감대사차이 중 하나라도 0이 아니면 확인 필요로 분류한다 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 선택 | 비워 두면(전체) 모든 회사코드가 조회됩니다. |
| 회계연도 | 필수 | 4자리 연도 |
| 계정유형 | 선택 | 전체 / 재무상태표(BS) / 손익계산서(PL) |
| 점검결과 | 선택 | 전체 / 정상 / 확인 필요 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 회사코드 / 계정과목·계정과목명 / 유형 | 식별 정보. 유형은 재무상태표(BS)·손익계산서(PL) |
| 전기말잔액 / 당기초잔액 / 이월차이 | 전기 기말잔액과 당기 기초잔액, 그 차이 |
| 당기증감 / 당기말잔액 / 증감대사차이 | 기준기간까지 누적 순증감과 당기말잔액, 계산값과의 차이 |
| 점검결과 | 정상 / 확인 필요 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 결과에 이월·대사 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
FAGLGVTR | 신 총계정원장 잔액이월 실행 | 실행 결과인 당기초잔액을 이월기대값과 대사합니다 |
FAGLB03 | 계정별 잔액 조회 | 계정·기간별 잔액 조회 구조를 참고했습니다 |
FAGLL03 | 총계정원장 라인아이템 조회 | 월별 증감 상세(라인 단위) 조회 구조를 참고했습니다 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
SKA1 / SKB1 | SAKNR · BUKRS | 계정과목 마스터(코드계정·회사코드별 속성) |
FAGLFLEXT | RBUKRS · RACCT · RYEAR · HSLxx | 신 총계정원장 기간별 잔액 총계 |
BSEG / BKPF | BUKRS · BELNR · GJAHR · DMBTR | 월별 증감 상세(차대변) 집계 원천 |
define view entity ZI_GLBALCARRYFWD
as select from faglflext
{
key rbukrs as CompanyCode,
key racct as GLAccount,
key ryear as FiscalYear
// 이월기간(000) 잔액과 기준기간 누적 로직은 커스터마이징에 따라 달라 확인이 필요합니다
}
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 점검 요약 배너 · sap.m.Table(growing) |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 목록이 엔티티셋에 직접 바인딩합니다. 모델 설정은 useBatch:false |
| 조회조건 | sap.m.Select · sap.m.Input — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 목록·상세 | sap.m.Table(growing) — 행 클릭 시 상세 다이얼로그에서 MovementDetailSet 을 별도 바인딩 |
| 점검결과 표시 | sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패를 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결 |
Component.js | 화면 상태 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.carryfwd · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 점검 요약 · 목록 |
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 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 2개 회사코드 × 33개 계정, 66건을 기준으로 이월차이·증감대사차이가 원(KRW) 단위로 맞물리도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 당기초잔액 − 이월기대값 = 0(전 건, 예외 제외) | 통과(예외 5건 분리) |
| (당기초잔액+당기증감) − 당기말잔액 = 0(전 건, 예외 제외) | 통과(예외 2건 분리) |
| 월별 증감 상세 합계 = 당기증감(헤더) | 통과(차이 0) |
| 회사·유형별 소계 = 개별 합계 | 통과(차이 0) |
| 확인 대상 건 안내 | 이월차이 5건 · 증감대사차이 2건(의도적으로 구성한 케이스, 중복 제외 7건) |
| 조회 조건 전달 — 66건 → 확인 필요 7건 필터 · 정렬(Edm.Decimal 숫자 비교) 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 필터 → 행 클릭 상세까지 실동작 후 캡처 | 3/3 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면에서 '확인 필요'로 표시된 계정은 오류가 확정된 건가요?
아닙니다. 이 화면은 전기말잔액과 당기초잔액, 당기초잔액과 당기말잔액을 대사해 확인이 필요한 계정을 가려내는 조회·점검 도구입니다. 차이의 원인 판단과 최종 회계 처리는 회사와 감사인이 합니다.
손익계산서(PL) 계정도 전기말잔액과 비교하나요?
아닙니다. 손익계산서 계정은 회계연도가 마감되면 0으로 초기화되는 것이 정상이므로, 당기초잔액이 0인지를 기준으로 점검합니다. 재무상태표 계정만 전기말잔액과 비교합니다.
이월차이가 나오면 항상 시스템 오류인가요?
아닙니다. 수동 조정분개나 재분류 등 정상적인 사유로도 이월차이가 나타날 수 있습니다. 이 화면은 확인이 필요한 후보를 가려낼 뿐이며, 원인 확인은 별도로 진행합니다.
이 점검은 언제, 어떤 범위에 적용할 수 있나요?
회계연도 잔액이월이 실행된 이후 언제든 조회할 수 있으며, 원장이 설정된 모든 회사코드·계정에 적용할 수 있습니다. 특정 시행일이 정해진 회계기준 요구사항은 아닙니다.
결산 마감 전에 계정별 이월부터 먼저 맞춰보세요
마감 막바지에 몰아서 잔액을 확인하는 대신, 화면에서 계정별로 이월과 증감을 미리 대사해 두면 결산 준비가 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.
| 관련 글 | 차이점 |
|---|---|
| SAP 보조원장-총계정원장 결산 대사 점검 | 보조원장 마감잔액과 총계정원장 계정잔액의 대사 — 이 화면은 계정 자체의 전기말→당기초 이월과 당기초+당기증감=당기말 대사 |
| SAP 정기전표 실행 대사 점검 | 정기전표가 기표됐어야 할 건수·금액 대사 — 이 화면은 계정 잔액의 이월·증감 대사 |