food-market/docs/migration-progress.md
nns a2ee85bc12
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
docs(migration): инвентаризация источника МойСклад + дизайн мигратора (Part 1)
Решение владельца 09.10: полный перенос магазина из МойСклада в ALL MARKET с историей.
- scripts/migration/ms_inventory.py — read-only инвентаризация источника.
- docs/migration-source-inventory.md: орг «FOOD MARKET», ~31k товаров, 627 контрагентов,
  ~110k документов (97 707 чеков, 7 125 приёмок, 3 068 списаний…), 7 558 строк остатков,
  1 склад/точка/орг, касса наличных, 1 тип цены; gap-анализ модели + цели сверки.
- docs/migration-design.md: идемпотентность по msId, хронология документов, МСК→UTC,
  тиыны, резюмируемость, порядок этапов, сверка, дельта, runbook.
- docs/migration-progress.md: план Part 1–7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:26:35 +05:00

3 KiB
Raw Blame History

Перенос магазина МойСклад → ALL MARKET (с историей) — прогресс

Решение владельца 09.10: перенести ВСЁ из МойСклада с историей, перейти на ALL MARKET. Фискализации нет и в МойСкладе (не блокер), маркировка не используется.

Источник: аккаунт МойСклад, орг «FOOD MARKET» (id bb8f74d4-5eb6-11ef-0a80-106e00048af9). Токен — ~/.food-market-secrets/moysklad.env (ТОЛЬКО ЧТЕНИЕ; в МойСклад ничего не писать). Опыт API — ~/.fm-watchdog/ms-api-lessons.txt; код-образцы — ~/ref/fm-server-moysklad, ~/ref/sklad. Существующий импортёр (справочники) — src/food-market.infrastructure/Integrations/MoySklad/.

Легенда: [x] готово · [~] частично · [ ] не начато.

План

  1. Инвентаризация источника (скрипт) → docs/migration-source-inventory.md.
  2. Мигратор MoySklad→ALL MARKET (Hangfire, идемпотентный по msId/externalId): справочники → документы в хронологии с номерами/датами(МСК→)/авторами/статусами/связями/комментариями; суммы из тиынов; прогресс + журнал ошибок.
  3. Новая орг на стенде (имя = орг МойСклада), простой режим; Демо/«Магазин у дома» не трогать.
  4. Сверка (авто) → docs/migration-reconciliation.md: остатки по товар×склад, долги контрагентов, остатки счетов/касс, выручка+чеки по месяцам, число документов по типам.
  5. Дельта-досинхронизация (updated>= МСК + удалённые) до дня перехода.
  6. Производительность/надёжность: замер, идемпотентность, продолжение после падения.
  7. Runbook «день перехода» + откат.

Ключевые факты API (из ms-api-lessons + проверки)

  • База https://api.moysklad.ru/api/remap/1.2, Authorization: Bearer, Accept-Encoding: gzip обязателен.
  • Время moment/фильтров — МОСКОВСКОЕ (UTC+3), формат yyyy-MM-dd HH:mm:ss.
  • Суммы — в ТИЫНАХ (÷100). Лимит 45 запросов/3с; таймаут ≥120с; expand только при limit≤100.
  • report/stock/all НЕ отдаёт нулевые остатки; номера документов повторяются по годам — ключ только id.

Что НЕ трогаем

Прод, shared-postgres, global.json, gateway nginx, sklad. В МойСклад — только чтение.