feat(797-1): 엑셀 불러오기 요소 연결 — 기계 이음 [우리 단가로] 셈 · 유가 · 환율 이음 · 산근 속 산근 형제 참조 · 읽기 불가 사유 응답

- 기계(EQ) 이음 줄 [우리 단가로] = 시간당 기계경비의 그 비목(옛 Decimal × dict 실패 387 블록 풀림) · 시간당 자료 없는 EQ = 엑셀 단가 그대로
- 내보내기 `_m01` = 유가(MO) · 환율(FX) 유일 짝만 자동 · 여럿 = 표지 · 화폐는 이름 그대로일 때만(「유로폼」 오판 막음)
- 산근 속 산근 = 같은 엑셀 안쪽 블록을 형제 가져온 식 SK 로 먼저 만들어 `참조`(비목 한 줄 부름 = `참조비목`) · 단가기준 따라감 · 못 잇는 줄 = 얼림 + 표지
- 쓰는 곳 · 층 복사 · 프로젝트 굳힘이 가져온 호표 참조를 봄(`Labor_Ref.refs_in` · `_move_doc`)
- 올림 응답 `읽기불가` + 화면 토스트
- 시험 test_797_1_import_links 9 · 낡은 시험 없음

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-07 14:17:06 +09:00
co-authored by Claude Sonnet 5.5
parent b608d2aa3d
commit 430aaa9aae
10 changed files with 390 additions and 23 deletions
+8
View File
@@ -60,6 +60,8 @@ def refs_in(doc: Any) -> list[Ref]:
return []
base = doc.get("바탕")
lines = [*(doc.get("담은로직") or []), *(doc.get("더한줄") or []), base]
own = ((doc.get("가져온") or {}).get("로직") or {}).get("호표") # 가져온 식 산근 속 산근(797-1)
lines += own if isinstance(own, list) else []
return [
one["참조"] for one in lines if isinstance(one, dict) and isinstance(one.get("참조"), dict)
]
@@ -500,6 +502,12 @@ def _move_doc(doc: dict[str, Any], move: Callable[[Ref, int], Ref], depth: int)
out = {**doc, "더한줄": _moved(doc.get("더한줄"), move, depth)}
if isinstance(base, dict) and isinstance(base.get("참조"), dict):
out["바탕"] = {"참조": move(base["참조"], depth)}
own = (doc.get("가져온") or {}).get("로직")
if isinstance(own, dict): # 가져온 식 산근 속 산근(797-1)
out["가져온"] = {
**doc["가져온"],
"로직": {**own, "호표": _moved(own.get("호표"), move, depth)},
}
return out