SAP GL 계정 잔액이월 조회 — 전기 기말이 당기 기초로 넘어왔는가
전기 기말잔액과 당기 기초잔액을 계정별로 맞추고, 당기순이익의 이익잉여금 대체와 대차 등식까지 확인하는 결산 화면입니다.
회계연도가 바뀌면 재무상태표 계정은 잔액을 그대로 넘기고, 손익 계정은 0에서 시작합니다. 손익의 결과는 이익잉여금으로 옮겨집니다.
이 이월이 어긋나면 새 연도의 모든 숫자가 틀어집니다. 그런데 이월은 한 번 실행하고 넘어가는 작업이라 검증을 건너뛰기 쉽습니다. 표준 잔액이월 구조를 그대로 이어받아 계정별로 맞춰 보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 이월 대상 — 전기(
PrevGjahr)와 당기(Gjahr) 연도 쌍 - 원장 —
Ledger로 리딩 원장과 병행 원장 구분 - 계정 유형 — 재무상태표(BS)와 손익(PL) 구분(
AccountType) - 이익잉여금 — 대체 대상 계정 표시(
IsRetainedEarnings) - 잔액 — 전기 기말(
PrevYearClosingBalance)과 당기 기초(CurrentYearOpeningBalance)
| 항목 | 내용 |
|---|---|
| 대응 T-code | FAGLGVTR · F.16 · OB53 · FS10N |
| 업무 영역 | 재무회계(FI) · 연말 결산 |
| Namespace | zui5.balcf |
| 셸 구조 | 조회조건 영역(우측 조회·초기화) + 이월 검증 목록, 행 선택 시 계정 이동 내역 |
| 화면 수 | 조회 화면 1개 + 이동 상세 |
| 데이터 | 이월 검증 74건 · 계정 이동 888건 |
| 성격 | 조회형(Read-Only) — 이월 실행은 표준이 담당 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회사코드·이월 대상 연도로 조회하면 계정별 이월 상태가 나옵니다 → 차이가 있는 계정을 가려내고 → 이익잉여금 대체와 대차 등식을 확인합니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드와 이월 대상 연도를 고릅니다. 당기를 고르면 전기가 자동으로 짝지어집니다.
- 원장을 고릅니다. 병행 원장이 있으면 각각 검증해야 합니다.
- 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
- 차이가 0이 아닌 계정부터 봅니다.
- 이익잉여금 표시가 있는 계정에서 당기순이익 대체액을 확인합니다.
- 대차대조표 등식(자산 = 부채 + 자본)이 성립하는지 합계로 확인합니다.
- 결과는 CSV 다운로드로 내려받아 결산 조서에 첨부합니다.
이월 검증 규칙
계정 유형에 따라 이월 방식이 다릅니다.
재무상태표 계정(BS)
예상 기초잔액 = 전기 기말잔액
차이 = 실제 기초잔액 − 예상 기초잔액
손익 계정(PL)
기초잔액 = 0 (잔액이 이익잉여금으로 대체)
이익잉여금 증가 = 전기 손익 계정 잔액 합계 = 당기순이익
대차 등식 자산 = 부채 + 자본 (당기순이익 대체 후)
계정 유형을 나눠 보는 이유
손익 계정에 기초잔액이 남아 있으면 이월이 잘못된 것입니다. 반대로 재무상태표 계정이 0이 되면 잔액이 사라진 것입니다. 같은 기준으로 검증하면 두 오류를 구분할 수 없어, 유형별로 다른 기대값을 두고 비교해야 합니다.
연말 이월 4단계
| 단계 | 내용 | 결과 |
|---|---|---|
| ① 결산 확정 | 전기 기말잔액 확정 | 확정된 기말 잔액 |
| ② 손익 대체 | 손익 계정 잔액을 이익잉여금으로 | 당기순이익 반영 |
| ③ 이월 실행 | BS 계정 잔액을 당기 기초로 | 당기 기초잔액 |
| ④ 검증 | 이월 결과와 대차 등식 확인 | 결산 조서 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
회사코드 Bukrs | 필수 | 대상 회사코드 |
이월 대상 연도 Gjahr | 필수 | 당기 연도 (전기는 자동) |
원장 Ledger | 필수 | 0L 리딩 원장 등 |
계정 유형 AccountType | 선택 | BS / PL |
계정 Saknr | 선택 | 특정 계정만 |
| 상태 | 선택 | 전체 / 차이 발생만 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
계정 Saknr · SaknrText | 계정코드와 명칭 |
계정 유형 AccountType · 계정그룹 AcctGroup | BS / PL 구분 |
이익잉여금 IsRetainedEarnings | 대체 대상 계정 표시 |
원장 Ledger · 통화 Currency | 원장과 통화 |
전기 기말잔액 PrevYearClosingBalance | 이월 전 잔액 |
이월액 CarryForwardAmount | 실제 이월된 금액 |
예상 기초잔액 ExpectedOpeningBalance | 계정 유형별 기대값 |
실제 기초잔액 CurrentYearOpeningBalance | 당기 시작 잔액 |
| 차이 | 실제 − 예상. 0이 아니면 경고 색 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
FAGLGVTR | 신 총계정원장 잔액이월 | 이월 결과를 계정별로 검증 |
F.16 | 잔액이월 (클래식) | 같은 구조로 검증 가능 |
OB53 | 이익잉여금 계정 설정 | 대체 대상 계정 확인 |
FS10N | 계정 잔액 조회 | 기초·기말 잔액 원천 |
ACDOCA | 유니버설 저널 | 이월 후 잔액 확인 |
도입 시 확인이 필요한 부분
이월은 여러 번 실행해도 되지만 그사이 전기가 들어오면 재실행이 필요합니다. 전기 연도가 아직 열려 있으면 검증 결과가 계속 달라지므로, 기간 마감 상태를 함께 확인해야 합니다. 병행 원장이 있으면 원장마다 이익잉여금 계정이 다를 수 있습니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCBALCF'
@EndUserText.label: 'GL 잔액이월 검증 (Z)'
define view Z_C_BALANCE_CARRY_FORWARD
with parameters p_gjahr : gjahr
as select from acdoca as Line
left outer join skat as AcctText on Line.racct = AcctText.saknr
and AcctText.spras = 'K'
{
key Line.rbukrs as Bukrs,
key Line.rldnr as Ledger,
key Line.racct as Saknr,
AcctText.txt50 as SaknrText,
// 전기 기말 = 전기 전 기간 누계, 당기 기초 = 당기 이월 기간(poper 000)
sum( case when Line.gjahr = :p_gjahr - 1 then Line.hsl else 0 end ) as PrevYearBalance,
sum( case when Line.gjahr = :p_gjahr and Line.poper = '000'
then Line.hsl else 0 end ) as OpeningBalance
// 계정 유형(BS/PL)은 SKB1·SKA1 에서 가져와 예상 기초잔액 판정
}
group by Line.rbukrs, Line.rldnr, Line.racct, AcctText.txt50
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 이월 검증 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 검증 테이블 | sap.m.Table — 전기 기말→당기 기초 순서로 열 배치 |
| 차이 표시 | sap.m.ObjectStatus — 일치 / 차이 발생 |
| 상세 화면 | sap.m.Dialog — 계정별 기중 이동 |
예상값을 열로 만든 이유
전기 기말과 당기 기초만 두면 손익 계정에서 혼란이 생깁니다. 손익은 기초가 0인 게 정상인데 두 값이 달라 차이로 보이기 때문입니다. 계정 유형별 기대값을 예상 기초잔액 열로 명시하면 모든 계정을 같은 방식(실제 − 예상)으로 검증할 수 있습니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.balcf) · ko 로케일 |
view/Main.view.xml | 조회조건과 이월 검증 테이블 |
controller/Main.controller.js | 조회 · 예상값 판정 · 등식 검증 · CSV |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 차이 상태 색 포맷터 |
localdata/balcf.json | 이월 검증 74건 |
localdata/glmovement.json | 계정 이동 888건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| BS 계정: 예상 기초잔액 = 전기 기말잔액 | 통과 |
| PL 계정: 예상 기초잔액 = 0 | 통과 |
| 차이 = 실제 기초잔액 − 예상 기초잔액 | 통과 |
| 이익잉여금 증가 = 전기 손익 계정 잔액 합계 | 통과 |
| 대차대조표 등식 성립 (자산 = 부채 + 자본) | 통과 |
| XML · JSON 전체 파싱 | 오류 0건 |
| 화면 렌더링 — 실브라우저 조회 → 상세 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
이월을 다시 실행해도 되나요?
됩니다. 전기에 추가 전기가 들어오면 다시 실행해야 기초잔액이 맞습니다. 여러 번 실행해도 결과가 덮어써지므로 중복 이월 걱정은 없습니다.
손익 계정에 기초잔액이 남아 있으면요?
이월이 잘못된 것입니다. 손익은 이익잉여금으로 대체되고 0에서 시작해야 합니다. 계정의 유형 설정이 잘못됐거나 이월이 제대로 돌지 않은 경우입니다.
병행 원장이 있으면 어떻게 하나요?
원장마다 따로 검증합니다. IFRS 원장과 세무 원장의 손익이 달라 이익잉여금 대체액도 다르므로, 한 원장만 확인하면 다른 원장의 오류를 놓칩니다.
SAP 표준 기능과 어떻게 이어지나요?
이월 실행은 FAGLGVTR 이 담당합니다. 이 화면은 그 결과를 계정 유형별 기대값과 비교해 검증하고, 이익잉여금 대체와 대차 등식까지 한 화면에서 확인하게 하는 확장입니다.