Решение владельца 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>
99 lines
6.6 KiB
Markdown
99 lines
6.6 KiB
Markdown
# Инвентаризация источника МойСклад (FOOD MARKET)
|
||
|
||
_Сгенерировано 2026-10-09 13:21:46 (только чтение)._
|
||
|
||
## Сущности и документы
|
||
|
||
| Сущность | МойСклад entity | Кол-во |
|
||
|---|---|---|
|
||
| Товары | `product` | 30991 |
|
||
| Модификации | `variant` | 0 |
|
||
| Услуги | `service` | 0 |
|
||
| Комплекты | `bundle` | 0 |
|
||
| Группы товаров | `productfolder` | 52 |
|
||
| Единицы измерения | `uom` | 59 |
|
||
| Валюты | `currency` | 1 |
|
||
| Типы цен (в настройках) | `pricetype` | _спец, ниже_ |
|
||
| Штрихкоды | `barcodes` | _спец, ниже_ |
|
||
| Контрагенты | `counterparty` | 627 |
|
||
| Юрлица (организации) | `organization` | 1 |
|
||
| Склады | `store` | 1 |
|
||
| Точки продаж | `retailstore` | 1 |
|
||
| Сотрудники | `employee` | 3 |
|
||
| Счета организации | `orgaccounts` | _спец, ниже_ |
|
||
| Приёмки | `supply` | 7125 |
|
||
| Возвраты поставщикам | `purchasereturn` | 550 |
|
||
| Оприходования | `enter` | 72 |
|
||
| Списания | `loss` | 3068 |
|
||
| Инвентаризации | `inventory` | 70 |
|
||
| Перемещения | `move` | 0 |
|
||
| Розничные продажи (чеки) | `retaildemand` | 97707 |
|
||
| Розничные возвраты | `retailsalesreturn` | 438 |
|
||
| Смены | `retailshift` | 690 |
|
||
| Внесения в кассу | `retaildrawercashin` | 18 |
|
||
| Выплаты из кассы | `retaildrawercashout` | 623 |
|
||
| Отгрузки | `demand` | 0 |
|
||
| Возвраты покупателей | `salesreturn` | 2 |
|
||
| Заказы покупателей | `customerorder` | 0 |
|
||
| Заказы поставщикам | `purchaseorder` | 0 |
|
||
| Счета-фактуры вх. | `invoicein` | 0 |
|
||
| Счета покупателям | `invoiceout` | 0 |
|
||
| Входящие платежи | `paymentin` | 0 |
|
||
| Исходящие платежи | `paymentout` | 171 |
|
||
| Приходные ордера | `cashin` | 595 |
|
||
| Расходные ордера | `cashout` | 0 |
|
||
| Корректировки взаиморасчётов | `counterpartyadjustment` | 0 |
|
||
| Оприходование/списание денег | `none` | _спец, ниже_ |
|
||
|
||
## Остатки, деньги, взаиморасчёты (цели сверки)
|
||
| Показатель | Значение |
|
||
|---|---|
|
||
| Типы цен | 1 («Цена продажи») |
|
||
| Счета организации (банк) | 0 — магазин кассовый (наличные) |
|
||
| report/stock/all (строк товар×склад с остатком) | **7558** |
|
||
| Склад | «Склад FOOD MARKET» (`bb91971a-…`) |
|
||
| Точка продаж | «FOOD MARKET» (`bbad71b4-…`) |
|
||
| Юрлицо | «FOOD MARKET» (`bb8f74d4-…`) |
|
||
|
||
Деньги: банковских счетов нет → остаток кассы точки восстанавливается из чеков/внесений/
|
||
выплат/ордеров. report/money вернул пусто (уточнить формат при сверке Part 4).
|
||
|
||
## Итоги по объёму (для планирования)
|
||
- Справочники: ~31 000 товаров, 52 группы, 59 ед., 627 контрагентов, 3 сотрудника, 1 орг/склад/точка.
|
||
- Документы (всего ~**110 000**): чеки 97 707, приёмки 7 125, списания 3 068, выплаты 623,
|
||
приходные ордера 595, возвраты поставщикам 550, розн. возвраты 438, исх. платежи 171,
|
||
инвентаризации 70, оприходования 72, внесения 18, возвраты покупателей 2.
|
||
- Пусто (нет в этом магазине): модификации, услуги, комплекты, перемещения, отгрузки,
|
||
заказы, счета-фактуры/счета, входящие платежи, расходные ордера, корректировки взаиморасчётов.
|
||
|
||
## Соответствие модели ALL MARKET (gap-анализ)
|
||
| МойСклад | ALL MARKET | Решение |
|
||
|---|---|---|
|
||
| product | Product | прямое; хранить msId (externalId) |
|
||
| productfolder | ProductGroup (вложенность по pathName) | прямое |
|
||
| uom | UnitOfMeasure | по коду/имени; маппинг на наши ОКЕИ |
|
||
| pricetype «Цена продажи» | PriceType (системный) | прямое |
|
||
| barcodes (ean13/code128/…) | ProductBarcode | прямое, первый — primary |
|
||
| counterparty | Counterparty (поставщик/покупатель по флагам) | прямое |
|
||
| organization | Organization | новая орг = имя «FOOD MARKET» |
|
||
| store | Store | прямое |
|
||
| retailstore | RetailPoint (+ денежный счёт кассы) | прямое; касса наличных |
|
||
| employee | Employee/User | 3 сотрудника; кассиры чеков → owner |
|
||
| supply | Supply (приёмка) | прямое; номер/дата(МСК→UTC)/поставщик/позиции/цены(тиыны) |
|
||
| purchasereturn | SupplierReturn | прямое |
|
||
| enter | Enter (оприходование) | прямое |
|
||
| loss | Loss (списание) | причина → наш enum (маппинг/дефолт) |
|
||
| inventory | Inventory | прямое; факт-кол-во |
|
||
| retaildemand | RetailSale (чек) | прямое; оплата нал/безнал из cashSum/noCashSum; owner=кассир |
|
||
| retailsalesreturn | RetailSale(IsReturn) | привязка к исходному чеку |
|
||
| retailshift | CashShift (смена) | открытие/закрытие, точка, деньги |
|
||
| retaildrawercashin/out | MoneyTransaction (внесение/выплата) | в кассу точки |
|
||
| cashin (приходный ордер) | MoneyTransaction приход | счёт кассы |
|
||
| paymentout (исх. платёж) | MoneyTransaction расход | счёт |
|
||
| **Без прямого аналога** | | |
|
||
| Атрибуты/доп.поля товара (attributes) | — | перенести в Description/заметку или пропустить (решит Mac-Claude) |
|
||
| Корзина МойСклада (удалённые) | — | не переносим |
|
||
| Проекты/договоры (если есть) | — | проверить; при наличии — в заметку |
|
||
|
||
Решения по «без аналога» — см. migration-progress.md; Mac-Claude подтвердит.
|