docs/moysklad-logic-audit.md. 08.10.2026Сейчас: инвентаризация сама меняет остатки и показывает «Проведено», но без документов оприходования/списания — непонятно, откуда изменения.
Как в МойСкладе: инвентаризация только считает (расчётное / фактическое / разница). По её итогам нажимаете «Создать оприходование излишков» и «Создать списание недостачи» — вот эти документы и меняют остатки, и они видны и связаны с инвентаризацией.
Переделка уже запланирована следующей задачей — план совпал с этой сверкой.
Сейчас: себестоимость — «скользящее среднее»: при новой закупке пересчитывается одно общее значение, и прибыль за прошлые периоды может «плыть» задним числом.
Как в МойСкладе: себестоимость по FIFO — «первым пришёл, первым продан»; прибыль считается точно по партиям и не меняется задним числом.
Это самый крупный по объёму блок. Можно сделать компромисс: среднее по умолчанию (проще для маленького магазина), FIFO — как опция. Нужно ваше решение.
Сейчас: документы слабо связаны между собой (не видно «на основании чего» создан документ).
Как в МойСкладе: почти всё создаётся «на основании» (приёмка→возврат поставщику, инвентаризация→оприходование/списание, продажа→возврат), и в каждом документе видно связи.
| Что | У нас | В МойСкладе | |
|---|---|---|---|
| Себестоимость | скользящее среднее | FIFO по партиям | важно |
| Прибыль (себестоимость продажи) | приближённо, задним числом | точно, на момент продажи | важно |
| Инвентаризация | сама двигает остатки, «Проведено» | только считает → оприходование/списание | важно |
| Списание/перемещение: цена | переданная/средняя | по FIFO-партии | важно |
| Связи «на основании» | слабые | сквозные, видны | средне |
| Отмена проведения | неединообразно | штатная для всех документов | средне |
| Розничная смена | открытие вручную | автооткрытие первой продажей, ≤24ч | средне |
| Взаиморасчёты | долги считаются, но не единый реестр | единый реестр документ+оплата | средне |
Часть наших тестов закрепляла текущее (неправильное) поведение как эталон — их нужно переписать под логику МойСклада. В первую очередь: шаг 10 full-chain (инвентаризация), unit-тесты инвентаризации и себестоимости, прибыль, mobile post/unpost инвентаризации.
Правило на будущее: сначала сверка с МойСкладом → потом реализация → потом тесты под сверенное поведение (а не тесты под уже написанный код).