diff --git a/docs/raw/요구_1104/_분석_642-B_경쟁사REA_매칭규칙.md b/docs/raw/요구_1104/_분석_642-B_경쟁사REA_매칭규칙.md new file mode 100644 index 000000000..21d5700dc --- /dev/null +++ b/docs/raw/요구_1104/_분석_642-B_경쟁사REA_매칭규칙.md @@ -0,0 +1,319 @@ +# 분석 642-B — 경쟁사(EST Plus 2 · STmate) 내부 모델로 본 엑셀 매칭 규칙 (조사 · 읽기만) + +대상 = 요구 642(엑셀 불러오기 다시 짬 — 1차 품명 · 규격 · 비고 · 별도계상 / 2차 비고 → 단산 상세 → 품셈 번호 → 기본공식). 근거 = 지식DB `경쟁사 프로그램/` REA 분석 + 여덟 실무 엑셀(골든 `FILES`) 직접 열람. 코드 · 마스터 · storage · git 안 고침. + +## 0. 요약 열 줄 + +1. 두 프로그램 모두 「목록(결과 요약) + 상세(구성 행)」 짝 · 성분 셋(노 · 재 · 경, EST 는 실적 하나 더) · 코드 열쇠 구조 — EST 코드 = L · M · E · D · U · A + 10자리(엑셀에 안 찍힘), STmate 코드 = L · M · S · W · X · D · B · PR · RR · C · T + 5자리(프로젝트마다 다른 번호 · 숨은 칸에 찍힘). +2. 품셈 번호 · 기본공식은 두 프로그램 모두 구조 칸 없음 — 「글」로만 남음: EST 단가산출 글 줄 · 일위 규격 칸, STmate 산근 원문 식 · 일위대가표 근거 줄(품명 「건설표준품셈」 · 규격 「7-2-2(찰붙임)」). +3. ⭐ STmate 출력 엑셀은 내부 모델을 거의 통째로 품음 — 일위대가표 숨은 N 열 메타(COD · EXI · IPR · PRI · PRO · EQC · UNI), 단가산출근거 숨은 G 열 = `COSTN.SMT` 원문 식(`&L00002L&` · `&PA01M:M&` · Q식), M · N 열 묶음 열쇠, 목록표 메타(BQC · EQC · JDC · EDT) · 수식도 살아 있음. +4. EST 출력 엑셀은 값 위주 — 갈래 신호 = 비고 「단산N참조 · 일위N참조」(N = 목록 차례 · 코드 아님) + 빈 비고 줄의 성분 칸 배치(노만 · 재만 · 노재경 · 경만) + 규격 글(「별도계상」 · 「노무비의」 · 「3인/20㎥」) · 총괄표 성분 칸은 수식(캐시 0). +5. 1차 갈래는 거의 확정 가능 — STmate = 숨은 코드 머리로 확정 · EST = 비고 + 성분 배치 + 원천 시트(노임단가 · 자재단가 · 기계경비) 이름 · 단가 일치 · 별도계상 = EST 코드 없는 글 줄(단가 0) / STmate 비고 「별산」 + 목록표 단가 0. +6. 「한 줄에 여러 산근」의 실체 = 산근 블록 안 여러 절(채집 + 상차 + 운반) · 기계/인력 비율(×90 % · ×10 %) · 산근 안 산근(`&D00075&` · `*단산N참조*`) · 일위 안 일위 — 매칭 단위는 줄이 아니라 산근 블록의 「절」. +7. 율 · 할증 · 손료 줄은 기준 범위 · 결과 성분이 사용자 몫 — EST 규격 글자(노 · 재 · 경 · 합계)로 기준 · SCheck 로 결과(「공구손료 및 경장비의 기계경비」 → 재료비 칸 실례), STmate 메타 PRI(기준) · PRO(결과) · IPR(기준에 드는 줄) · 산근 `&PAnn기준:저장&`. +8. 대조 규칙 실측 — EST 일위 줄 = 수량 × 단가 소수1 절사(1,160/1,160) · 호표 성분 = 줄 합 원 미만 절사(95/95) · 합계 = 성분 합 · 자재 적용 = 최저(93/93) / STmate 줄 = ROUNDDOWN(q×u,1) · 영월만 「총액 먼저」 끝수 배분 · 산근 「계약단가」(낙찰율) 줄이 목록표 단가의 원천. +9. 사용자 손댄 흔적이 출력에 다 보임 — 경비성단가 「(경비)」 · 「(경비 로적용)」 · 계약단가 · 제외금액 `(-=)` · CalcIndex 2 줄 · 규격 속 품셈 글 · 옛 판 주석 · BQCODE 자유 글(「08' 신규」) · 줄 자릿수(「= 2,300」). +10. 지식DB 빈칸 · 어긋남 16건 — 숨은 칸 · 끝수 배분 · CHGNM/CHBNM · BQCODE · 계약단가 · PA 문법 · EST 출력 칸 대응 · 총괄표 수식 등(5절). + +근거 약칭 — 〔E〕 = `resources/knowledge/original/경쟁사 프로그램/EST Plus 2/REA 분석/` · 〔S〕 = `…/STmate 분석/20_분석/` · 〔SR〕 = `…/STmate 분석/REA 분석/` · 〔원〕 = `resources/knowledge/original/원가계산/STmate/` · 엑셀 = `resources/tester/helper_m02_hopyo_golden.py` `FILES` 여덟 파일(북부청임도 · 북부청사방 = EST · 봉화 · 동부청영월 · 울진대흥 · 영덕계류 · 울진소광 = STmate · 거창 = EST + 산림조합 시트 섞임) · 「시트!행」 = 그 파일 시트 행 번호. + +--- + +## 1. 내부 자료 모델 + +### 1-1. EST Plus 2 — 표 · 코드 + +| 무엇 | 표(목록 / 상세) | 코드 꼴 | 근거 | +| --- | --- | --- | --- | +| 노임 | Laborc | `L0000000006` | 〔E〕`07_…/LaborcDat.decoded_candidates.json` | +| 자재(유류 포함) | Stuffc — 출처 6칸 Cost1~6 · Page1~6 · ValueIndex · Ratio · Bimog | `M0000000017`(경유) | 〔E〕`07_…/StuffcDat…` · 최종 §5 | +| 기계경비 | MachTitle / MachMain + MachGijun(적용기준) | `E0000000000` | 〔E〕`07_…/MachTitleDat…` · 최종 §6-5 | +| 단가산출(산근) | CostTitle / CostMain(줄 = LineData 글) | `D0000000713` | 〔E〕`07_…/CostMainDat…` | +| 일위대가(호표) | HeadTitle / HeadMain(구성 행) | `U0000001172` | 〔E〕`07_…/HeadMainDat…` | +| 율 · 구간 율 · 조달수수료 행 | 같은 상세 표 안 특수 행 | `A01` 또는 없음 | HeadMain 「기구손료 조립노무비의」 `A01` | +| 견적 · 표준시장단가 | EstiMate · SilJuk | — | 최종 §3 | + +- 금액 4성분 = 노무 N · 재료 G · 경비 J · 실적 S, 단가 NU · GU · JU · SU(TU), 금액 NC · GC · JC · SC(TC), 수량 GN. 같은 칸에 시점별 꼬리 `_`(당초) · O*(낙찰 전). 〔E〕최종 §3 +- 열쇠 = Code 우선 → 못 찾으면 품명 · 규격 · 단위. 〔E〕최종 §5 +- 행 성격 칸 — 한 엔진이 분기: + +| 칸 | 값 | 출력에 드러나는 꼴 | +| --- | --- | --- | +| LinkIndex | 5 자재 · 6 노임 · 21 표준시장 · 101 견적 · 103 일위 · 104 단산 · 105 기계 / 51 · 68 소계형 · 52 낙찰 · 54 순공사비 · 57 조달수수료 · 58 율 · 62 구간 율 · 61 자릿수 줄 | 비고 「단산N참조」(104) · 「일위N참조」(103) · 빈칸(5 · 6 · 105) · 단위 %(58 · 62) | +| CalcIndex | 0 계산 · 합산 / 1 고정 · 합산 / 2 계산 · 합계 제외 / 3 둘 다 안 함 | 2 = 줄 금액은 보이나 호표 합계에 안 듦(「주철뚜껑」 줄 + 「설치비 재료비의 5%」) | +| SCheck | 율 결과 성분 1 재료 · 2 노무 · 3 경비 · 0 성분별 / 원천 몰아넣기 3 = 경비성단가 / 산근 소계 줄 -1 노 · -2 재 · -3 경 · -4 실적 · -5 계 | 단가산출총괄표 비고 「(경비)」 · 「경비성단가」 → 일위 줄에 경비 칸만 | +| OCheck | 율 기준 성분(1 재료 · 2 노무) — 규격 글로 못 정할 때 | 규격 「노무비의」 · 「주재료비의」 · 「가공노무비의」 | +| SKind | 같은 구간끼리만 율 기준 | 「<현장가공>」 · 「<현장조립>」 구간 + `A01` 구간 율 | +| Diget · DigetIndex | 줄 자릿수 | 같은 산식인데 「= 2,299.4」 · 「= 2,300」 | + +근거: 〔E〕최종 §3 · §6-2 · `09_…/ESTPlus2_아이슬로_내역서개발_참고정리_20261029.md:13-24` · HeadMainDat 견본 줄. + +### 1-2. EST 단가산출 글(LineData) 표지 + +| 표지 | 뜻 | 견본 | +| --- | --- | --- | +| `\x0e…\x0e` · `\x13…\x13` · `\x15…\x15` | 품명 · 규격 · 단위 | `\x0e굴착기(무한궤도)\x0e \x13(0.7㎥)\x13` | +| `\x03…\x03` | 연결 단가(줄 LinkIndex 가 원천) — 원천이 바뀌면 글 숫자도 바뀜 | `노무비 : \x0359,020\x03 ÷ …`(기계 목록 NC) | +| `\x11…\x11` | 앞 줄 변수값 | `÷ \x1155.11\x11` | +| `\x0c…\x0c` | 다른 줄 값(율 기준) | `\x0c14,373.6\x0c ×3%` | +| `\x12…\x12` | 엔진이 쓴 결과 | `= \x12963.8\x12` | +| `\x1a…\x1a` | 자동 합계 문구 | `\x1a노무비 : 963.8 + 7,980.7 =\x1a` | +| `*단산N참조*` | 산근 안 산근(LinkIndex 104 · Code D…) | 당초 판 `*단산25참조*` ↔ 현재 판 `*단산7참조*` — N 이 목록 차례라 판마다 바뀜 | + +근거: 〔E〕`09_…/ESTPlus2_산근LineData_수량연결_정적분석_20261029.md:18-29` · `07_…/CostMainDat.decoded_candidates.json`(PkID 188). 엑셀로 나올 때 제어문자는 빠지고 글만 남음(북부청임도 「단가산출」 B 열). + +### 1-3. STmate — 표 · 코드 · 식 언어 + +| 무엇 | 저장 | 코드 머리 | 근거 | +| --- | --- | --- | --- | +| 자원 단가 원장 | `COSTN.DBF`(코드 · 이름 · 규격 · 단위 · 성분 단가 4안 · 후보 6 · BQCODE · EQCODE · JDCODE · WQCODE · CONTCODE · IFORM) | L 노무 · M 자재 · S 경비(중기 취득가 천원 포함) · W 일식 · X 중기 · D 산근 · B 일위대가 · A 실적 | 〔S〕`02_…:38-52` · `11_…:52-61` | +| 구성 수량 | `BDQTY.DBF`(QTY1..4 · DEVD · X_QTY · X_HAL · RATE · PRPT · EQCODE · SBMOK) — 암호화 | — | 〔S〕`07_…:55-72` | +| 산출 원문 식 | `COSTN.SMT`(IFORM 메모) — 평문 | — | 〔S〕`23_…` · 〔원〕`SIxMemo_구조.md` | +| 코드 종류 이름 | `Start8x.Ini` `COD_FMT_1~8` = 노무 · 자재 · 경비 · 대가 · 중기 · 산근 · 기타 · 실적 | 비고 「산근 4호표」 · 「대가 1호표」 · 「노무 6」 | 〔S〕`20_…:76-83` | +| 특수 줄 코드 | 율 PR · 곱 RR · 구간 율 RRS · 제외 구역 C · 묶음 T(소계 T1 · 계 T2 · 총계 T7 · 계약단가 T0) | 숨은 M · N 열 `PR_1` · `RR_1` · `RRS_(8)_1` · `C1_1` · `T7_1` | 엑셀(아래 2-5) | + +- 코드 번호는 프로젝트마다 새로 매김 — 여러 파일 공통 코드 36개가 모두 다른 품목. 〔582-24 B-5〕 +- 식 언어(원문 그대로 숨은 G 열에 출력): + +| 꼴 | 뜻 | 견본(엑셀 숨은 G) | +| --- | --- | --- | +| `&코드&` · `&코드+성분&` | 자원 참조 · 성분(L · M · S) 하나만 끌어옴 · 성분 없으면 셋 다 | `&L00002L&` · `&X00006S&` · `&D00075&` | +| `품'단위'` | 품 + 단위 글 | `0.26 * &L00002L&` · `0.31'Kg' * &M00034M&` | +| `/ Q` | 중기 성분 ÷ 작업량 → 출력 수량 칸 = 1/Q | 울진대흥 H = 0.18518…(1/5.4) | +| `Q = 3600*q*K*f*E/Cm` · `Cm = t1+t2+…` · `f = 1/1.175` | 기본공식 · 인자 줄(사용자 등록 · 10꼴 이상 · Cm 54꼴) | 봉화 「Q = 3600*q*K*f*E/Cm ='m3/hr'」 | +| `&PAnn[기준]:[저장]& * n'%'` | 율(PR) — 기준 비목(없음 = 합계 · L · M) 의 n % 를 저장 비목에 | `'잡재료비 :'&PA01M:M& * 11'%'` · `'공구손료 :'&PA02L:S& * 1'%'` | +| `&RAnn:M& * 0.08` · `&RS_L:M& * 0.03` | 곱(RR) · 소계 기준 곱(RRS) | 영월 단가산출근거!2082 · 3632 | +| `:=A01` | 중간 라벨(금액변수) | `'패널(유로폼) :'&M00084& * 0.89 / 10 :=A01` | +| `(=)` · `(==)` · `(===)` · `(-=)` | 소계 · 계 · 총계 · 제외 소계(계산하되 합계 제외) | 봉화 단가산출근거!613 「소계(제외금액)」 | +| `'글'` | 주석 · 품셈 근거 · 작업조건 | `'건설표준품셈 3-1-3(터파기),11-3(굴삭기) 적용'` | + +- PR · RR 셈: DEVD 참이면 1/수량, 아니면 PR = 수량 / 100 · RR = 수량. 기준 식 원천 = EQCODE 칸. 〔SR〕`30_…/편집기_중간기록_최종보고서아님.md` 「후속 확인」 · 「22시대 추가 조사」 +- 변수 선언 = 「대상 비목 · 저장 비목 · %」 셋을 함께 가짐. 〔S〕`28_…:9-34` + +### 1-4. 품셈 번호 · 기본공식 · 고친 흔적이 놓이는 자리 + +| 정보 | EST | STmate | +| --- | --- | --- | +| 품셈 번호 | 산근 글 줄(「[건설표준품셈 준용]」 · 「[건설표준품셈(8-2, 2016년 삭제)]」 · 「<25년 품셈개정>」) · 일위 규격 칸(「임도품셈, 발생석활용 50%적용」 · 「산림사업품셈」) | 산근 원문 첫 주석 줄(`'건설표준품셈 3-1-3(터파기),11-3(굴삭기) 적용'`) · 일위대가표 근거 줄(품명 「건설표준품셈」 · 규격 「7-2-2(찰붙임)」 · 금액 0 · 메타 EXI 1) · 일위 규격 칸(「임도품셈 5-5」) | +| 기본공식 · 인자 | 산근 글(q · K · f · E · Cm · Q · 분수 세 줄 그림) · 기계경비 시트(손료 · 주연료 · 잡품 · 운전사 환산식) · 노무 규격 칸 「3인/20㎥」(GN = 0.15 는 셈값) | 산근 원문(Q · Cm · t1~t6 · V1~V4 · n · P=qo*eo) · 중기사용료 시트 · INITIAL `RXNM_`(노임 환산식) | +| 사용자 고친 흔적 | UserInput · NewItem 체크(출력 안 남음) · 「경비성단가」 · 「(경비)」 · CalcIndex 2 · 율 결과 성분 · 줄 자릿수 · 코드 없는 글 줄 · 규격 속 품셈 산식 | 숨은 G 원문 식 그대로 · 「(경비 로적용)」 · 「계약단가」 · 「계 x 낙찰율(88.000%)」 · `(-=)` 구역 · BQCODE 자유 글 · 임시코드 신규등록 · 사용자 등록 Q식 | + +--- + +## 2. 출력 엑셀 칸 ↔ 내부 모델 대응표 + +### 2-1. EST 「일위대가」 시트(북부청 두 파일 · xls) + +| 칸 | 머리 줄(「제N호표」) | 구성 줄 | 내부 원천 | +| --- | --- | --- | --- | +| B | 「제N호표」 | — | HeadTitle 차례(= 비고 「일위N참조」 의 N) | +| C · D · F | 품명 · 규격 · 단위 | 품명 · 규격 · 단위 | Name · Size · Unite | +| E | — | 수량 | GN(규격에 품셈 산식 「3인/20㎥」 이 있으면 그 셈값) | +| G | — | 합계 단가 | TU | +| H · J · L · N | 호표 합계 · 노 · 재 · 경 금액 | 줄 합계 · 노 · 재 · 경 금액(소수1) | HeadTitle TC · NC · GC · JC / 줄 TC · NC · GC · JC | +| I · K · M | — | 노 · 재 · 경 단가 | NU · GU · JU(원천 목록 성분 그대로 · 경비성단가면 경비 하나) | +| O | — | 비고 「단산N참조」 · 「일위N참조」 · 빈칸 | 일위 탭 옵션 「비고란에 발췌근거 표시」(`TFRMOPTION.headcheckBigoShow`) — LinkIndex 104 · 103 의 근거 위치 | + +- 북부청임도 비고 · 성분 꼴(줄 수): 단산N참조 + 노재경 133 · 노재 96 · 노 21 · 재경 11 · 노경 7 / 빈칸 + 재 78(자재) · 빈칸 + 노재경 3(기계 hr) / 별도계상 규격 + 단가 없음 59 · 품명 「조약돌(별도계상)」 5 / 일위N참조 1 / 단위 % 1(「잡재료비 · 재료비의」). 북부청사방은 같은 꼴 + 빈칸 + 노(「철골공 인」 노임) 2 · 단산N참조 + 경만 3(경비성단가). +- 율 줄 = 품명(「잡재료비」) · 규격(기준 글 「재료비의」) · 수량(율 숫자) · 단위 % · 단가(기준액) · 금액. 〔E〕HeadMainDat 「설치비 · 재료비의 · 5 · % · SCheck 2」. +- 근거: 북부청임도 일위대가!3-40 · !357 · !364. + +### 2-2. EST 「단가산출」 시트 + +| 칸 · 줄 | 무엇 | 내부 원천 | +| --- | --- | --- | +| B 머리 「N.품명(규격)[단위]」 + C~F | 블록 머리 · 합계 · 노 · 재 · 경(원 미만 절사) | CostTitle 차례 · Name · Size · Unite · TC · NC · GC · JC | +| B 몸 줄 | LineData 글(제어문자 뺀 것) — 절 제목 「1. 채 집」 · 「가. 굴착기」 · 인자 · Q 분수 세 줄 · 성분 줄 · 소계 | CostMain LineData | +| C~F 가 찬 몸 줄 | 그 줄 TC · NC · GC · JC — 노임 · 자재 연결 줄(성분 하나) · 기계 소계 줄(105 / -5) · 계 줄(0 / -5) | CostMain 줄 금액(TC 0 인 줄은 빈칸) | +| 단가산출총괄표 J 비고 | 「(경비)」 · 「경비성단가」 | CostTitle SCheck 3 → 일위 줄에서 경비 칸만(북부청사방 단산 13 · 14 실측) | + +- 근거: 북부청임도 단가산출!4-60(「뒷채움돌 채집, 운반, 뒷채움 및 다짐 [건설표준품셈 준용]」 — 채집(기계 90 % + 인력 10 %) · 상차 · 운반 세 절) · !372 · !500-502 · !1087-1089 · 단가산출총괄표!8 · !14. + +### 2-3. EST 원천 · 총괄 시트 + +| 시트 | 칸 | 내부 원천 · 뜻 | +| --- | --- | --- | +| 노임단가 | No · 품명 · 규격 · 단위 · 적용단가 · 비고(「2026년(상)」) · Z~AC 당초 | Laborc · 비고 = 노임 해 | +| 자재단가 | 가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1(단가 + page) · 적용단가 · 비고(「26年북부지방산림청」) | Stuffc Cost1~6 · Page1~6 · TC · 「비고란에 발췌근거 표시」 | +| 기계경비 | 명칭 · 규격 · 산출근거(손료 = 취득가 ₩ × 계수 × 10(-7) · 주연료 ℓ × 단가 · 잡품 주연료의 % · 운전사 1인 × 노임 × `1/8*16/12*25/20`) · 노 · 재 · 경 · 비고(「'26年 개정」) | MachMain · 최종 §6-5 | +| 기계경비적용기준 | 환율(달러 · 엔 · 유로 + 고시일) · 기본재료비(경유 · 휘발유) | MachGijun · 갱신 항목 「유류대 · 환율」 | +| 일위대가총괄표 · 단가산출총괄표 · 기계경비총괄표 · 내역서총괄표 | F 합계 · G~I 성분 · J 비고 · Z~AC 당초 | **G~I 는 수식 칸(캐시 0)** — 북부청임도 BIFF FORMULA 683개 중 단가산출총괄표 285 · 일위대가총괄표 204 · 기계경비총괄표 96 · 내역서총괄표 60 · 기계경비 32(Z 합계) — 성분은 상세 시트 또는 Z~AC 에서 읽음 | + +- EST 엑셀 변환 창 경고 「엑셀변환후 금액변동이 발생할수 있으므로 변환된 엑셀자료의 금액을 확인하시기 바랍니다.」(`TFRMEXCELCONVERT.cxLabel1-2`) — 수식 칸을 엑셀이 다시 셈하면 EST 내부 값과 갈릴 수 있음. +- 출력 시트 12개 = EST 「엑셀로 변환」 항목. 〔582-24 B-2〕 + +### 2-4. STmate 「일위대가표」 시트(xlsx · 수식 살아 있음) + +| 칸 | 머리 줄 | 구성 줄 | 숨은 · 내부 원천 | +| --- | --- | --- | --- | +| A | 「제 N 호표」 · 다음 줄 이름 | 명칭 | COSTN NAME | +| B · C · D | 규격 · — · 단위 | 규격 · 수량 · 단위 | SIZE · QTY1(할증 뒤) · UNIT | +| E · F | — | 합계 단가 · 금액 | `=I+G+K` · `=J+H+L` | +| G · I · K | — | 노 · 재 · 경 단가 = **목록표 참조 수식**(`=노무비목록표!E5` · `=단가산출근거목록표!F70` · `=중기목록표!F19`) | 참조 시트 이름 = 갈래 | +| H · J · L | 합계 줄 = `ROUNDDOWN(SUMIF(P,O합계,H)+보정,0)` | `IF(C=0,0,ROUNDDOWN(G*C,1)+보정)` | 성분 소계 절사 | +| M | 호표 코드(B00260) | 비고 — 코드(`M00024` · `D02058`) · 「별산M00985」 · 코드 사전 이름(「노무 6」 · 「산근 1호표」) · BQCODE 글 | 「비고」 설정 | +| N(숨김) | `BDCOD|B00260 · POSS|7 · POSE|10`(몸 행 범위) | `COD|M00024 · EXI · DVD · BMK · IPR · KWN · BLA` (율 줄 + `PRI · PRO · EQC|A01 · UNI|% · TPR`) | 코드 · 줄 표지 메타 | +| O · P | 합계 열쇠(T7_1) | 줄 열쇠(`M00024_1`) · 묶음(`T7_1` · 근거 줄 `_1`) | SUMIF 묶음 | +| S~Y | — | 끝수 배분 칸(영월만 — 4절) | 총액 먼저 모드 | +| Z | — | 목록표 바로가기 하이퍼링크 | — | +| A 합계 줄 글 | 「합 계」 · 「합 계(경비 로적용)」 | — | 결과적용 비목(경비로 몰아넣기 · H · J = 0) | + +- 메타 실측(다섯 파일 666 줄): COD 머리 D 307 · M 140 · L 93 · B 75 · 없음 38(근거 줄) · X 29 · PR 16 · W 5 · C 2 · S 1 / EXI 1 = 59(율 줄 · 근거 줄) · 2 = 2 / IPR 1 = 43(율 기준에 드는 줄 — 「포장공 · 보통인부」 다음 「잡재료비 노무비의 3%」) / PRI · PRO = 기준 · 결과 비목(1 재 · 2 노 · 3 경 — 「잡재료비 노무비의」 PRI 2 · PRO 1 · 「공구손료 및 경장비의 기계경비」 PRO 3 · 「산악할증」 PRO 2). +- 근거: 동부청영월 일위대가표!5-40 · 봉화 일위대가표!72-74 · !78 · 울진소광 일위대가표!7-11. + +### 2-5. STmate 「단가산출근거」 시트 + +| 칸 | 무엇 | 내부 원천 | +| --- | --- | --- | +| A | 줄 코드 표시(설정 따라 `X00006S` · 「중기 14L」 · BQCODE 「01000000011」 · 「24년 1월」 · 「08' 신규」) · 「총 계」 · 「계약단가」 · 「계 x 낙찰율(88.000%)」 · 「총 계 (경비 로적용)」 | 코드 · COD_FMT · BQCODE · 줄 종류 | +| B | 보이는 글 = 수식 조립(`=" "&Z16&" * "&TEXT(I16,…)`) · 머리 = 코드 + 「이름 규격 / 단위」 | — | +| C~F | 합계 · 노 · 재 · 경 금액(`ROUNDDOWN(J*H,1)` · 소계 `SUMIF(N,M,…)` · 총계 `ROUNDDOWN(…,0)` · 계약단가 `ROUNDDOWN(계*H/100,0)`) | 줄 성분 | +| **G(숨김)** | **원문 식 한 줄**(`0.26 * &L00002L& =` · `(=)` · `'건설표준품셈3-1-3'`) · 머리 `BDCOD|D00002 · POSS · POSE` | `COSTN.SMT` IFORM | +| H | QTY(품 · `/Q` 면 1/Q · +1e-13 덧값) · 계약단가 줄은 낙찰율 | BDQTY 셈 수량 | +| I~L | 합계 · 노 · 재 · 경 단가(목록표 참조 · 율 줄은 `SUMIF(O,"1_01",…)` 기준액) | — | +| M · N · O | 줄 열쇠(`L00002_1` · `PR_1` · `T1_1` · `C1_1`) · 묶음 열쇠 · 율 기준 표지(`1_01`) | 계층 · 율 범위 | +| X | 「이름 / 규격」(목록표 참조) | — | +| Z~AC | 품 분해(Z 품 · AA 「*1」 · AC `=Z*1`) — 「수량부분 값 수정은 아래의 연두색 부분에」 | 출력 엑셀을 고쳐 다시 셈하도록 만든 꼴 | + +- 원문 식 꼴 실측(다섯 파일): 글 주석 1,178 · `(=)` 473 · `(==)` 194 · 중기 성분 `/ Q` 계열 수백 · `&PA01:M& * 2'%'` 71 · Q식 41+ · `t3'(적하시간)'=0.8'분'` 30 · `Cm = 18'sec (90˚)'` 29 … 토큰 X+S 320 · X+L 299 · X+M 299 · L 186 · M 89 · L+L 27 · PA+L:S 20 · PA+:S 19 · PA+M:M 17 · D 3. 〔`tmp/brain_642/B/stm_src.txt`〕 +- 근거: 동부청영월 단가산출근거!5-54 · !1336 · !1521 · !1542 · !2082 · !3632 · 울진대흥 단가산출근거!562 · !842-843 · 봉화 단가산출근거!243 · !589 · !613. + +### 2-6. STmate 목록표 · 기초 시트 + +| 시트 | 보이는 칸 | 숨은 메타(G 또는 J 열) | +| --- | --- | --- | +| 노무비목록표 | 코드 · 명칭 · 규격 · 단위 · 단가 · 비고(BQC 11자리) | `COD|L00002 · BQC|01000000075 · EQC|01000001002 · JDC|L001010101000002 · EDT|2024.상` | +| 재료비목록표 | 같음 · 단가 = `=자재단가대비표!O6` | `COD · BQC · EQC · JDC · EDT · DET|행` | +| 경비목록표 | 같음(중기 취득가 S · 단위 천원) | `EQC|02010100190 · JDC · EDT|2024` | +| 중기목록표 · 단가산출근거목록표 | 코드 · 명칭 · 규격 · 단위 · 합계 · 노 · 재 · 경 = 상세 시트 행 참조(계약단가 있으면 그 행) | `ADJ|F · RXX|0 · DET|행` | +| 자재단가대비표 | 후보 다섯(조달 · 물가자료 · 물가정보 · 거래 · 견적) · 적용단가 · 출처 축약 | 〔S〕`17_…:109-139` | +| 환율및기초자료 · 〓 INITIAL 〓(veryHidden) | 노임 환산식 · 환율 · 설정 스냅샷(ACTYP · ACTOP · CHGNM · CHBNM · CHNNM · CUTNM · OPTNM SML · RXNM_ · COND_) | 〔S〕`18_…:81-100` | + +### 2-7. 출력 프로그램 · 설정 판별 + +| 판별 | 신호 | +| --- | --- | +| EST | 시트 12 이름(원가계산서 … 노임단가) · 단가산출 머리 「N.이름[단위]」 · 비고 「단산N참조」 | +| STmate | 시트 「일위대가표」 · 「단가산출근거」 · 「〓 INITIAL 〓」 · 셀 「STmate」 표지 · 숨은 `COD|` 메타 | +| STmate 비고 설정 | M 열 · A 열이 코드 꼴(영월) / 코드 사전 이름 꼴(울진대흥 「노무 6」) / BQCODE 꼴(봉화 11자리 · 날짜 · 사용자 글) — 파일마다 한 꼴 | +| STmate 끝수 모드 | 일위대가표 S~Y 칸 수식 있음 = 총액 먼저(영월 · CHGNM · CHBNM False) / 없음 = 성분 먼저(나머지 넷 · True) | + +--- + +## 3. 매칭 규칙 · 신호 + +### 3-1. 1차 — 줄 갈래 확정 신호 + +| 갈래 | EST 출력 신호 | STmate 출력 신호 | 확정도 | 아이슬로 대상 | +| --- | --- | --- | --- | --- | +| 단가산출 부름 | 비고 「단산N참조」 | 숨은 COD `D…` · 단가 = `단가산출근거목록표!` 참조 · 비고 D 코드 / 「산근 N호표」 | 확정 | M02 단가산출(사용자 것) 또는 M01 단가산출 기초 조합(옵션값 입력 · 수량은 엑셀 그대로) | +| 일위대가 부름 | 비고 「일위N참조」 | COD `B…` · `일위대가목록표!` 참조 · 「대가 N호표」 | 확정 | M02 다른 일위대가(한 줄 표현) | +| 노임 | 비고 빈칸 + 노무 칸만 + 단위 인 + 노임단가 시트 품명 · 적용단가 일치 | COD `L…` · `노무비목록표!` | STmate 확정 · EST 강함 | M01 인력 | +| 자재 | 비고 빈칸 + 재료 칸만 + 자재단가 시트 품명 · 규격 · 적용단가 일치 | COD `M…` · `재료비목록표!` | 같음 | M01 재료(경유 · 휘발유 · 중유 · 전력 = 유가전력) | +| 기계 | 비고 빈칸 + 노재경 셋 + 단위 hr · 시간 + 기계경비 시트 명칭 · 규격 · 성분 일치 | COD `X…` · `중기목록표!` | 같음 | M01 기계 | +| 경비 · 일식 | (견적 · 표준시장 LinkIndex 101 · 21 — 표본 없음) | COD `S…` · `W…` · `경비목록표!` | STmate 확정 | M01 해당 그룹 · 없으면 사용자 값 | +| 별도계상 | 규격 「별도계상 · 별도계산」 또는 품명 「(별도계상)」 + 단가 0 · 코드 없는 글 줄(LinkIndex 0) | 비고 「별산」 머리 + 규격 「별도계상」 + 목록표 단가 0(숨은 COD 는 M 코드) | 확정 | 재료(금액 0 · 수량만) | +| 율(%) | 단위 % + 규격 「…의」(노무비 · 재료비 · 주재료비 · 가공노무비 · 전체금액) | COD `PR…` · 메타 UNI % · PRI · PRO · IPR · 규격 「노무비의 %」 | 확정 | M01 계수 / M02 율 줄 | +| 근거 · 주석 줄 | 코드 · 단가 없는 글 줄(「<현장가공>」) | COD 없음 · EXI 1 · 금액 0 · 품명 「건설표준품셈」 | 확정 | 매칭 대상 아님 — 2차 품셈 번호 원천 | +| 성분 몰아넣기 | 단가산출총괄표 비고 「(경비)」 · 「경비성단가」 → 일위 줄 경비 칸만 | 합계 줄 「(경비 로적용)」 | 확정 | 결과 성분 옵션(합계로 대조) | + +- 금액 칸 배치 = 성분 지문: 노만 → 노임 또는 인력 산근 · 재만 → 자재 · 노재경 → 기계 또는 기계 산근 · 경만 → 경비성단가 · 재경 → 자재 + 장비 산근(「P.V.C파이프설치」). +- 이름만으로 못 가르는 까닭: 같은 이름 산근이 여러 블록(「구조물터파기」 인력 · B/H 90 % + 인력 10 %) · 코드 번호는 프로젝트마다 다름 · 규격에 사용자 글(「임도품셈 5-5」 · 「산림사업품셈」). + +### 3-2. 2차 — 비고 → 단산 상세 → 품셈 번호 → 기본공식 + +| 걸음 | EST 자리 | STmate 자리 | +| --- | --- | --- | +| ① 비고 → 블록 찾기 | 「단산N참조」 N = 단가산출 시트 「N.」 머리(목록 차례 — 코드 아님 · 「단산,일위 Title데이타 복구」 뒤 바뀔 수 있음) · 「일위N참조」 → 「제N호표」 | 숨은 COD `D02058` = 단가산출근거 머리 `BDCOD|D02058` · 몸 범위 `POSS · POSE` · 목록표 행 참조 수식으로도 바로 감 | +| ② 블록 안 절 나누기 | 절 제목 「1. 채 집」 · 「가. 굴착기(타이어형)(0.6㎥)」 · 「나. 인 력 (10%)」 · 「다. 소 계」 · 소계 줄(C~F 찬 줄) | 원문 주석 `'1. 포설(그레이다 3.6 m)'` · `(=)` 소계 · `(==)` 계 · N 열 묶음 | +| ③ 품셈 번호 | 머리 아래 첫 글 줄 「[건설표준품셈 준용]」 · 「건설표준품셈 6-1-1 적용」 · 옛 판 「(8-2, 2016년 삭제)」 · 「<25년 품셈개정>」 · 일위 규격 칸 | 원문 첫 주석 · 일위대가표 근거 줄(EXI 1) · BQCODE 판 표시(봉화 「2024년 개정」) | +| ④ 기본공식 | Q · Cm · q · K · f · E 인자 줄 · 「÷ Q × 90%」 · 노무 「172,068 × 0.3인/㎥ × 10%」 · 기계경비 시트 | 원문 Q식 · Cm식 · t · V · n 줄 · `&X…L& / Q` · 중기사용료 시트 | +| ⑤ 수 지문 | 산근 머리 금액 = 일위 줄 단가(일위 줄 G = 단가산출 머리 C) | 목록표 단가 = 단가산출근거 총계(또는 계약단가) 행 | + +- 품셈 번호는 비고에 없음(1,350 줄 중 0) — 블록 글 · 근거 줄에만. 〔582-24 A-1〕 +- 품셈 번호 함정: 옛 판 번호가 지금 판 다른 공종과 같은 번호(건설 11-3 굴삭기 ↔ 현행 11-3 가스 · 산림 5-1-2) — 번호만으로 잇지 않음. 〔582-24 B-6〕 + +### 3-3. 여러 정보가 엮이는 꼴 + +| # | 꼴 | 출력에서 보이는 모습 | 근거 | +| --- | --- | --- | --- | +| 1 | 한 산근 = 여러 절(채집 + 상차 + 운반 · 포설 + 다짐) | 한 블록 안 절 셋 · 절마다 소계 · 끝 「계」 | 북부청임도 단가산출!8-60 | +| 2 | 기계 / 인력 비율 조합 | 「÷ 23.1 × 90%」 + 「× 0.3인/㎥ × 10%」 · 규격 「B/H 90%+인력10%」 | 같음 · 〔S〕`31_…:37-38` | +| 3 | 산근 안 산근 | EST `*단산N참조*`(LinkIndex 104) · STmate `&D00075&` · A 「산근 1호표」 | CostMainDat PkID 188 · 울진대흥 단가산출근거!562 | +| 4 | 일위 안 일위 | EST 「일위N참조」(103) · STmate B 코드 — 실무 350 조합 중 150 이 2단 이상 | 〔S〕`31_…:67-87` | +| 5 | 직접 줄 호표(기초 품을 호표에 맨 줄로 펼침) | 노임 · 기계 줄만 · 규격 「3인/20㎥」 | 〔582-24 A-6〕 55/245 | +| 6 | 율 줄 기준 범위 | EST 머리 아래 위쪽 행 합 · SKind 구간 · 규격 글자 / STmate IPR · `1_01` 표지 줄만 · RRS 소계 | HeadMainDat `A01` · 영월 단가산출근거!1336 | +| 7 | 율 결과 성분 ≠ 이름 | 「공구손료 및 경장비(진동기)의 기계경비 노무비의 2%」 → 재료비 칸(EST SCheck 1) · STmate PRO 3 경비 | HeadMainDat · 북부청임도 단가산출!1087-1089 | +| 8 | 할증 세 갈래 | 수량 할증(「×1.03m」 · 「×5㎡×1.05」 — 수량에 이미 듦) · 금액 할증(「산악할증 노무비의 %」 율 줄) · 품 할증(「× 0.1 × 2」) | CostMainDat · 〔S〕`07_…:70` | +| 9 | 손료 세 갈래 | 기계 손료(취득가 × 계수 × 10⁻⁷) · 재료 손료(「내수합판 10,984 × 1.03㎡ × 38%」 · `* 0.443'%'`) · 공구손료 율 줄 | 북부청임도 기계경비!5 · 단가산출!1181 | +| 10 | 성분 몰아넣기 | 「(경비)」 · 「경비성단가」 · 「(경비 로적용)」 | 2-2 · 2-4 | +| 11 | 낙찰율 계약단가 | 산근 「계약단가」 · 「계 x 낙찰율(88.000%)」 → 목록표가 그 행을 씀 | 울진대흥 단가산출근거!842-843 · 단가산출근거목록표 「제 15호표」 | +| 12 | 제외 구역 · 계산 제외 | STmate `(-=)` 「소계(제외금액)」 · EST CalcIndex 2(줄 금액 보이나 합계 밖) | 봉화 단가산출근거!613 · HeadMainDat 「주철뚜껑」 | +| 13 | 별도계상 | 수량만 · 금액 0 | 2-1 · 2-4 | +| 14 | 직접 입력 단가 | EST 입력단가(ValueIndex 4) · STmate 강제금액 · 「바꾸기」 | 〔E〕최종 §5 · 〔S〕`28_…:118` | +| 15 | 분수 그림 Q 식 | EST 세 줄(「3,600 × q …」 / 「Q = ───── =」 / 「18」) | 북부청임도 단가산출!24-26 | +| 16 | `/ Q` 역수 수량 | STmate H = 1/Q | 울진대흥 단가산출근거!19 | +| 17 | 같은 산식 다른 자릿수 | 「= 2,299.4」 · 「= 2,300」 | 북부청임도 단가산출!28 · !151 | + +### 3-4. 매칭 단위 · 차례 (제안 — 구조에서 나온 것) + +- 단위 = 일위 줄(1차 갈래) → 산근 블록의 절(2차) — 블록 하나에 M01 기초 여럿(1 · 2 · 3번 꼴)이 들므로 「한 줄 = 기초 여럿(복수 선택)」 이 정상 꼴. +- 차례 = 출력 판별(2-7) → 숨은 메타(STmate) 또는 비고 + 성분 배치(EST) → 원천 시트 이름 · 단가 대조 → 블록 → 절 → 품셈 번호 → 기본공식 인자(q · K · f · E · Cm · 품) → 수 지문. +- 매칭 열쇠로 안 쓸 것: 경쟁사 코드 번호(프로젝트마다 다름) · EST 「단산N」 의 N(차례 · 판마다 다름 — 같은 파일 안 위치로만) · 품셈 번호 단독. + +--- + +## 4. 검증 · 대조 규칙(우리 금액 ↔ 엑셀 금액) + +| 자리 | EST | STmate | 대조 규칙 | 근거 | +| --- | --- | --- | --- | --- | +| 일위 줄 성분 금액 | 수량 × 단가 소수1 **절사** | `ROUNDDOWN(단가×수량,1)` + (총액 먼저면) 끝수 배분 | EST 1,160/1,160 · STmate 수식 그대로 | 북부청 두 파일 실측 · 영월 일위대가표 H7 | +| 호표 성분 | Σ줄 성분 → 원 미만 절사 | `ROUNDDOWN(SUMIF(…)+보정,0)` | EST 95/95 | 실측 · 〔S〕`17_…:13-24` | +| 호표 합계 | 성분 셋 합(줄 합계 절사 아님) | `=I+G+K` | EST 94/94 · 줄 합계를 더해 절사하면 1원 틀림(제1호표 1,040,053 ≠ 1,040,052) | 북부청임도 일위대가!5 | +| 끝수 배분(총액 먼저) | 옵션 「총액 맞춤」 f197a4 최대 나머지 배분(북부청 표본은 꺼짐) | 총액 `ROUNDDOWN(E×C,1)` − 성분 절사 합 → 0.1(합계는 1)씩 버린 소수 큰 성분부터 · 동률 차례 경비 › 재료 › 노무(OPTNM `SML`) | 영월만: 일위 줄 37/131 · 호표 합계 20/30 · 산근 총계 42/69 보정 0 아님 | 〔E〕최종 §6-1 · 〔SR〕`15_…/작업메모` · 영월 일위대가표 V~Y | +| 산근 줄 | 일반 식 2자리 사사오입 · 성분 · 연결 줄 1자리 절사 · 합계 원 미만 절사 | 성분 = 절사(시간단가 / Q, 소수1) · Q 소수2 먼저 확정 · 총계 원 미만 절사 | Q 는 글에 적힌 값으로 나눔(원값으로 나누면 어긋남) | 〔E〕최종 §6-4 · 〔S〕`18_…:47-79` | +| 율 줄 | 기준 = 머리 아래 위쪽 행 합(SKind 구간 · 내역은 Level) · 기준 성분 = 규격 글자(노 · 품 · 인 / 재 · 자 / 경 / 합계 · 총) · 결과 = SCheck | 기준 = IPR · `1_01` 표지 줄 합 · PR = 수량/100 · RR = 수량 · 결과 = PRO · 저장 비목 | 기준 줄 범위 · 결과 성분부터 맞춘 뒤 금액 | 〔E〕최종 §6-2 · 〔SR〕`30_…` | +| 할증 · 계수 곱 | 글 차례대로 | 식 문자열 좌→우 순차(계수 미리 접으면 1원 틀림) | 노임 환산 `1/8*16/12*25/20` 좌→우 18/18 | 〔S〕`18_…:33-45` | +| 노임 해 | 노임단가 비고 「2026년(상)」 | 노무비목록표 `EDT|2024.상` · INITIAL `M_VER` | 노임 단가가 다르면 해부터 맞춤 | 실측 | +| 자재 단가 출처 | 6 출처 · ValueIndex(최저 · 평균 · 최고 · 선택 · 입력) — 표본은 최저 93/93 | 5 후보 · 0 아닌 최저(76/76) · 6번째 = 적용 | 적용단가 = 최저가 아니면 사용자 고정 | 실측 · 〔S〕`17_…:109-139` | +| 기계 시간단가 | 손료(취득가 × 계수 × 10⁻⁷) · 연료 · 잡품 · 운전사 → 기준표 자릿수 절사 → 합계 원 미만 절사 | 손료율 × 취득가(천원) · 성분별 절사 후 합 | 성분별 절사 | 〔E〕최종 §6-5 · 〔S〕`17_…:28-52` | +| 낙찰율 | 낙찰 행 52 · O* 보관 | 산근 계약단가 = `ROUNDDOWN(계×낙찰율/100,0)` 성분별 · 목록표가 이 행 | 품셈으로 셈한 우리 값 × 낙찰율 로 대조 | 울진대흥 · 영덕 · 울진소광 | +| 성분 몰아넣기 | 경비성단가 · 「(경비)」 | 「(경비 로적용)」 | 성분 대조 전에 합계로 대조 | 2-2 · 2-4 | +| 반올림 함수 | 공통 도구 · 모드 1 사사오입 · 2 절사 · 3 올림식 | 내부 은행가 RoundTo · 출력 엑셀 수식은 Excel ROUND · ROUNDDOWN | STmate 엑셀 값은 엑셀 계산값(캐시) — 내부값과 원 단위 갈릴 수 있음 | 〔S〕`11_…:124-154` | +| 수식 칸 | 총괄표 성분 · 기계 합계 = 수식 · 캐시 0 | 거의 모든 금액 = 수식 · 캐시 있음 | EST 총괄표 성분은 읽지 말고 상세 · 당초 칸에서 | BIFF 실측 | +| 수량 덧값 | — | 수량 + 1e-13(0.0800000000001) | 절사 전 덧값 유지 또는 Decimal | 봉화 단가산출근거!243 | + +- 대조 차례(제안): 블록 · 호표 합계 → 성분(몰아넣기 · 결과적용 · 낙찰율 확인) → 줄 → 절. 원 단위 차 ±1 은 끝수 배분 · 반올림 경로 차로 먼저 의심. + +--- + +## 5. 지식DB 에 없거나 어긋나는 것 + +| # | 무엇 | 지식DB 지금 | 이번 관찰 | 꼴 | +| --- | --- | --- | --- | --- | +| 1 | STmate 출력 숨은 칸(일위대가표 N 메타 · 단가산출근거 G 원문 식 · M · N · O 열쇠 · Z~AC 품 분해 · 목록표 메타) | 17 · 18 · 31 은 값 칸만 · 582-24 B-2 「BDCOD|B…」 이름만 | 원문 식 · 줄 표지 · 율 범위가 출력에 다 있음 | 없음 (코드 `M02_Hopyo_Stmate.py` 는 G 열 일부 이미 씀) | +| 2 | 메타 EXI · IPR · PRI · PRO · EQC · UNI · TPR · KWN · BLA · DVD · BMK 뜻 | 없음 | IPR = 율 기준에 드는 줄 · PRI/PRO = 기준 · 결과 비목(1 재 · 2 노 · 3 경) · EXI 1 = 율 줄 · 근거 줄 | 없음 · 추정 | +| 3 | STmate 끝수 배분(총액 먼저) | 17번 「일위대가표 절사 94.2 %, 나머지는 구획 어긋남」 | 영월은 수식으로 배분 실재(호표 합계 20/30 보정) — 5.8 % 일부가 배분일 공산 | 어긋남 후보 | +| 4 | CHGNM · CHBNM 뜻 | 〔원〕`STC_필드사전_핵심.md:25` 「변경 관련 플래그 ⚠」 | 영월만 False + 끝수 배분 칸 · CHNNM(내역 비목별 먼저/총액 먼저 — 〔SR〕14)과 같은 꼴 → 일위대가 · 산근 계산 방식 추정 | 어긋남 · 추정(1건) | +| 5 | BQCODE 뜻 | 〔원〕핵심 「단가 적용월 등 ⚠」 · 582-24 A-1 「11자리 수 뜻 확인 못 함」 | 코드 종류마다 다른 자유 칸 — L = 11자리(호환 노임 코드 추정) · M = 적용월 · X · D = 사용자 글(「08' 신규」 · 「2024년 개정」) · 봉화 비고 = 이 칸 출력 | 어긋남 · 해소 | +| 6 | 산근 계약단가(낙찰율) 줄이 목록표 단가 원천 | 26 · 27 「NAGCD · 결과값에 낙찰율적용」 이름만 | 세 파일 실재 · 목록표가 계약단가 행 참조 | 없음 | +| 7 | 특수코드 `&PAnn기준:저장&` · `&RAnn:M&` · `&RS_L:M&` 문법 | 28 「특수코드(&PA01&)」 이름만 · 〔SR〕30 PR/RR 계수 | 기준 · 저장 비목 · `1_01` 범위 표지까지 출력 수식과 맞음 | 없음 | +| 8 | EST 출력 엑셀 칸 대응(일위 B~O · 단가산출 B~F · 원천 시트) | REA 최종 §9 「변환 기능 범위 밖」 | 2-1~2-3 | 없음 | +| 9 | EST 총괄표 성분 칸 = 수식(캐시 0) · 기계 합계 칸 수식 | 없음 | FORMULA 683 · 503 개 · 변환 창 금액변동 경고 | 없음 | +| 10 | EST 「단산N참조」 = 일위 탭 「비고란에 발췌근거 표시」 · N = 목록 차례 | 582-24 「EST 산근 글 표지」 | 옵션 이름 · 당초 25 ↔ 현재 7 (차례라 판마다 바뀜) | 덧 | +| 11 | EST 별도계상 = 코드 없는 글 줄(LinkIndex 0 · 규격 「별도계산」) | 없음 | HeadMainDat 견본 · 북부청 59 + 5 줄 | 없음 | +| 12 | EST 율 결과 성분 실례(공구손료 기계경비 → 재료) · CalcIndex 2 + 율 기준 | REA 규칙만 | HeadMainDat 「설치비 SCheck 2 · 주철뚜껑 CalcIndex 2」 | 덧 | +| 13 | EST 출력 반올림 실측(줄 소수1 절사 · 호표 성분 절사 · 합계 = 성분 합 · 자재 최저) | REA 표본(.estx) 대조만 | 엑셀 1,160 · 95 · 94 · 93 실측 | 덧 | +| 14 | STmate 비고 · A 열 = 설정 따라 코드 / 코드 사전 이름 / BQCODE | 582-24 「봉화 = 설계자가 손으로 적은 글」 | 손글은 맞으나 자리 = BQCODE 칸 출력 | 일부 어긋남 | +| 15 | EST 자재단가 시트 출처 이름(가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1) | STmate 슬롯 이름만(17 · 20) | EST 도 설치 · 기관마다 이름이 다를 수 있음(미확인) | 없음 | +| 16 | STmate 수량 덧값 1e-13 · `/Q` 역수 수량 | REA 30 DEVD 역수 규칙만 | 출력 H 칸 실측 | 덧 | + +- 지식DB 반영은 지식DB 운영지침(`resources/knowledge/00_운영지침.md`)대로 따로 — 이 문서는 근거 · 후보만. + +--- + +## 근거 · 도구 + +- 지식DB: 〔E〕`ESTPlus2_REA_최종보고서_20261030.md` · `09_…/ESTPlus2_아이슬로_내역서개발_참고정리_20261029.md` · `09_…/ESTPlus2_산근LineData_수량연결_정적분석_20261029.md` · `07_…/{CostMain,HeadMain,HeadTitle,CostTitle,Stuffc,Laborc,MachTitle}Dat.decoded_candidates.json` · `02_화면구성/captions.json` / 〔S〕`02` · `07` · `11` · `17` · `18` · `20` · `23` · `26` · `28` · `31` / 〔SR〕`15_…/작업메모_최종아님.md` · `30_…/편집기_중간기록_최종보고서아님.md` / 〔원〕`SIxMemo_구조.md` · `STC_필드사전_핵심.md`. +- 앞 분석: `docs/raw/요구_1102/_분석_582-24_비고_경쟁사.md` · `docs/raw/요구_내역서/_분석_내역1-A_EST.md` · `_분석_내역1-B_STmate.md` · `_분석_내역3-A_EST_화면.md` · `_분석_내역3-B_STmate_화면.md`. +- 이번 도구(`tmp/brain_642/B/`): `peek.py`(시트 · 칸 엿보기) · `stm_src.py` → `stm_src.txt`(STmate 원문 식 꼴 · 토큰 셈) · `stm_rows.py`(STmate 특수 줄) · `est_rows.py`(EST 줄 거르기). 실측 수(1,160 · 95 · 94 · 93 · 보정 칸 · FORMULA 수)는 이 창에서 직접 돌린 값. diff --git a/docs/raw/요구_1104/_분석_642-C_북부청엑셀_정보활용.md b/docs/raw/요구_1104/_분석_642-C_북부청엑셀_정보활용.md new file mode 100644 index 000000000..d9512fa79 --- /dev/null +++ b/docs/raw/요구_1104/_분석_642-C_북부청엑셀_정보활용.md @@ -0,0 +1,232 @@ +# 642-C 북부청 임도 엑셀(EST) 정보 활용 — 매칭을 쉽게 할 길 + +대상: `resources/knowledge/original/실무문서/2026_실무일위대가 모음/2026년_북부지방산림청_임도사업_설계내역서(공통단가).xls` (사본 `tmp/brain_642/C/src.xls` 로만 읽음 · 원본 · 코드 · 마스터 · git 손대지 않음) + +## 요약 (열 줄) + +1. 시트 12 = 원가계산서 · 내역서총괄표 · 내역서 · 일위대가총괄표 · 일위대가 · 단가산출총괄표 · 단가산출 · 기계경비총괄표 · 기계경비 · 기계경비적용기준 · 자재단가 · 노임단가 — 시트끼리 잇는 끈 = 비고 「단산N참조 · 일위N참조」 + 품명·규격 같음 + 단가 숫자 같음(코드 칸 · 숨은 칸 · 메모 · 서식 신호 없음). +2. 일위대가 세부행 415: 1차(비고 · 별도계상 · 단위)만으로 337(81.2 %) 갈래 확정 — 단산 268 · 일위 1 · 별도계상 64 · % 1 · hr 3. +3. 나머지 78 은 전부 「자재단가」 시트 품명+규격 같음으로 확정 → 415/415(100 %) · 금액 있는 350 줄 단가도 단가표 값과 전부 같음 · 비고 번호와 총괄표 이름 269/269 일치. +4. 같은 EST 꼴 북부청사방 201 · 거창 68 도 같은 4 단계로 100 %(거창은 「별도계산」 글자 변형 3 줄 · 사방은 두 시트에 같은 이름 1 줄만 주의) · 내역서 139 줄도 같은 길로 100 %. +5. 단산 블록 95: 머리 「N.품명(규격)[단위]」 = 단산총괄표 95/95 · 품셈 번호 읽힘 91(고유 72 · M01 로직 같은 번호 59 · 아랫마디 4) · 기본공식 꼴 94 블록에서 읽힘. +6. 단산 글 속 단가 숫자가 노임(157) · 기계(319 · 노재경 세 값 = 기계 한 대 65 블록) · 자재(52) · 단산(16) 값으로 역조회됨 — 블록이 쓰는 LB · EQ · MT 를 숫자로 알아냄. +7. 얽힘: 품셈 번호 2+ 블록 18 · 세부 작업 절 2+ 블록 71 · 단산 안 단산(67 · 69 → 68) · 비율 섞음 44 · 준용 · 옛 해 · 삭제 조항 · 오타 각 1~4 — EST 는 한 줄 한 단산 번호, 여러 품셈은 블록 안에 묶임. +8. M01 대응: 노임 19/19 이름 · 값 같음 · 기계 31/32 지문(손료 바탕값 · 손료계수 · 주연료) 한 키 · 자재 91 중 자동 12 · 사람 확인 후보 41 · 후보 없음 38(현장 · 지역 품목). +9. 엑셀 = 옛 값: 노임 · 기계 손료는 M01 과 같음 · 유가(경유 1,376 ↔ 1,846.39) · 환율(USD 1,442 ↔ 1,414.9) · 자재 일부 다름 — 단가는 참고, 로직 · 매개값으로 이음. +10. 쉬운 길 = 「단가표 시트 → 엑셀 사전(갈래 + M01 키)」 먼저 · 세부행은 비고 번호 → 별도계상 → 단위 → 사전 4 단계 · 단산 블록은 품셈 번호 → M01 로직 후보, 글 속 단가 숫자 → 사전 역조회, 공식 꼴 → 옵션값 · STmate 꼴은 줄마다 코드(M · L · X · S · B · D · W)가 사전 열쇠. + +--- + +## 1. 시트 12 — 크기 · 머리 · 내용 · 잇는 칸 + +A 열은 모든 시트에서 빈 여백 칸. 크기 = 행 × 열(xlrd 실측). + +| 시트 | 크기 | 머리(B 열부터) | 내용 꼴 | 잇는 칸 · 끈 | +| --- | --- | --- | --- | --- | +| 원가계산서 | 35×8 | 비목 · 구분 · 금액 · 요율 · 산출근거 | 원가 비목 18 + 소계 A~M | 「4 × 0.167」 꼴 식 글 · 내역서 원가 줄과 같은 값 | +| 내역서총괄표 | 45×11 | 공종 · 품명 · 규격 · 수량 · 단위 · 합계 · 노 · 재 · 경 · 비고 | 장 10(토공~관급자재대) · 절(1.1 등) 합계 | 내역서 공종 줄 합계 | +| 내역서 | 202×15 | 공종 · 품명 · 규격 · 수량 · 단위 · (단가 · 금액)×4 · 비고 | 공종 줄 + 세부 139 + 원가 줄 21 | 비고 「단산N참조」 47 · 「일위N참조」 67 · 단위 % 1 · 그 밖 24 = 자재단가 품명+규격 23 + 단산총괄 이름 1 | +| 일위대가총괄표 | 72×29 | 호표 · 품명 · 규격 · 단위 · 합계 · 노 · 재 · 경 · 비고 · (Y~AB) 당초 합 · 노 · 재 · 경 | 호표 68 | 「제N호표」 = 일위대가 시트 호표 · 노재경 칸은 0, 실제 값은 당초 칸 | +| 일위대가 | 560×15 | 호표 · 품명 · 규격 · 수량 · 단위 · (단가 · 금액)×4 · 비고 | 호표 68(빈 호표 1 = 제61호표) · 세부 415 | 비고 단산N 268 · 일위N 1 · 별도계상 64 · 단위 hr 3 · % 1 · 나머지 78 = 자재단가 | +| 단가산출총괄표 | 99×29 | No · 품명 · 규격 · 단위 · 합계 · 노재경 · 비고 · 당초 | 단산 95 | No = 단가산출 머리 「N.」 95/95 · 비고 「(경비)」 8 · 「경비성단가」 1(내역서에서 경비로 몰아 넣음 신호) | +| 단가산출 | 4345×6 | 산출근거 · 합계 · 노 · 재 · 경 | 블록 95 · 글 줄(합계 줄에만 돈 칸) | 머리 「N.품명(규격)[단위]」 · 글 속 품셈 번호 · 단가 숫자(노임 · 기계 · 자재 · 단산 값) · 「*단산68참조*」 | +| 기계경비총괄표 | 36×29 | No · 품명 · 규격 · 단위 · 합계 · 노재경 · 당초 | 기계 32 | 일위대가 hr 줄 · 단산 글 「노무비 : A ÷ Q」 세 값(A · B · C) | +| 기계경비 | 192×30 | 명칭 · 규격 · 산출근거 · 합계 · 노재경 · 비고 | 기계 32 블록 — 손료 · 주연료 · 잡품 · 운전사 줄 | 손료 「바탕값 ₩× 계수 × 10(-7)」 = M01 EQ 가격 · 손료계수 · 주연료 단가 = 유가 · 운전사 = 노임단가 · 노임계수 | +| 기계경비적용기준 | 31×17 | 환율 · 기본재료비 · 노임계수 | 환율 3 · 유가 2 · 노임계수 5(1/8*16/12*25/20 등) | 유가 → 기계경비 주연료 · 노임계수 → 운전사 | +| 자재단가 | 101×29 | No · 품명 · 규격 · 단위 · 가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1(단가 · page) · 적용단가 · 비고 | 자재 93(경유 · 휘발유 포함) | 일위대가 재료 줄 · 단산 글 자재 단가 · 내역서 사급 · 관급 줄 · page 칸 8 자리 조달 번호 14 | +| 노임단가 | 34×29 | No · 품명 · 규격 · 단위 · 적용단가 · 비고 | 직종 19 | 단산 글 「직종 : 단가 ×」 · 기계경비 운전사 | + +신호 없는 것: 숨은 행 · 열 0 · 숨은 시트 0 · 메모 0 · 하이퍼링크 0 · 이름 정의 = 인쇄영역 · 인쇄제목 22 뿐 · 셀 서식(글꼴 · 굵기 · 들여쓰기 · 색) 머리 · 몸 모두 같음 · 코드 칸 없음. + +덤 신호: + +- 총괄표 3 종의 노 · 재 · 경 칸 = 0 · 실제 값은 Y~AB 「당초」 칸(합계는 E 칸과 같음 95/95). +- 자재단가 적용단가 = 원천 가운데 최저가 93/93(가격정보 26 · 물가자료 27 · 거래가격 20 · 물가정보 15 · 유통물가 5) · 비고는 모두 「26年북부지방산림청」. +- 기계경비 운전사 줄 = 노임 × 노임계수(1/8*16/12*25/20) — 시간당 노무비 59,020 · 49,778 · 36,248 이 단산 글에 그대로 나옴. + +## 2. 매칭을 쉽게 할 정보 + +| 정보 | 어디 | 무엇을 정해 주나 | 실측 | +| --- | --- | --- | --- | +| 비고 「단산N참조 · 일위N참조」 | 일위대가 · 내역서 비고 칸 | 갈래(단가산출 · 일위대가) + 번호 | 일위대가 269 · 내역서 114 · 번호 ↔ 총괄표 이름 전부 맞음 | +| 「별도계상 · 별도계산」 | 품명 · 규격 칸 | 재료(관급 · 사급 자재대로 따로 계상) | 64 줄 · 고유 6(레미콘 2 · 큰돌 · 조약돌 · 알골재 · 이형철근) · 모두 재료 | +| 단위 % · hr · 인 | 단위 칸 | 계수(율) · 기계 · 인력 | % 1(잡재료비 재료비의 3 %) · hr 3(대형브레이카) · 인 0(사방 2 · 거창 10) | +| 자재단가 시트 | 품명 · 규격 · 단위 · 원천 6 · 적용 | 재료 확정 + 단가 | 나머지 78 줄 전부 품명+규격 같음 | +| 노임단가 시트 | 직종 19 | 인력 확정 · 단산 글 직종 단가 | 단산 글 노임 단가 157 줄 = 노임단가 값 | +| 기계경비총괄표 + 기계경비 | 기계 32 · 손료 지문 | 기계 확정 · M01 EQ 키 | 단산 글 세 값 → 기계 한 대 65 블록 · EQ 지문 31/32 | +| 기계경비적용기준 | 유가 2 · 환율 3 · 노임계수 5 | 유가전력 · 환율 · 운전사 환산 | 이름으로 MO · FX | +| 단가산출총괄표 | No · 품명 · 규격 · 당초 노재경 | 단산 블록 번호 · 금액 | 95/95 머리 · 금액 같음 | +| 일위대가총괄표 | 호표 68 | 일위 번호 · 금액 | 내역서 일위N 67 + 일위대가 일위46 1 | +| 단산 글 품셈 번호 | 단가산출 글 | 책 · 절 → M01 로직 후보 | 91/95 블록 | +| 단산 글 기본공식 | 단가산출 글 | 로직 꼴 · 옵션값(q · K · f · E · Cm · 품 · 율 · Q hr) | 94/95 블록 | +| 단산 글 단가 숫자 | 단가산출 글 | 블록이 쓰는 LB · EQ · MT · 다른 단산 | 단가 숫자 줄 604 중 실제 단가 전부 단가표 값(남은 60 = 3,600 상수 · 율 중간 셈) | +| 자재 page 칸 8 자리 | 자재단가 가격정보 page | 조달 물품 번호 | 14 · M01 에는 이 번호 없음(쓸 수 없음) | + +## 3. 전수 실측 + +### 3-1. 일위대가 세부행 갈래 + +판정 차례: ① 비고 번호 → ② 별도계상 · 별도계산 → ③ 단위 % · hr · 인 → ④ 단가표 시트(자재 · 노임 · 기계 · 단산총괄 · 일위총괄) 품명+규격. + +| 파일 | 세부행 | 1차(①~③) | 2차(④) | 미정 | 단가 같음 | 비고 번호 ↔ 이름 | +| --- | --- | --- | --- | --- | --- | --- | +| 북부청임도 | 415 | 337(81.2 %) | 78 | 0 | 350/350 | 269/269 | +| 북부청사방 | 201 | 164(81.6 %) | 37 | 0(두 시트 같은 이름 1) | 197/199 | 141/141 | +| 거창 | 68 | 55(80.9 %) | 13 | 0(별도계산 넣은 뒤) | 58/59 | 33/33 | +| 북부청임도 내역서 | 139 | 115(82.7 %) | 24 | 0 | 131/138 | 114/114 | + +북부청임도 1차 나눔: 단산 268 · 별도계상 64 · 기계(hr) 3 · 일위 1 · 계수(%) 1 · 2차 78 = 재료(자재단가). 고유 줄 82(1차 58 · 2차 24). + +단가 다름 사례: 내역서 가설창고 3 줄(단산총괄 비고 「(경비)」 — 내역서는 경비 한 칸) · 「큰돌쌓기(찰쌓기)」 1 줄(수량 · 금액 빈 줄 · ∼ 글자) · 건설폐기물 · 검증수수료 3 줄(내역서 경비 칸) · 사방 「뒷채움잡석구입운반」 2 줄. + +금액 칸 꼴(덤 신호): 2차 78 줄 모두 「재료비 단가만」 — 꼴만으로도 재료 후보. + +### 3-2. 단산 블록 95 — 품셈 번호 · 기본공식 + +| 항목 | 전체 95 | 일위대가가 부르는 49 | +| --- | --- | --- | +| 품셈 번호 읽힘 | 91 | 48 | +| 번호 없음 | 4(빈 블록 1 · 층따기 · 잔토정리 · 물운반 — 공식만) | 1 | +| 번호 2 개 이상 | 18 | 9 | +| 세부 작업 절 2 개 이상 | 71 | 36 | +| 부르는 곳 | 일위대가 49 · 내역서만 45 · 단산 안에서만 1(68) | — | + +책(번호 인용 수): 건설(부문 안 적음) 78 · 산림 27 · 건설(건축) 4 · 임도(옛) 3 · 건설(공통) 1. 고유 번호 72. + +품셈 번호 → M01 로직(GF 산림 · GC 건설) 후보: + +| 맞춤 | 고유 번호 | 예 | +| --- | --- | --- | +| 같은 번호 | 59 | 산림 13-6-2 → GF000227 큰돌쌓기 찰쌓기 · 건설 8-2-13 → GC001166 대형브레이커 | +| 아랫마디만 | 4 | 건설 6-2(→ 6-2-x 16) · 8-2(→ 66) · 9-9 · 산림 9-14 | +| 없음 | 6 | 1-10 · 1-24(표 인용) · 11-9(옛 덤프) · 공통 2-8-20 · 산림 10-2(소요량 QF000303) · 9-17-1(계수 CF000103) | +| 임도(옛) 대응 없음 | 3 | 8-2-1 · 8-2-8 · 13-2-3(대응표 「확정」 줄에 없음) | + +- 같은 번호 59 중 건설 부문 2 개 이상 걸림 24(예 3-2-4 → 공통 · 건축 · 유지관리) — 부문 안 적힌 건설 번호는 공통 → 토목 먼저 · 이름 낱말로 가름. +- 1-2-3(체적환산계수) · 1-10 · 1-24 는 로직이 아니라 계수 · 표 인용 — 계수(CC) 쪽 후보. +- 쪽 번호 인용 1(「건설공사표준품셈 p.266」 고화매트). + +기본공식 꼴(블록 수 · 글 패턴 읽기): + +| 꼴 | 블록 | +| --- | --- | +| 인력 품(직종 노임 × 품) | 69 | +| 기계경비 배분(노 · 재 · 경 ÷ Q · × hr) | 65 | +| 율(…의 N % · × N %) | 53 | +| 손료 · 손율 | 33 | +| 환산(f · 체적 · 중량) | 26 | +| 굴착기 사이클(3,600 · q · K · f · E / Cm) | 23 | +| 시간 표값(Q = N hr) | 18 | +| 사이클 시간(Cm = t1 + t2 …) | 16 | +| 덤프 · 살수 사이클(60 · q · f · E / Cm) | 13 | +| 일 시공량 환산(Qd ÷ 8) | 13 | +| 운반 속도(L / V) | 12 | +| 자재 단가 줄(자재단가 값과 같은 숫자) | 38 | + +블록마다 꼴 수: 1 꼴 5 · 2 꼴 16 · 3 꼴 17 · 4 꼴 23 · 5 꼴 12 · 6 꼴 14 · 7 이상 7 · 0 꼴 1(빈 블록). + +단가표 이음: 노임 값 70 블록 · 기계 세 값 65 블록(한 블록 기계 1 대 39 · 2 대 18 · 3 대 이상 8 · 글의 기계 이름과 같음 63/65 · 못 찾은 세 값 2 = 단산 68 값) · 자재 값 38 블록. + +### 3-3. 한 줄 여러 단가산출 · 얽힘 사례 + +EST 꼴 = 일위대가 한 줄에 단산 번호 하나 · 여러 품셈은 그 블록 안에 묶임. 얽힘 표지 수: 비율 섞음 44 · 준용 4 · 옛 해 품셈(2025 년) 3 · 단산 안 단산 2 · 삭제 조항 1 · 규격 환산 1 · 오타 1. + +| 단산 | 이름 | 얽힘 | 부르는 호표 | +| --- | --- | --- | --- | +| 2 | 뒷채움돌채집운반뒷채움(발파) | 절 4(채집 굴착기 90 % + 인력 10 % · 상차 · 덤프 운반 · 뒷채움 다짐 3-4-4) · 1-10 계수 · 「건설표준품셈 준용」 | 8 · 9 · 10 · 20 · 25 · 26 · 34 · 35 등 | +| 33 | 기초잡석채집,운반,다짐 | 산림 12-12 준용 + 「2025년 표준품셈 3-4-8」 · 절 4 | 1 · 4 · 5 · 6 · 11 · 16 · 17 · 27 등 | +| 4 | 양질사토운반 | 1-2-3(계수) + 3-4-7 + 8-2-8 · 절 3 | 내역서 | +| 89 | 구조물터파기(암절취) | 1-2-3 + 3-2-4 + 8-2-3 · 2025 년 판 | 내역서 | +| 95 | 도장(철재면2회) | 건축 11-1-3 + 11-2-6 + 11-2-4 · 공구손료 3 % · 2 % · 2 % · 절 8 | 65 | +| 64 | 비탈면보호공(평떼) | 건설 4-1-1 + 산림 5-23-3(책 둘) | 38~44 | +| 77 · 78 | 철근콘크리트깨기 | 건설 8-2-13 + 산림 9-8-2(책 둘) | 내역서 | +| 29 | 철근가공조립(연결철근) | 산림 12-9-1 + 건설 6-2 · Type-Ⅰ × 30 % | 7 · 21 · 22 · 23 | +| 38 | 다웰바설치 | 6-2-1 + 6-3-10 · 재료 + 인건비 + 철근가공 간단 | 7 · 21 · 22 · 23 | +| 73 · 74 | 강관동바리 · 강관비계 | 손율 2-2-4 · 2-2-5 + 설치 2-6-1 · 2-7-1 · 공구손료 2 % | 52~60 | +| 11 · 86 · 87 | 가설창고(콘테이너) | 손율 26.7 · 18 · 16 % + 2-3-2 · 총괄 비고 (경비) | 내역서 | +| 67 · 69 | 줄눈절단 · 포장절단 | 「*단산68참조*」 — 단산 안 단산(세 값 6,837 · 1,724 · 1,371) | 내역서 | +| 6 | 야면석채집및운반 | 건설 8-2(2016 년 삭제) · 575/1750 환산 · 인력 10 % | 2 · 4 · 5 · 13 · 17 · 24 · 25 · 47 | +| 30 | 큰돌채집운반 | 임도(옛) 13-2-3 · 발생석 50 % · 제잡비 6 % · 「임도표준품셈의 발파암 기준」 | 8 · 14 · 15 · 20 | +| 63 | 돌망태형 옹벽설치 | 「13-114」 오타(= 13-11-4) | 34~37 | +| 70 | 고화매트설치 | 산림 9-19-1 + 건설 p.266 · 절 5 | 45 | +| 45(호표) | 고화매트수로 | 세부행이 일위46참조(일위 안 일위) | — | + +## 4. M01 대조 + +| 갈래 | 엑셀 | 자동 대응 | 사람 확인 | 없음 | 단가 | +| --- | --- | --- | --- | --- | --- | +| 노임(LB) | 19 | 19(이름 · 작업반장 2 → 건설업) | 0 | 0 | 19/19 같음(2026 상반기) | +| 기계(EQ) | 32 | 31(지문 — 한 대 25 · 묶음 6 = 굴착기 + 브레이커 · 집게) | 1 | 0 | 손료 바탕값 · 계수 · 주연료 31/32 같음 | +| 자재(MT) | 91 | 12 | 41 | 38 | 대조 칸 6 중 4 같음 | +| 유가(MO) | 2 | 2(이름) | — | — | 경유 1,376 ↔ 1,846.39 · 휘발유 1,473 ↔ 1,863.25 | +| 환율(FX) | 3 | 3(이름) | — | — | USD 1,442 ↔ 1,414.9 · JPY100 919 ↔ 887.33 · EUR 1,685.72 ↔ 1,631.87 | + +기계: + +- 이름+규격 그대로 같음 20 · 표기만 다름 — 로울러/롤러 · 불도우저/불도저 · 브레이카/브레이커 · 「커 터」/「커터(콘크리트 및 아스팔트용)」 · 물탱크/물탱크(살수차) · 굴착기(타이어형)/굴착기(타이어). +- 지문 = 기계경비 시트 손료 줄(바탕값 원 · 손료계수) + 주연료 ℓ/hr — M01 EQ 「가격 × 1000 · 손료계수 · 주연료」와 같음. +- 못 맞춤 1 = 굴착기(무한궤도) 0.7㎥(발파) — 손료계수 2405(표준 2085 을 사용자가 고친 값) · 가격만으로는 EQ000020 → 옵션 · 사용자 확인. + +자재(유가 2 뺌 91 · 글자 규격 38 = 요구 624-2 확인 대상): + +| 수준 | 수 | 예 | +| --- | --- | --- | +| 이름+규격 같음 | 2 | 도로반사경(지주포함) · 구역화물 | +| 이름 같음 + 숫자 규격 같음(차례 · 구분자 무관) | 6 | 파형강관 D=800mm, 2.7t ↔ D800×2.7T · 자물쇠 · 라바콘 | +| 이름 바탕 같음 + 숫자 규격 같음 | 4 | 다웰바(DOWEL BAR) Ø32×1,000 ↔ 다 웰 바 Φ32*1000 · 레미콘(인제,홍천내면) 25-21-120 ↔ 레미콘(지역)-사급(지역 고름) | +| 사람 확인 후보(이름 같고 규격 다름 · 낱말 겹침 · 눈 판정) | 41 | P.V.C PIPE VG1(50mm) ↔ PVC파이프(일반관) D=50mm(VG1) · 탄소강관(백) 외경 139.8 ↔ 압력배관용강관(백관) 125A(외경139.8) · 안고초 ↔ 산림종자/안고초 · 이형철근,SD400 D13 ↔ 이형철근(SD400) D=13mm · 신나 ↔ 신너(조합페인트용) KSM-6060(2종) | +| 후보 없음 · 엉뚱 | 38 | 큰돌(인제 · 양구 · 관급) · 임도안내판 · 취수장안내판 · 임도표지석 · 측점번호판 · 국가지점번호판 · 검증수수료 · 공사안내표지판 · 콘테이너하우스 · 중하중그레이팅 · 휠라 · 강관써포트 · 쇄석(홍천) · 내수합판1급(M01 「합판(내수), 지역」 — 이름 꼴 다름) | + +- 자재 이름은 EST 자재 목록 이름이 아니라 사용자가 고친 이름 · 물가지 이름이 많음 — 이름만으로 M01 대응이 약함. +- 대응 뒤 단가 대조(같은 원천 칸): 자물쇠 · 라바콘 · 구역화물 같음 · 도로반사경 유통물가 340,000 ↔ 290,000 · 물가정보 220,000 ↔ 260,000. + +## 5. 쉬운 방법 제안 + +### 5-1. EST 꼴 — 「엑셀 사전」 먼저 + +1. **단가표 시트 → 엑셀 사전** — 자재단가(93) · 노임단가(19) · 기계경비총괄표(32) + 기계경비(손료 지문) · 기계경비적용기준(유가 2 · 환율 3 · 노임계수 5) · 단가산출총괄표(95) · 일위대가총괄표(68). 항목마다 갈래가 시트로 이미 정해짐 · 이름 · 규격 · 단위 · 엑셀 단가 · M01 키 후보를 한 번 붙임. +2. **M01 키 붙이기는 사전에서 한 번만** — 노임 = 이름(19/19) · 기계 = 손료 지문(31/32) · 유가 · 환율 = 이름 · 자재 = 이름 · 숫자 규격 자동 12 + 후보 41 은 사용자 확인 · 없음 38 은 「사용자 자재(엑셀 값)」. 사용자가 한 번 고른 대응은 사전에 남겨 다음 파일에 재사용(같은 발주처 파일은 이름이 되풀이됨). +3. **세부행은 4 단계로 끝** — 비고 번호 → 별도계상 · 별도계산 → 단위 % · hr · 인 → 사전(품명+규격). 실측 EST 3 파일 · 내역서 모두 100 %. 두 시트에 같은 이름(사방 1)만 금액 칸 꼴 · 비고로 가름. +4. **단산 블록 = 번호로 1:1** — 머리 「N.」 = 단산총괄표 No(95/95) · 수량은 엑셀 그대로(요구 642-8). +5. **단산 블록 → M01 로직 후보 = 품셈 번호** — 책 + 절 번호로 GF · GC(같은 번호 59/72 · 아랫마디 4) · 부문 안 적힌 건설 번호 = 공통 → 토목 차례 + 이름 낱말 · 임도(옛) 번호 = 대응표 · 없으면 사용자 · 1-2-3 등 표 인용 = 계수 후보로 따로. +6. **블록이 쓰는 요소 = 글 속 단가 숫자 역조회** — 노임 값 → LB · 노재경 세 값 → EQ(65 블록) · 자재 값 → MT · 단산 값 → 다른 단산(67 · 69 → 68). 이름 글 읽기보다 숫자가 확실함(엑셀 안에서는 값이 한 벌). +7. **옵션값 = 공식 꼴** — 굴착기 · 덤프 사이클(q · K · f · E · Cm · L · V) · 시간 표값(Q hr) · 일 시공량(Qd) · 인력 품 · 율(90 % · 10 % · 50 % · 2 %) 을 글에서 읽어 M01 로직 입력에 넣음 · 단가는 M01 지금 값으로 다시 셈(엑셀 = 옛 값 · 차는 참고 표시). +8. **얽힘은 표시만 · 복수 선택** — 품셈 2+(18) · 절 2+(71) · 책 둘 섞임 · 단산 안 단산 · 준용 · 삭제 · 옛 해 · 오타 = 블록 하나에 로직 여럿 후보로 보임 · 자동 확정 없음. + +### 5-2. 다른 실무 파일 · STmate 꼴 + +| 파일 | 꼴 | 시트 | 단가표 시트 | +| --- | --- | --- | --- | +| 북부청임도 | EST xls | 12 | 같은 12 시트 | +| 북부청사방 | EST xls | 12 | 같은 12 시트(자재 100 · 노임 17 · 기계 23 · 단산 67 · 호표 27) | +| 거창 | EST xlsx | 50 | 같은 12 시트 + 견적단가 + 숨은 탭 14(estx 중간 탭 12 — BUDGE · daega · junggi · noyim · unitpric · 구역화물 등) | +| 봉화 · 동부청영월 · 울진대흥 · 영덕계류 · 울진소광 | STmate xlsx | 21~25 | 아래 대응 + 〓 INITIAL 〓(veryHidden 재등록 메타) | + +STmate 꼴은 단가표 시트 대신: + +| EST 시트 | STmate 시트 | 코드 머리 | +| --- | --- | --- | +| 자재단가 | 재료비목록표 · 자재단가대비표(조달가격 · 물가정보 · 물가자료 · 적산정보 · 견적단가 · 적용) | M | +| 노임단가 | 노무비목록표 | L | +| 기계경비총괄표 · 기계경비 | 중기목록표 · 중기사용료 | X | +| (기계 손료 바탕값) | 경비목록표(천원) | S | +| 기계경비적용기준 | 환율및기초자료(환율 · 운전사 노임계수) | — | +| 단가산출총괄표 · 단가산출 | 단가산출근거목록표 · 단가산출근거 | D | +| 일위대가총괄표 · 일위대가 | 일위대가목록표 · 일위대가표 | B | +| — | 일식견적목록표 | W | + +- STmate 는 목록표 줄 · 일위대가표 세부행마다 「COD|M00004」 꼴 코드 — 갈래가 코드 머리 글자로 바로 정해짐(봉화 일위대가표 코드 등장: D 103 · B 67 · M 41 · L 30 · X 7). +- 같은 사전 방식: 코드 → 목록표 이름 · 규격 · 단가 → M01 키(한 번) · 세부행은 코드로 사전 조회 · 일위대가표 비고 칸에 품셈 · 판(「2024년 개정」 · 「2024.01」) 글. + +### 5-3. 덧 + +- 엑셀 불러오기 오른쪽 호표 목록 = 일위대가총괄표 · 단가산출총괄표(STmate = 두 목록표) 그대로 쓰면 됨 — 번호 · 이름 · 규격 · 단위 · 금액이 이미 정리돼 있음. +- 엑셀 금액 칸 「합 = 노 + 재 + 경」 · 줄 금액 = 단가 × 수량 검산은 사전 단계에서 끝남(북부청임도 단가 같음 350/350). +- 글 읽기 한계: 기본공식 꼴은 글 패턴 세기(대략치) · 자재 사람 확인 후보 41 은 눈 판정. + +--- + +### 만든 파일(tmp/brain_642/C 만) + +- `p.py` 공용 읽기 · `s1_sheets.py` · `s2_dump.py`(시트 TSV) · `s4_rows.py`(세부행 판정 → `out_rows.json`) · `s5_blocks.py`(단산 글 → `out_blocks.json`) · `s5b_refs.py`(품셈 번호 → M01 로직 → `out_refs.json`) · `s6_m01.py` · `s6b_tokens.py`(M01 대조 → `out_m01.json`) · `s7_files.py` · `s7b_stmate.py`(다른 파일 시트) · `s8_run.py`(다른 EST 파일 판정) +- 사본: `src.xls` · `copy_북부청사방.xls` · `copy_거창.xlsx` diff --git a/docs/raw/요구_1104/_분석_642-D_불러오기화면흐름.md b/docs/raw/요구_1104/_분석_642-D_불러오기화면흐름.md new file mode 100644 index 000000000..24f7369f9 --- /dev/null +++ b/docs/raw/요구_1104/_분석_642-D_불러오기화면흐름.md @@ -0,0 +1,239 @@ +# 분석 642-D — 엑셀 불러오기 화면 흐름 · 중간 상세 페이지 걷기 + +읽기 전용 조사 · 코드 · storage · git 안 고침 · 화면 = ORCA 랩탑 메인 탭(5173 · 일반 계정 · 밝음 · 1532×1093) · 북부청 임도 엑셀 사본(지문만 다르게 512 바이트 덧붙임)을 올려 봄 → 끝에 그 HP-000060 지움(만든 0) · 다른 창 HP-000059 안 건드림 · 사본 지움. + +## 요약 (열 줄) + +1. 「중간 상세 페이지」 = 불러오기 마법사 **걸음 ② 본 칸 화면**(`M02_MasterTemplete_Hopyo_Wizard.ts:184-311` `second()` · 사진 `02a` · `02b`) — 왼쪽 [불러오기] → 걸음 ①(층 · 「단가산출」 체크 · [엑셀 고르기] · 사진 `01`) → 걸음 ② → [엑셀 보기 · 확인 · 만들기] → 엑셀 보기 모달 · 엑셀까지 누름 셋 · 화면 둘. +2. 걸음 ② 몸 = 파일 글 · 단가산출 칸(넓은 표 95 블록 · 페이지 높이 5,255 px) · 일위대가 안내 · 안 이은 줄 띠 · [엑셀 보기 · 확인 · 만들기] · [끝내기] · [처음으로] — 단가산출 칸은 엑셀 보기 오른쪽 단가산출 목록(780-2)과 같은 것 두 벌(`SK_SYNC` 두 벌 맞춤). +3. 엑셀 보기 모달 몸 = 이미 사용자가 바라는 꼴(탭 셋 + 오른쪽 호표 목록 · 단가산출 탭 = 단가산출 목록 · 사진 `03` · `04` · `05b`) → 목표 = 이 몸을 본 칸에 바로 · 걸음 ① · ② · 모달 껍데기 걷음. +4. 목표 흐름 — 왼쪽 [불러오기] = 바로 파일 고르기 창 → 올림 → 본 칸 = 머리 막대(층 · 호표 · 검산 · 안 이은 줄 · [고르기] · [끝내기]) + 엑셀 + 오른쪽 목록 · 누름 하나 · 작업 중 파일 줄 = 왼쪽 판. +5. 고르기 · 확인 자리 = **시트 아래 「줄 판」** 권함 — 확인 창 몸 `buildHopyoCheck`(이미 모달 밖 몸 · `Hopyo_Check.ts:226`) · 단가산출 줄 표 `skLineTable` 넓은 꼴 그대로 · 엑셀 그 행이 위에 보인 채 · 모달은 [로직 추가] 길만. +6. 옮기기 = 오른쪽 판 아래 막대 그대로(일위대가 [모두 고정으로 들여오기] · [저장 (n)] · 단가산출 [확인한 것 옮기기 (n)]) · [끝내기] · 안 이은 줄 = 본 칸 머리 막대. +7. 지움 = `Hopyo_Wizard.ts` 315 줄(새 `Hopyo_Import.ts` ≈ 200 줄로) · 「단가산출」 체크 · 걸음 막대 · 넓은 단가산출 칸 · 엑셀 보기 [삭제] · 화면 글 셋 — `Hopyo_Check.ts` 662 · `Hopyo_Api.ts` 632 손 안 댐 · `Hopyo_Sheet.ts` 614 → ≈ 440(만들기 셋을 새 `Hopyo_SheetMake.ts` 로). +8. 길 — 해시 · 라우터 바뀜 없음(지금도 본 칸 `showView` · 해시 안 씀) · sessionStorage 열쇠 둘 그대로 · 새 열쇠 없음 · 열린 창 손잡이 `opened` 에 본 칸 보기도 등록 = 확인 창 [엑셀 보기] · 줄 표 [보기] 가 본 칸 시트를 뜀. +9. 실측 흠 셋 — [끝내기] 전 [안 이은 줄 고르기] = 「✓ 안 이은 줄 0」 + 띠 녹색 + [끝내기] 켜짐(빈 `nos` · `Wizard.ts:212` · `:221` · 사진 `07a` · 실제 198 줄 사진 `07b`) · 올린 직후 단가산출 칸 「맞춤 셈 중」 뒤 자동 다시 판정 없음(사진 `02a`) · 좁은 단가산출 줄 펼침 짓눌림(사진 `05a`). +10. 시험 고칠 것 여섯 파일 + 도우미 셋 · 642-A 줄 결과 자리 = 칠(상태) · 길 막대 까닭(근거 · 품셈 번호 · 공식) · 줄 판(갈래 배지 · 후보 칩 복수 · [옵션] · [확인]) · 목록 「확인 n/m」 · 고를 갈래 둘(층 고름 자리 · [로직 추가] 「실무 호표」 걷기). + +--- + +## 사진(밝음 한 벌 · `tmp/brain_642/D/`) + +| 사진 | 화면 | +| --- | --- | +| `00_좌측패널.png` | M02 왼쪽 판 「일위대가 불러오기」 펼침 — [불러오기] · [별칭 장부] | +| `01_걸음1_층엑셀.png` | 본 칸 걸음 ① — 결과 층 · 결과(일위대가 · 단가산출 체크) · [엑셀 고르기] · 작업 중 줄 | +| `02a_걸음2_중간화면_셈중.png` | 본 칸 걸음 ② (= 중간 상세 페이지) — 올린 직후 · 단가산출 칸 「맞춤 셈 중」 | +| `02b_걸음2_중간화면_단가산출칸.png` | 걸음 ② [다시 판정] 뒤 — 넓은 단가산출 표 95 블록(아래로 길게 밀림) | +| `03_엑셀보기_일위대가표.png` | 엑셀 보기 모달 — 일위대가표 탭 · 오른쪽 호표 목록 | +| `04_엑셀보기_단가산출표.png` | 단가산출표 탭 — 오른쪽 = 단가산출 목록(좁은 꼴) | +| `05a_엑셀보기_단가산출표_줄펼침.png` | 단가산출 목록 [줄 8] 펼침 — 좁은 판 줄 표 짓눌림 | +| `05b_엑셀보기_단가산출상세.png` | 단가산출 상세 탭 · 단산2 범위 고름 | +| `06_확인창_제1호표.png` | 호표 [수정] → 확인 창(모달 위 모달 · 엑셀 통째 가림) | +| `07a_안이은줄창_셈전_0.png` | [끝내기] 전 [안 이은 줄 고르기] — 「✓ 안 이은 줄 0」(흠) | +| `07b_걸음3_끝내기막힘_안이은줄창.png` | [끝내기] → 다시 셈 → 막힘 · 안 이은 줄 198(호표 64) 창 | + +--- + +## 1. 지금 화면 흐름 + +### 1-1 걸음마다 + +| 차례 | 자리 · 사진 | 보이는 것 | 코드 | +| --- | --- | --- | --- | +| 0 | 왼쪽 판 「일위대가 불러오기」 `00` | [불러오기](구조물 조합 층 단추 꼴) · [별칭 장부] | `Hopyo_Side.ts:37-55` · 자리 `UI_Side.ts:165-181` | +| 1 | 본 칸 걸음 ① `01` | 안내 글 · 걸음 막대(①②③ · 누를 수 없음) · 결과 층 고름(쓸 수 있는 층만 · 기본 개인) · 결과 체크(일위대가 늘 · 「단가산출」 선택) · [엑셀 고르기](숨은 file 입력) · 「작업 중」 줄(층마다 HP · [이어서]) | `Wizard.ts:105-182` `first()` · 층 `:59-63` · 체크 `:144-149` · 올림 `:120-133` · 본 칸 띄움 `Side.ts:62-72` → `UI_Main.ts:632-652` `showView` | +| 2 | 본 칸 걸음 ② `02a` · `02b` | 파일 · 층 · 호표 수 · (체크면) 단가산출 칸 넓은 표(거르기 · 블록 95 줄 · [확인] 칩 · [줄 n] · [보기] · [확인한 것 옮기기] · [다시 판정]) · 일위대가 머리 · 안내 · 안 이은 줄 띠 + [안 이은 줄 고르기] · [엑셀 보기 · 확인 · 만들기] · [끝내기] · [처음으로] | `Wizard.ts:184-311` `second()` · 몸 `:258-270` · 단가산출 칸 `:256` → `Hopyo_WizardSk.ts:79-373`(넓은 꼴) · 띠 `:225-245` | +| 2-a | 엑셀 보기 모달 `03` · `04` · `05b` | 머리(시트 · 호표 · 검산 · 제안 · [삭제]) · 길 막대(뒤로 · 뛰기 · 원본 시트 · 까닭) · 어긋남 띠 · 범례 · 왼쪽 읽기 전용 시트(탭 셋) · 오른쪽 = 일위대가표 탭 호표 목록(찾기 · 체크 · [수정] · n/m · [모두 고정으로 들여오기] · [저장]) · 단가산출 탭 = 단가산출 목록(좁은 꼴) | 엶 `Wizard.ts:188-207` · 몸 `Hopyo_Sheet.ts:146-614` · 모달 `:212-224` · 오른쪽 `:178-202` · 탭 판 바꿈 `Hopyo_SheetSk.ts:50-64` · 길 막대 `Hopyo_SheetNav.ts:114-292` | +| 2-b | 확인 창(모달 위 모달) `06` | 호표 하나 줄 표(체크 · 구분 · 이름 · 별칭 · 수량 · 금액 · 품 비교 · 단추) · 자재 표 · 머리 [엑셀 보기] · [맞춤 · 별칭 일괄 체크] · [일위대가 생성] · [구조물 조합으로] | [수정] `Sheet.ts:296-315` → `Hopyo_Check.ts:645-662` `openHopyoCheck` · 몸 `:226` `buildHopyoCheck` · 줄 표 `Hopyo_CheckRows.ts` | +| 2-c | 단가산출 줄 펼침 `05a` | 블록 줄 표(묶음 · 이름 · 매개값 · 상태 · 방법 · 금액 · 고름) — 좁은 판 안 | `WizardSk.ts:294-307` · `Hopyo_SkLines.ts` | +| 2-d | 안 이은 줄 창 `07a` · `07b` | 안 이은 줄 수 띠 · 줄마다 호표 · 이름 · 규격 · 수량 · 갈래 · 까닭 · 고른 것 · [단가산출 걸음에서 확인 ▸] · [고르기] · [찾기] · [우리에 없음] | `Hopyo_Left.ts:121-296` · 띠 단추 `Wizard.ts:216-223` | +| 3 | 걸음 ③ [끝내기] | 호표 68 줄 차례로 다시 셈(띠 「셈 중 i / 68」 · 약 40 초) → 남은 줄 있으면 막음 · 안 이은 줄 창 · 걸음 ② 로 돌아감 / 없으면 물음 → HP 지움 → 걸음 ① | `Wizard.ts:272-310` `end()` | + +- 엑셀 화면까지 누름 셋(왼쪽 [불러오기] → [엑셀 고르기] → [엑셀 보기 · 확인 · 만들기]) · 화면 둘(걸음 ① · ②) 을 거침. +- 엑셀 보기는 모달 — 왼쪽 판 · 본 칸을 덮음 · 확인 창이 그 위에 또 모달(`Sheet.ts:212` · `Check.ts:646`) · 확인 창 [엑셀 보기] = 뒤 엑셀 모달을 앞으로 꺼냄(`SheetNav.ts:73-87` `raise` · `lower`). +- 걸음 ③ 은 막히면 곧바로 ② 로 돌아감 — 걸음 ③ 화면 없음(막대 글만 · `Wizard.ts:273` · `:286`). + +### 1-2 「중간에 보이는 상세 페이지」 특정 + +- **걸음 ② 본 칸 화면** — `Wizard.ts:184-311` `second()` 의 `body.replaceChildren(…)`(`:258-270`) · 사진 `02a` · `02b`. + - 왼쪽 판과 엑셀 화면 사이(차례상 중간) · 본 칸(자리상 가운데)에 뜸 — 두 뜻 다 이 화면. + - 하는 일 = 엑셀 보기 여는 단추 하나 + 단가산출 칸(엑셀 보기 오른쪽 목록과 한 벌 · `WizardSk.ts:11-13` · `:74-76`) + 안 이은 줄 띠 + [끝내기]. + - 「단가산출」 체크 켜면 95 블록 넓은 표가 위에 와서 [엑셀 보기 · 확인 · 만들기] 단추가 페이지 아래(높이 5,255 px)로 밀림. +- 걸음 ①(`Wizard.ts:105-182` · 사진 `01`)도 엑셀 앞 화면 — 층 고름 · 체크 · [엑셀 고르기] 만 · 함께 걷음. +- 확인 창(사진 `06`)은 엑셀 화면 **뒤**에 여는 것 — 사용자 말 「중간」 과 다름 · 다만 엑셀을 통째 가려 2 장 자리 바꿈 권함. + +### 1-3 실측 곁 흠 + +| 흠 | 실측 | 근거 | +| --- | --- | --- | +| [끝내기] 전 [안 이은 줄 고르기] = 「✓ 안 이은 줄 0」 · 창 닫으면 띠 녹색 · [끝내기] 켜짐 | 사진 `07a` · 닫은 뒤 띠 글 「✓ 안 이은 줄 0」 · 실제 = 198 줄(호표 64 · 사진 `07b`) | `nos` 가 `recount()` 때만 참(`Wizard.ts:212` · `:247`) · 단추는 빈 `nos` 로 `openLeft`(`:221`) → `countLeft(at, [])`(`Left.ts:285`) → 빈 표 · `paint(map)` `finish.disabled = !!n?.줄`(`Wizard.ts:230`) | +| 올린 직후 단가산출 칸 「맞춤 셈 중 — 끝나면 다시 누름」 → 자동 다시 판정 없음 | 사진 `02a` · [다시 판정] 누른 뒤 표(`02b`) | `WizardSk.ts:148-161`(한 번만 판정) | +| 좁은 단가산출 판 [줄 n] 펼침 = 줄 표 칸 열 하나가 판 폭 안에 짓눌림(「방법」 칸 10 줄 감김) | 사진 `05a` | `WizardSk.ts:294-307`(좁은 꼴에도 넓은 줄 표 그대로) · 판 폭 `Hopyo.css:302-305`(42 %) | +| 엑셀 보기 [삭제] 와 [끝내기] = 같은 서버 지움(`DELETE …/hopyo/{키}`) · [삭제] 는 안 이은 줄 막힘 · 물음 글 없이 지움 | 코드 | `Sheet.ts:251-270` · `Wizard.ts:272-310` · `Api.ts:477-478` | +| 부품 규칙 어긋남(엑셀 보기) — 날 찾기 입력 · 날 체크 · 페이지 CSS 목록 줄 · 오른쪽 판 자체 격자 | 코드 | `Sheet.ts:178-181` · `:325` · `Hopyo.css:335-382` · `:260-305` · 확인 창 통째 날 체크 `Check.ts:609` | +| [로직 추가] 「실무 호표」 덧줄 = 사실상 닿지 않음 — 서버는 작업 중 HP 만 내고(`M02_Hopyo_Match.py:495-508` `hopyo_store.rows`) 불러오기 화면을 떠나면 그 HP 를 지움(`Side.ts:74-79` · `Wizard.ts:98-103`) | 코드 | `Hopyo_Pick.ts:20-104` | + +--- + +## 2. 목표 흐름 + +### 2-1 흐름 + +| | 지금 | 목표 | +| --- | --- | --- | +| 엑셀까지 | 왼쪽 [불러오기] → 걸음 ① [엑셀 고르기] → 걸음 ② [엑셀 보기 · 확인 · 만들기] → 모달 | 왼쪽 [불러오기] → 파일 고르기 창 → 본 칸 = 엑셀 | +| 누름 | 셋 | 하나 | +| 작업 중 이어서 | 걸음 ① 줄 [이어서] → 걸음 ② → [엑셀 보기] | 왼쪽 판 「작업 중」 줄 누름 → 본 칸 = 엑셀 | +| 결과 층 | 걸음 ① 고름 | 왼쪽 판 작은 고름(쓸 층 둘 이상일 때만 · 일반 = 개인 하나라 안 보임) | +| 단가산출 체크 | 걸음 ① 체크 → 걸음 ② 넓은 칸 | 없음 — 단가산출 탭 오른쪽 목록이 늘 있음(780-2 · `SheetSk.ts:5` 「마법사 체크와 상관없음」) | +| 호표 확인 | 모달 위 모달(엑셀 가림) | 시트 아래 줄 판(엑셀 그 행 보인 채) | +| 단가산출 줄 | 좁은 판 안 펼침(짓눌림) | 시트 아래 줄 판(넓은 줄 표) | +| 안 이은 줄 · 끝내기 | 걸음 ② 띠 · 단추 | 본 칸 머리 막대 | +| 떠남 = 올린 파일 지움(743-1) | 마법사 `leave` | 그대로(본 칸 보기 `leave`) | + +### 2-2 화면 그림 + +``` +┌ 왼쪽 판 ─────────────┐┌ 본 칸 「일위대가 불러오기 — north_road.xls」 ──────────────────────────────────────────┐ +│ 일위대가 불러오기 ▾ ││ ① 머리 막대 개인 층 · 호표 68 · 검산 맞음 · 제안 215 / 줄 415 · (셈 중 i/n) │ +│ [불러오기] ││ [안 이은 줄 198 · 호표 64 배지] [안 이은 줄 고르기] [끝내기] │ +│ (층 개인|회사|마스터)││ ② 길 막대 [◂ 뒤로] [▸ 단가산출 상세 · 단산2] [▸ 부르는 줄 1/11] 원본 시트 「…」 · 까닭 글 │ +│ 작업 중 ││ ③ 띠 · 범례 엑셀 셈 어긋남 9 [보기 1/11] · ■이어짐 ■엑셀과 다름 ■고를 것 ■못 이음 ■밖 ─내가 고름 │ +│ north_road.xls · 68 ││ ┌ ④ 엑셀(읽기 전용 · 탭 셋) ───────────────┐┌ ⑥ 오른쪽 목록 판 ───────────────────┐ │ +│ 별칭 장부 ││ │ 일위대가표 · 단가산출표 · 단가산출 상세 ││ 일위대가표 탭 = 호표 목록 │ │ +│ ││ │ (칠 · 고름 · 두 번 누름 = 첫 뛰기) ││ [찾기] 호표 68 │ │ +│ ││ │ ││ □ 제1호표 [수정] 배수관날개벽… 4/6 │ │ +│ ││ ├ ⑤ 줄 판(열 때만 · 경계 끌기) ────────────┤│ … │ │ +│ ││ │ 제1호표 확인 몸(buildHopyoCheck) [닫기] ││ [모두 고정으로 들여오기] [저장 (n)] │ │ +│ ││ │ 또는 단산2 줄 표(skLineTable 넓은 꼴) ││ 단가산출표 · 상세 탭 = 단가산출 목록 │ │ +│ ││ │ ││ 거르기 · 블록 줄 · [확인] · [줄 n] │ │ +│ ││ └───────────────────────────────────────────┘│ [확인한 것 옮기기 (n)] [다시 판정] │ │ +│ ││ └───────────────────────────────────────┘ │ +└───────────────────────┘└─────────────────────────────────────────────────────────────────────────────────────────────────┘ +``` + +| 영역 | 내용 | 지금 코드(옮겨 씀) | +| --- | --- | --- | +| 왼쪽 판 | [불러오기] = 숨은 file 입력 바로 · 층 고름(둘 이상일 때) · 「작업 중」 줄(층마다 `listHopyo`) · [별칭 장부] | `Wizard.ts:59-63` · `:109-133` · `:160-181` → `Hopyo_Side.ts` | +| ① 머리 막대 | 파일 · 층 · 호표 · 검산 · 제안 · 셈 중(엑셀 보기 머리) + 안 이은 줄 배지 · [안 이은 줄 고르기] · [끝내기] | `Sheet.ts:234-249` + `Wizard.ts:225-253` · `:272-310` | +| ② · ③ | 길 막대 · 어긋남 띠 · 범례 그대로 | `SheetNav.ts` | +| ④ 엑셀 | 그대로 | `Sheet.ts:356-396` | +| ⑤ 줄 판 | [수정] = 확인 몸 · [줄 n] = 단가산출 줄 표 · 머리 [닫기] · 경계 끌기 | `Check.ts:226` `buildHopyoCheck` · `SkLines.ts` `skLineTable` | +| ⑥ 목록 판 | 탭 따라 호표 · 단가산출 · 아래 막대 = 옮기기 | `Sheet.ts:178-202` · `:317-353` · `SheetSk.ts` · `WizardSk.ts`(좁은 꼴) | + +- 본 칸 높이 = 화면 높이 꽉(도면 양식 앞선 꼴 `M02_MasterTemplete_Drawing.css:6-16` `.m02-main:has(> .m02-main__host > …)` 그대로 한 벌). +- 폭 — 본 칸 ≈ 화면 − 왼쪽 판(약 320 px) · 좁으면 왼쪽 판 [패널 접기](이미 있음) · 900 px 아래 쌓기(`Hopyo.css:268-274`) 그대로. +- 다른 엑셀 [불러오기] = 지금 보기 떠남(쥔 HP 지움) — 확인 창 캐시(`hasDraft`)가 있으면 물음 한 번(지금 [끝내기] 물음 글 `Wizard.ts:293-297` 다시 씀). + +### 2-3 고르기 · 확인 · 옮기기 자리 + +| 갈래 | 좋은 점 | 흠 | 판정 | +| --- | --- | --- | --- | +| 오른쪽 판 펼침 | 새 틀 없음 | 판 22 rem ~ 42 % — 확인 표 칸 열둘 · 단가산출 줄 표 칸 열이 짓눌림(사진 `05a`) | 안 씀 | +| 곁 판(오른쪽 넓힘 55 ~ 70 %) | 부품 `createSidePanels`(`ui_template_side_panels.ts` · 폭 끌기 · 취향 저장) | 시트가 엑셀 서너 열만 보임 — 엑셀 보며 맞추기(요구 627) 어려움 | 버금 | +| 모달 하나(지금 확인 창) | 고칠 것 없음 | 엑셀 통째 가림(사진 `06`) · 본 칸 시트로 바꾸면 확인 창 [엑셀 보기]가 뒤 시트만 뛰어 안 보임 | 안 씀 | +| **시트 아래 줄 판** | 그 호표 엑셀 행(5 ~ 10 행)이 위에 보인 채 줄 표를 넓게 · 확인 몸 `buildHopyoCheck` 그대로(모달 밖 몸 이미 있음) · [엑셀 보기] = 바로 위 시트 뜀 · 단가산출 줄 표 넓은 꼴 그대로 | 세로 공간 — 줄 판 열면 시트 약 13 행 · 경계 끌기로 조절 | **권함** | + +- 호표 확인 = 목록 [수정] → 줄 판에 `buildHopyoCheck({…, onBuilt: 줄 판 닫음})` · 만들기 단추(일위대가 생성 · 품셈으로 바꾸기 · 구조물 조합으로)는 확인 몸 머리 그대로. +- 단가산출 = 목록 블록 [줄 n] → 줄 판에 그 블록 줄 표(좁은 판 안 펼침 대신) · [확인] 칩 · [확인한 것 옮기기 (n)] 은 목록 판 그대로. +- 옮기기 = 목록 판 아래 막대(탭별) 그대로 · [끝내기] = 머리 막대. +- 안 이은 줄 창(`openLeft` 모달)은 그대로 — [단가산출 걸음에서 확인 ▸](`Left.ts:181-193` `onSk`) = 창 닫고 본 칸 단가산출 상세 탭 그 블록으로 뛰고 줄 판 엶. + +### 2-4 부품 재사용 + +| 쓸 곳 | 부품 | 비고 | +| --- | --- | --- | +| 줄 판 · 시트 경계 | `createPanelResizer`(`ui_template_resizer.ts:46` · vertical) | 높이 = 세션 저장(부품 규칙) | +| 줄 판 머리 | `createPanelHead`(제목 + [닫기] actions) | | +| 머리 막대 | `ui-toolbar` · `createBadge`(안 이은 줄) · `createButton` | | +| 층 고름(왼쪽 판) | `createSegment` size 24 | 지금 걸음 ① 것 옮김 | +| 작업 중 줄(왼쪽 판) | `createListRow` | 지금 날 ghost 단추 줄(`Wizard.ts:172-178`) | +| 찾기 칸 · 체크(호표 목록) | `createInputField` · `createCheckbox` | 지금 날 ``(`Sheet.ts:178` · `:325`) — 옮기는 김에 | +| 호표 목록 줄 | `createListRow`(번호 · 덧붙임) | 지금 `.m02-hopyo-sheet__item` 페이지 CSS(`Hopyo.css:343-382`) — 옮기는 김에 | +| 띠 · 범례 · 표 · 칩 | `createBanner` · `createLegend` · `tableShell` · `createToggle chip` | 그대로 | + +### 2-5 고를 갈래(둘) + +1. 결과 층 고름 자리 — (권함) 왼쪽 판 작은 고름 · 쓸 층 둘 이상(회사 관리자 · 시스템 관리자)만 보임 / 늘 개인(요구 627 「일위대가 해당 컨테이너의 개인」). +2. [로직 추가] 「실무 호표」 덧줄(`Hopyo_Pick.ts`) — (권함) 걷음 = 엑셀 보기 모달 껍데기 · `raise`/`lower`(779-6) · `onImport` · `openHopyoCheck` 모달 길까지 함께 걷힘 / 둠 = 모달 껍데기 한 벌 남김(약 30 줄). + +--- + +## 3. 지울 것 · 남길 것 · 옮길 것 + +### 3-1 파일 + +| 파일 | 지금 줄 | 할 일 | 뒤 줄(어림) | +| --- | --- | --- | --- | +| `M02_MasterTemplete_Hopyo_Wizard.ts` | 315 | **지움** — 걸음 막대(`:49-53` · `:72-76`) · 걸음 ① 화면(`:105-182` 중 화면) · 「단가산출」 체크 `wantSangeun`(`:92` · `:144-149`) · 걸음 ② 몸(`:184-270` 중 화면) · [처음으로](`:254-255`) · 넓은 단가산출 칸(`:256` · `:260-262`) 걷음 · 남는 것(쥔 파일 · 떠남 `:94-103` · 띠 · 다시 셈 · 끝내기 `:225-253` · `:272-310`)은 새 파일로 | 0 | +| 새 `M02_MasterTemplete_Hopyo_Import.ts` | — | 본 칸 보기 = 머리 막대 + `buildHopyoSheet` · 쥔 파일 · 떠남 · 띠 · 끝내기 · 줄 판 자리 · `nos` = 엑셀 보기가 읽은 호표 번(빈 `nos` 흠 고침) | ≈ 200 | +| `M02_MasterTemplete_Hopyo_Side.ts` | 83 | [불러오기] = 숨은 file 입력 · 올림(`uploadHopyo`) → `showView(Import)` · 층 고름 · 작업 중 줄 · `WIZARD` 열쇠 → 불러오기 보기 | ≈ 150 | +| `M02_MasterTemplete_Hopyo_Sheet.ts` | 614 | 몸/껍데기 나눔 — `buildHopyoSheet(opt) → {root, jump, destroy}` + 모달 껍데기 `openHopyoSheet`(Pick 길 · 2-5 ② 걷으면 껍데기도 지움) · [삭제] `dropButton`(`:251-270`) · `onDeleted`(`:82-83`) 걷음 · [저장] · 하위 먼저 만들기 · [모두 고정](`:453-611` ≈ 160 줄) → 새 `Hopyo_SheetMake.ts` · [수정] = 줄 판(`:296-315`) · 본 칸 보기도 `opened` 등록(`:289-293`) | ≈ 440 | +| 새 `M02_MasterTemplete_Hopyo_SheetMake.ts` | — | `save` · `makeAll` · `importAll` · `buildOrder` 옮김(줄 바꿈 없음) | ≈ 175 | +| `M02_MasterTemplete_Hopyo_SheetSk.ts` | 68 | `show(번)`(안 이은 줄 창 → 그 블록) 내보냄 · [줄 n] → 줄 판 | ≈ 85 | +| `M02_MasterTemplete_Hopyo_WizardSk.ts` | 373 | 넓은 꼴만 쓰던 것 걷음 — 넓은 칸(`:201-213`) · 넓은 줄(`:271-283`) · [보기] `sheet()`(`:141-146` · `:265`) · 안내 글(`:122`) · 좁은 꼴 [줄 n] = 부르는 쪽 `onLines(번)` · 줄 표 지음 `lines(번)` 내보냄 · `count()` 남김(끝내기 글) · 이름 그대로(시험 · 도우미 이어 씀) | ≈ 330 | +| `M02_MasterTemplete_Hopyo_Check.ts` | 662 | **손 안 댐** — `buildHopyoCheck`(`:226`) 줄 판에 그대로 · [엑셀 보기](`:592` · `:209-210`)는 `opened` 로 본 칸 시트 뜀 | 662 | +| `M02_MasterTemplete_Hopyo_Api.ts` | 632 | **손 안 댐** — 새 서버 길 없음(`uploadHopyo` · `listHopyo` · `deleteHopyo` 그대로) | 632 | +| `M02_MasterTemplete_Hopyo_Left.ts` | 327 | 손 안 댐 — 부르는 쪽이 `nos` 바로 넘김 · `onSk` = 본 칸 뛰기 | 327 | +| `Hopyo_CheckRows` · `SkLines` · `SheetNav` · `Kids` · `Choose` · `Lost` · `Relink` · `ToItem` · `Compare` · `SkApi` | | 손 안 댐(`SheetNav.raise/lower` 는 모달 껍데기 남기면 둠) | | +| `M02_MasterTemplete_Hopyo_Pick.ts` | 104 | 2-5 ② 걷으면 지움 + `Labor_Pick.ts:50` 내보냄 · 서버 `GET …/hopyo-picks`(`M02_Labor_Router.py:252-260` · `M02_Hopyo_Match.py:495-519`) | 0 | +| `M02_MasterTemplete_Hopyo.css` | 417 | 본 칸 높이 꽉 한 벌(도면 양식 꼴) · 줄 판 행 · 목록 줄 페이지 CSS(`:335-382`)는 `createListRow` 로 가면 걷음 · 모달 몸(`:256-258`)은 껍데기 남기면 둠 | ≈ 400 | +| `ui_template/ui_template_locale_m2.ts` | | 걷음 `M02_WizSkCheck`(`:242`) · `M02_WizSkHead`(`:309`) · `M02_WizIlwiHead`(`:310`) · `M02_SkHint`(`:247` · 넓은 꼴 안내) · 남김 `M02_HopyoImport` · `M02_Left*` · `M02_SkLeft` · `M02_SkUnmoved` | | +| 서버(`M02_Hopyo_*.py` · `M02_Labor_Router.py`) | | 화면 흐름 때문에 바뀔 것 없음(매칭은 642-A) | | + +### 3-2 700 줄 근처 + +- `Hopyo_Check.ts` 662 · `Hopyo_Api.ts` 632 — 이번 일에서 한 줄도 안 늘림(줄 판은 기존 몸 · 새 서버 길 없음). +- `Hopyo_Sheet.ts` 614 — 껍데기 · 줄 판 자리로 늘 몫(+40)보다 만들기 셋 옮김(−160) · [삭제] 걷음(−20)이 커서 ≈ 440 으로 줆 · 642-A 줄 결과를 붙일 자리 생김. +- 새 파일 셋(`Import` ≈ 200 · `SheetMake` ≈ 175) — 700 아래. + +### 3-3 길(라우터 · 상태 · 캐시 · 해시) + +| 갈래 | 지금 | 뒤 | +| --- | --- | --- | +| 라우터 · 해시 | 해시 없음 — 본 칸 `showView`(`UI_Main.ts:632-652`) · 페이지 해시 `#/m02-master-template` 그대로 | 그대로 · 새 해시 열쇠 안 만듦(떠나면 HP 지움 = 다시 열 것 없음) | +| 본 칸 보기 열쇠 | `Side.ts:33` `WIZARD = "불러오기"` · 같은 열쇠면 다시 안 지음(`:63`) | 같은 열쇠 = 불러오기 보기 · 파일 바뀌면 다시 지음 | +| 떠남 = 쥔 HP 지움 | 마법사 `held` · `pagehide`(`Wizard.ts:94-103`) · `Side.paint`(`:74-79`) | 불러오기 보기로 옮김 · 그대로 | +| 화면 상태 | `pick`(층) · `wantSangeun` · `steps` · `nos` · `map` · `sk` | `pick` → 왼쪽 판 · `wantSangeun` · `steps` 지움 · `nos`(엑셀 보기 호표 번으로 바로) · `map` · `sk`(목록 판 단가산출 칸) → 불러오기 보기 | +| sessionStorage | 확인 창 `m02-hopyo-check:{층}:{주인}:{키}:{번}`(`Check.ts:75-76`) · 단가산출 `m02-hopyo-sk:{층}:{주인}:{키}`(`WizardSk.ts:52-53`) | 둘 다 그대로 · 새 열쇠 없음 | +| 두 벌 맞춤 알림 `SK_SYNC` | 마법사 칸 ↔ 엑셀 보기 목록(`WizardSk.ts:74-76` · `:129-139`) | 벌 하나만 남음 — 둬도 해 없음(걷으면 `test_627_sheet_sk.py:75-76` 고침) | +| 격자 메모리 캐시 | `SheetNav.ts:62-70` `gridOf`(마지막 하나) | 그대로 | +| 열린 창 손잡이 | `Sheet.ts:89` `opened` · 같은 파일 다시 부름 = 앞으로 꺼내 뜀(`:289-293`) | 본 칸 보기도 같은 열쇠로 등록 → 확인 몸 [엑셀 보기] · 단가산출 줄 [보기] = 본 칸 시트 뜀 · 모달 안 띄움 | +| 알림 `HOPYO_BUILT` · `HOPYO_DRAFT` | 왼쪽 나무 · 칠 다시(`UI_Side.ts:157-162` · `SheetNav.ts:247-248`) | 그대로 | + +### 3-4 시험 고칠 것(고친 대상만 · `./venv/Scripts/python.exe -m pytest resources/tester/<파일> -q`) + +| 시험 | 자리 | 고칠 것 | +| --- | --- | --- | +| `test_m02_hopyo_screen.py` | `:26-32` 이름 목록 · `test_좌측_판_자리와_권한 :339-366` · `test_엑셀_보기_창_여는_자리와_늦게_불러옴 :385-405` · `test_명사형_단추와_별칭_장부_풀이_359 :514-540` · `test_372_2_… :542-552` · `test_779_… :554-591`(`opened` · `raise`/`lower`) | `Hopyo_Wizard` → `Hopyo_Import` · Side = 올림 · 불러오기 보기 · `wantSangeun` 없음 · 중간 걸음 없음(`second(` · `STEPS` 없음) · [삭제] → [끝내기] · 모달 껍데기 남김 여부대로 | +| `test_729_3_hopyo_left_screen.py` | `test_마법사_끝내기_막음_단가산출_칸_목록_열 :93-130` | 끝내기 대조 → `Hopyo_Import` · `sangeunStep(scope, file.키, file.파일` 대조 걷음 · 빈 `nos` 로 `openLeft` 안 부름 대조 더함 | +| `test_627_sheet_sk.py` | `:47`(좁은 꼴 인자) · `test_캐시_공유_알림_칠_다시 :72-88`(`Wizard` 글) · `test_부품_상자만_700줄 :90-99` | `onLines` 인자 · `Wizard` → `Import` · 파일 목록 | +| `test_778_5_sk_pick_screen.py` | `test_화면_자동_없음_부품_상자만 :115-132`(`:121` `단산행: 행` · `:124-125` `Wizard`) | 넓은 [보기] 걷음 → 줄 판 뛰기 대조 · `Wizard` → `Import` | +| `test_782_1_small_flaws.py` | `test_finish_confirm_args_in_order :8-15` | 끝내기 물음 인자 대조 → `Hopyo_Import` | +| `test_720_m02_folder_layer.py` | `:99` | `Hopyo_Side` 글 대조 맞춤 | +| 도우미 `helper_m02_hopyo_seam.cjs:35` · `helper_m02_hopyo_check.cjs:69` | `Hopyo_Sheet.ts` 를 불러 `hopyoAtRow` · `spanText` · `lastColumn` · `buildOrder` · `rowsText` · `allLinked` 씀 | `buildOrder` 옮기면 `SheetMake` 도 불러옴 · 나머지 그대로 | +| 도우미 `helper_778_5_sk_pick.cjs:26` · `:141` | `WizardSk` 대역 · `createSheetSk` | `show` · `onLines` 대역 더함 | +| 새 지킴 시험 하나 | — | 왼쪽 [불러오기] = file 입력 · 올림 뒤 `showView` 바로 · 중간 걸음 없음 · 줄 판 = `buildHopyoCheck` · 700 줄 · 날 `` · `