最終更新: 2026/06/22 18:56
データ整備・マスタ追加案件
コード開発を伴わず、マスタデータの追加・DDLスキーマの軽微な変更・スプレッドシート上の手作業で完了する案件を集約したページです。 追加開発案件(TODO_future.md)から切り出したもので、開発者でなくても対応可能な作業が中心です。
対応ステータス
| ステータス | 意味 |
|---|---|
| 未着手 | まだ作業していない |
| 完了 | 対応済み(日付を記入) |
マスタデータ追加
| ID | 案件名 | 対象シート | ステータス | 完了日 | 作業内容 | 備考 |
|---|---|---|---|---|---|---|
| D-01 | 新規科目: 194 開業費 | 11_mst_account | 完了 | 2026-04-14 | 有効フラグ=TRUE, 主科目コード=194, 諸表区分=BS, 大分類=資産, 表示区分=繰延資産, 表示科目=開業費, 正式科目名=開業費, 固変区分=対象外, デフォルト税率=対象外, 科目名=開業費 | 設立後〜営業開始の準備費用(名刺、広告、打合せ等)。元: MAS-112 |
| D-02 | 新規科目: 301 資本準備金 | 11_mst_account | 完了 | 2026-04-14 | 有効フラグ=TRUE, 主科目コード=301, 諸表区分=BS, 大分類=資本, 表示区分=純資産, 表示科目=資本準備金, 正式科目名=資本準備金, 固変区分=対象外, デフォルト税率=対象外, 科目名=資本準備金 | 出資金のうち資本金に組み入れなかった金額。元: MAS-112 |
| D-03 | 新規科目: 218 役員借入金 | 11_mst_account | 完了 | 2026-04-14 | 有効フラグ=TRUE, 主科目コード=218, 諸表区分=BS, 大分類=負債, 表示区分=その他流動負債, 表示科目=役員借入金, 正式科目名=役員借入金, 固変区分=対象外, デフォルト税率=対象外, 科目名=役員借入金 | 役員個人からの借入・立替金。元: MAS-112。※217は仮受消費税で使用済みのため218に変更 |
| D-13 | 新規科目: 615 創立費 | 11_mst_account | 未着手 | — | 有効フラグ=TRUE, 主科目コード=615, 諸表区分=PL, 大分類=費用, 表示区分=その他営業外費用, 表示科目=創立費, 正式科目名=創立費, 科目名=創立費, 固変区分=対象外, デフォルト税率=対象外, 説明=「会社設立時の費用(定款認証手数料・登録免許税・司法書士報酬・設立準備期間家賃等)。中小企業会計指針 §56 + 実務対応報告第19号で『支出時全額費用処理』が本則のため B/S 繰延資産化せず直接 P/L 営業外費用として計上する」 | 元: RQ-037 Gemini 3 Pro Preview Deep Think 助言相談 (PR #471)。D-01 の 194 開業費 (繰延資産・BS) とは別物。本件は設立年度大幅黒字想定のためパターン1 (支出時一括費用計上) を採用・繰延資産化を経ない直接費用化の処理。税務扱い: 法基通 8-1-2 で「損金経理 = 当期全額償却」扱い・別表四調整不要・別表十六(六) 添付省略が実務一般。関連 INV 起票: 申請種別 APL_EX (経費精算) または APL_AP / 決済手段 口座振込 / 摘要に内訳明細。MAS-024 BEP・MAS-058 健全性診断には影響しない (営業利益ベース)。MAS-067 マルチイヤーで Y0 のみ凹む経常利益として認識される (Y1 以降は影響消滅)。コード 615 は既存「614 雑損失」の次・「その他営業外費用」表示区分で並列配置 |
| D-14 | 役員個人所有資産 → 法人取得 (役員借入金経由) 標準パターン | 32_wrk_invoice (実取引時) | ガイド (継続適用) | — | 手順: (1) 対象資産の時価評価 (車両=カーセンサー等の中古買取見積・PC=メーカー残存価額・冷蔵庫=同型中古相場) + 評価根拠の証跡保管 → (2) 取締役会承認 (会社法 356 条 利益相反取引・Solo CEO で取締役 1 名なら株主総会承認で代替可) + 議事録作成 → (3) 売買契約書作成 (個人・法人間・売買日・対価・支払方法明記) → (4) bizlp INV 起票: 申請種別=APL_AP (買掛・支払予定) / 取引先=役員個人 (例: 代表 山田太郎) / 科目名=対象資産科目 (車両=164 車両運搬具 / PC・冷蔵庫等=工具器具備品) / 決済手段=資産計上 (B/S 即時計上・CF 除外) / 発生日=売買契約締結日 → (5) 仕訳: (借) [対象資産科目] / (貸) 役員借入金 (218) → (6) 後日返済時: (借) 役員借入金 (218) / (貸) 普通預金 → (7) 減価償却 (法定耐用年数で償却・中古資産は経過年数に応じた短縮計算 = (法定耐用年数 - 経過年数) + 経過年数 × 0.2・最低 2 年) | 対象シーン: 創業前に発起人個人で購入した車両・PC・冷蔵庫等の資産を会社設立後に法人へ移管する場合の標準パターン。現物出資 (会社法 28 条 1 号) や財産引受 (会社法 28 条 2 号) は検査役調査の手間があるため Solo CEO では非推奨。本パターンは検査役調査不要・既存の 218 役員借入金 (D-03 で登録済) を経由するため bizlp 上で完結。証憑保管: 時価評価根拠 + 売買契約書 + 取締役会・株主総会議事録の 3 点セット。個人側の課税: 譲渡所得 (生活用動産は原則非課税・事業用資産は課税対象だが買取価格 ≦ 個人取得価額なら譲渡損で課税なし)。RQ-038 候補: 役員借入金の認定利息ガイドライン (無利息でも一定範囲は OK だが長期高額の場合は税務リスク)。関連科目: 164 車両運搬具 / 工具器具備品 / 218 役員借入金 (D-03) / 減価償却費・減価償却累計額。注意: 私的利用按分が必要な場合は走行距離ベース等で按分計算 (100% 業務利用なら不要)。本パターンは継続適用 (ガイド扱い・実取引が発生するたびに参照) |
DDLスキーマの軽微な変更
| ID | 案件名 | 対象 | ステータス | 完了日 | 作業内容 | 備考 |
|---|---|---|---|---|---|---|
| D-04 | 科目マスタに「説明」列を追加 | 101_sys_config.js MST_ACCT headers | 完了 | 2026-04-14 | MST_ACCTのheaders配列の末尾に "説明" を追加。setupAllSchemas実行で反映。既存データの説明列は空欄→手動またはマイグレーションで入力。 | 元: MAS-111。mst_account.md に全科目の説明文は記載済み |
| D-05 | 32タブに決済日列を追加 | 101_sys_config.js WRK_INVC headers | 完了 | 2026-04-14 | WRK_INVCのheaders配列に "決済日_実績" を追加。33タブの決済日_実績を32タブに転記する仕組みはAction B等のコード改修が別途必要。 | 元: MAS-077。DDL変更のみ先行可能、コード連動は別案件 |
スプレッドシート手作業
| ID | 案件名 | 対象シート | ステータス | 完了日 | 作業内容 | 備考 |
|---|---|---|---|---|---|---|
| D-06 | 科目マスタの説明列データ投入 | 11_mst_account | 完了 | 2026-04-14 | D-04でDDL追加後、mst_account.md の説明文を全科目にコピー(約90行)。MCP update_cells またはGAS一括投入スクリプトで対応可。 | D-04が前提 |
| D-07 | 32タブ既存レコードの決済日_実績を補完 | 32_wrk_invoice | 未着手 | — | MAS-077(コード連動)実装完了により、今後の Action B 実行時は決済日_実績が自動転記される。しかし既に決済完了済みのレコードは決済日_実績が空欄のまま。33_wrk_bank の決済日_実績を参照し、32タブの該当INVに転記する。対象条件: 有効フラグ=TRUE、請求ステータス=決済完了、決済日_実績が空欄。データ元: 33_wrk_bank の消込対象請求ID(INV)でマッチし、決済日_実績を転記。複数STLがある場合は最新日付。 | MAS-077が前提。マイグレーションスクリプト(807番台)での対応を推奨 |
未使用列の整理(削除候補)
以下はDDLスキーマに定義されているが、GASコードのビジネスロジックから一切参照されていない列です。 DDL定義・バリデーション設定・プルダウン生成では使用されている場合がありますが、データ処理ロジック(RPA・仕訳エンジン・データマート等)からは未参照です。
判定基準:
- 削除可: コードからもUI運用からも参照されておらず、削除しても影響なし
- 保留(将来利用): 追加開発案件で使用予定がある、またはUI上で人間が参照している
- 保留(UI用途): プルダウンや表示用に使われており、コードからの参照はないが運用上必要
削除可能な列
| ID | シート | 列名 | 理由 | ステータス | 完了日 |
|---|---|---|---|---|---|
| D-10 | 15_mst_dict | 貸方科目マッピング | 定義のみで未実装。元々の設計意図が不明 | 完了 | 2026-04-14 |
| D-11 | 34_wrk_card | STL税込金額_決済 | コードからは未参照だが、人間がマッチ結果を目視確認する際に使用 | 保留(UI用途) | — |
| D-12 | 35_wrk_receipt | STL税込金額_決済 | D-11と同様。人間が目視確認に使用 | 保留(UI用途) | — |
保留(将来利用予定)
| ID | シート | 列名 | 将来利用案件 | 備考 |
|---|---|---|---|---|
| — | 11_mst_account | 正式科目名 | — | 表示科目と区別して正式名称を保持。税務申告(MAS-092)で使用見込み |
| — | 11_mst_account | 固変区分 | MAS-024 (損益分岐点BEP算出) | BEP計算で固定費/変動費の分類に必須 |
| — | 11_mst_account | デフォルト税率 | MAS-089 (消費税税抜方式) | 課税事業者移行時に消費税計算で使用 |
| — | 12_mst_partner | 取引先区分 | MAS-102 (全銀振込データ) | 取引先の分類(仕入先/販売先/金融機関等) |
| — | 23_bud_subscription | 自動更新アラート | — | 契約更新日の通知機能で使用予定 |
保留(UI用途・人間が参照)
| ID | シート | 列名 | 備考 |
|---|---|---|---|
| — | 14_mst_project | PJ小区分, PJ大区分, 社内外, 資産化, 顧客・取引先名, PJ区分, 資産化対象 | PJマスタの分類情報。コードからは未参照だがPM・経営者が分類参照用に使用 |
| — | 15_mst_dict | カテゴリ, 設定コード, 表示名 | コード辞書の基本列。プルダウンの元データとして02_sys_dropdownから参照 |
| — | 16_wrk_master | 登録名称〜システム発番コード(9列) | マスタ申請ワークフローのUI入力列。コードはID発番のみ使用 |
| — | 34_wrk_card | ご利用者, カテゴリ, 決済区分, 今回回数, 国内/海外 | クレカ明細のCSV取込で貼り付けられる元データ列。経理が目視確認に使用 |
dev → prod 反映手順
データ整備(マスタ追加・DDLスキーマ変更等)を dev で検証した後、prod に反映する手順。
Phase 1 暫定運用: 手動反映
コードを伴わないデータ整備(D-01〜D-03 等のマスタ追加)は、dev で検証後に prod で同じ操作を手動で再実施する。
1. dev で作業・検証
├── マスタデータ追加(スプレッドシート手入力)
├── setupAllSchemas 実行(DDL変更がある場合)
├── RPA・マート更新で動作確認
└── テストランナーで回帰テスト
2. prod に反映
├── npm run push:prod(コード変更がある場合)
├── prod スプレッドシートを開く(npm run open:prod)
├── マスタデータを手動で同じ内容を入力
├── setupAllSchemas 実行(DDL変更がある場合)
└── 軽微な動作確認(RPA 1件実行等)
3. 確認チェックリスト
□ dev と prod のヘッダー行が一致しているか
□ 追加したマスタ行が正しく入力されているか
□ RPA で新しいマスタを使った起票が正常に動くか
恒久対策: マイグレーションスクリプト(MAS-116)
データ整備の内容をコードとして記述し、dev/prod 両方で実行する方式。詳細は TODO_future.md MAS-116 を参照。
mas/800_ops/
804_migration_d01_d03.js ← D-01〜D-03: 科目マスタ3件追加
805_migration_d04_d06.js ← D-04/D-06: 科目マスタ説明列データ投入
806_cleanup_empty_rows.js ← 全シートの空行を物理削除
メリット:
- Git で差分レビュー → コードレビューしてから prod 実行
- 冪等性を担保(「既に存在したらスキップ」のチェック付き)
- 実行ログで「何をいつ適用したか」が追跡可能
変更履歴
| 日付 | 変更内容 |
|---|---|
| 2026-04-14 11:20 | 初版作成。TODO_future.md の MAS-111, MAS-112 をデータ整備案件として切り出し |
| 2026-04-14 11:35 | 未使用列の調査結果を追加。31列中、削除可3件/将来利用5件/UI用途23件に分類 |
| 2026-04-14 22:30 | dev → prod 反映手順(Phase 1 暫定運用 + 恒久対策)を追加 |
| 2026-04-14 | マイグレーションスクリプト テンプレートを追加(MAS-116) |
マイグレーションスクリプト テンプレート
新規マイグレーションスクリプトを作成する際のテンプレート。804_migration_d01_d03.js の構造をベースにした汎用パターン。
ファイル作成手順
mas/800_ops/に8XX_migration_dNN_dNN.jsを作成(番号は807から)- 以下のテンプレートをコピーしてカスタマイズ
101_sys_config.jsの「🔧 マイグレーション」メニューに.addItem()を追加npm run push:dev→ dev で実行・検証 →npm run push:prod→ prod で実行
コードテンプレート
/**
* =========================================================
* 8XX_migration_dNN_dNN.js — (変更内容の要約)
* =========================================================
* D-NN: (案件の説明)
* D-NN: (案件の説明)
*
* 冪等性: (どのようなチェックでスキップするか記載)
* 手順: dev で実行・検証 → npm run push:prod → prod で実行
*/
function migrationDNNDNN() {
var FUNC = 'migrationDNNDNN';
// 1. 対象シートを取得
var sheetName = Utils.getSheetNameByKey('SHEET_KEY');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
if (!sheet) throw new Error(sheetName + ' シートが見つかりません');
// 2. ヘッダーインデックス構築(列番号ハードコード禁止)
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var keyCol = headers.indexOf('キー列名');
if (keyCol < 0) throw new Error('「キー列名」列が見つかりません');
// 3. 既存データを読み込み(冪等性チェック用)
var lastRow = sheet.getLastRow();
var existingKeys = [];
if (lastRow > 1) {
existingKeys = sheet.getRange(2, keyCol + 1, lastRow - 1, 1)
.getValues()
.map(function(r) { return r[0]; });
}
// 4. 変更データの定義
var changes = [
// 変更内容をここに定義
];
// 5. 冪等性チェック付きで変更を適用
var results = [];
var addedCount = 0;
var skippedCount = 0;
for (var i = 0; i < changes.length; i++) {
var item = changes[i];
var key = item[0]; // 一意キー
if (existingKeys.indexOf(key) >= 0) {
results.push(key + ': SKIP (既に存在)');
skippedCount++;
continue;
}
// 列Bで最終行を判定(列Aのチェックボックス回避)
var appendRow = sheet.getLastRow() + 1;
sheet.getRange(appendRow, 1, 1, item.length).setValues([item]);
results.push(key + ': ADDED');
addedCount++;
}
// 6. 結果サマリーを表示
var summary = 'D-NN〜D-NN (変更内容の要約)\n'
+ '追加: ' + addedCount + '件 / スキップ: ' + skippedCount + '件\n\n'
+ results.join('\n');
Utils.logInfo(FUNC, summary);
SpreadsheetApp.getUi().alert('マイグレーション完了', summary, SpreadsheetApp.getUi().ButtonSet.OK);
}
メニュー登録(101_sys_config.js)
onOpen_() 関数内の「🔧 マイグレーション」メニュー定義に .addItem() を追加する。
ui.createMenu('🔧 マイグレーション')
.addItem('D-01〜D-03: 科目マスタ3件追加', 'migrationD01D03')
.addItem('D-04/D-06: 科目マスタ説明列データ投入', 'migrationD04D06')
.addSeparator()
.addItem('全シートの空行を物理削除', 'cleanupEmptyRows')
.addSeparator()
.addItem('D-NN〜D-NN: (説明)', 'migrationDNNDNN') // ← 追加
.addToUi();
チェックリスト
新規マイグレーション作成時に確認する項目:
- ファイル名が
8XX_migration_dNN_dNN.jsの命名規則に従っている - 関数名がファイル名と対応している(
migrationDNNDNN) - 冪等性チェックが実装されている(2回実行しても安全)
-
Utils.logInfoとSpreadsheetApp.getUi().alertの両方で結果を出力している - 「🔧 マイグレーション」メニューに登録した
- dev 環境で実行・検証を完了した
- CLAUDE.md のmas/800_ops/ファイル一覧にファイル名を追記した