Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
Дополнен docs/moysklad-logic-audit.md (+ .html) разделом «Проход 2»: - Все «проверить» закрыты фактом (код файл:строка и/или запрос на стенде): возврат→ReferenceSaleId; Z-отчёт без «по товарам»; долг поставщику считается (MoneyReportsController:120-183); обязательные поля товара Name+Unit+Group; приёмка с телефона/терминалы/фискализация — нет; отмена проведения ЕСТЬ у всех документов (исправление прохода 1); смена — только ручное открытие. - Себестоимость: подтверждён FIFO у МойСклада; у нас средняя; реальный пример Демо (BIOBLAS, Product.Cost=548.6441 из 3 приёмок) — показано искажение прибыли. - Казахстан (новое): фискализация ОФД РК (заглушка у нас; МойСклад — WebKassa/reKassa), НДС 16% с 2026 (дефолт KZ уже 16, SystemReferenceSeeder:38), маркировка ИС МПТ (только флаг IsMarked), СНТ/ЭСФ, акциз. Блок «Казахстан — обязательное по закону». - Сводка обновлена: топ-15 скорректирован (фискализация/маркировка РК вместо неверных пунктов), добавлен KZ-блок. Касса МойСклад vs наша — по функциям кассира. Только отчёт, без правок кода. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
127 lines
12 KiB
HTML
127 lines
12 KiB
HTML
<!doctype html><html lang="ru"><head><meta charset="utf-8">
|
||
<title>Сверка с МойСкладом — кратко</title>
|
||
<style>
|
||
body{font:16px/1.6 system-ui,Segoe UI,Roboto;margin:0;background:#f6f8f7;color:#15241c}
|
||
.wrap{max-width:900px;margin:0 auto;padding:24px 18px}
|
||
h1{font-size:26px;margin:0 0 4px} .sub{color:#5f6f68;margin-bottom:20px}
|
||
h2{font-size:20px;margin:28px 0 10px;border-bottom:2px solid #16A34A;padding-bottom:6px;color:#0f1f17}
|
||
.card{background:#fff;border:1px solid #e3e8e6;border-radius:12px;padding:16px 18px;margin:12px 0;box-shadow:0 1px 3px #0000000d}
|
||
.big{font-size:17px}
|
||
table{border-collapse:collapse;width:100%;margin:8px 0;font-size:14.5px}
|
||
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid #eef2f1;vertical-align:top}
|
||
th{color:#5f6f68;font-weight:600}
|
||
.hi{color:#b4231f;font-weight:700} .mid{color:#b45309} .ok{color:#16A34A}
|
||
.pill{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}
|
||
.pill.red{background:#fde8e8;color:#b4231f} .pill.amber{background:#fef3c7;color:#b45309}
|
||
.note{background:#E8F7EE;border:1px solid #bfe6cd;border-radius:10px;padding:12px 14px;color:#12551f}
|
||
ol li,ul li{margin:4px 0}
|
||
.muted{color:#5f6f68;font-size:14px}
|
||
</style></head><body><div class="wrap">
|
||
|
||
<h1>Сверка нашей системы с МойСкладом</h1>
|
||
<div class="sub">Коротко и без технических терминов. Полная версия — <code>docs/moysklad-logic-audit.md</code>. 08.10.2026</div>
|
||
|
||
<div class="note big">
|
||
<b>Главный вывод.</b> Большинство процессов у нас работает похоже на МойСклад. Но есть
|
||
несколько мест, где логика отличается и это влияет на <b>остатки, прибыль и понятность отчётов</b>.
|
||
Самое заметное — инвентаризация (вы это и заметили) и способ расчёта себестоимости.
|
||
</div>
|
||
|
||
<h2>3 вещи, которые стоит поправить в первую очередь</h2>
|
||
|
||
<div class="card">
|
||
<div class="big"><span class="pill red">важно</span> 1. Инвентаризация</div>
|
||
<p><b>Сейчас:</b> инвентаризация сама меняет остатки и показывает «Проведено», но без документов
|
||
оприходования/списания — непонятно, откуда изменения.</p>
|
||
<p><b>Как в МойСкладе:</b> инвентаризация только считает (расчётное / фактическое / разница).
|
||
По её итогам нажимаете «Создать оприходование излишков» и «Создать списание недостачи» — вот
|
||
эти документы и меняют остатки, и они видны и связаны с инвентаризацией.</p>
|
||
<p class="muted">Переделка уже запланирована следующей задачей — план совпал с этой сверкой.</p>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="big"><span class="pill red">важно</span> 2. Себестоимость и прибыль</div>
|
||
<p><b>Сейчас:</b> себестоимость — «скользящее среднее»: при новой закупке пересчитывается одно
|
||
общее значение, и прибыль за прошлые периоды может «плыть» задним числом.</p>
|
||
<p><b>Как в МойСкладе:</b> себестоимость по <b>FIFO</b> — «первым пришёл, первым продан»; прибыль
|
||
считается точно по партиям и не меняется задним числом.</p>
|
||
<p class="muted">Это самый крупный по объёму блок. Можно сделать компромисс: среднее
|
||
по умолчанию (проще для маленького магазина), FIFO — как опция. <b>Нужно ваше решение.</b></p>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="big"><span class="pill amber">средне</span> 3. «Создать на основании» и связи документов</div>
|
||
<p><b>Сейчас:</b> документы слабо связаны между собой (не видно «на основании чего» создан документ).</p>
|
||
<p><b>Как в МойСкладе:</b> почти всё создаётся «на основании» (приёмка→возврат поставщику,
|
||
инвентаризация→оприходование/списание, продажа→возврат), и в каждом документе видно связи.</p>
|
||
</div>
|
||
|
||
<h2>Топ расхождений (влияют на остатки/деньги/отчёты)</h2>
|
||
<table>
|
||
<tr><th>Что</th><th>У нас</th><th>В МойСкладе</th><th></th></tr>
|
||
<tr><td>Себестоимость</td><td>скользящее среднее</td><td>FIFO по партиям</td><td><span class="hi">важно</span></td></tr>
|
||
<tr><td>Прибыль (себестоимость продажи)</td><td>приближённо, задним числом</td><td>точно, на момент продажи</td><td><span class="hi">важно</span></td></tr>
|
||
<tr><td>Инвентаризация</td><td>сама двигает остатки, «Проведено»</td><td>только считает → оприходование/списание</td><td><span class="hi">важно</span></td></tr>
|
||
<tr><td>Списание/перемещение: цена</td><td>переданная/средняя</td><td>по FIFO-партии</td><td><span class="hi">важно</span></td></tr>
|
||
<tr><td>Связи «на основании»</td><td>слабые</td><td>сквозные, видны</td><td><span class="mid">средне</span></td></tr>
|
||
<tr><td>Отмена проведения</td><td>неединообразно</td><td>штатная для всех документов</td><td><span class="mid">средне</span></td></tr>
|
||
<tr><td>Розничная смена</td><td>открытие вручную</td><td>автооткрытие первой продажей, ≤24ч</td><td><span class="mid">средне</span></td></tr>
|
||
<tr><td>Взаиморасчёты</td><td>долги считаются, но не единый реестр</td><td>единый реестр документ+оплата</td><td><span class="mid">средне</span></td></tr>
|
||
</table>
|
||
|
||
<h2>Где мы можем сделать ЛУЧШЕ, чем МойСклад (нужно ваше решение)</h2>
|
||
<ol>
|
||
<li><b>Инвентаризация в один клик</b> — «Применить результаты» сразу создаёт и проводит оба документа (у МойСклада — две отдельные кнопки).</li>
|
||
<li><b>Простой режим прячет лишнее</b> — оприходование/списание не отдельными пунктами, а только из инвентаризации/приёмки.</li>
|
||
<li><b>Себестоимость на выбор</b> — среднее (проще/быстрее) или FIFO (точнее).</li>
|
||
<li><b>Единый экран «Деньги»</b> вместо четырёх типов документов МойСклада (проще для маленькой розницы).</li>
|
||
<li><b>Возврат поставщику прямо из приёмки</b> с готовым списком товаров.</li>
|
||
<li><b>Касса не стопорит продажу</b> при нулевом остатке — мягкое предупреждение + быстрый приход.</li>
|
||
<li><b>Онбординг «первая приёмка за 2 минуты»</b> — у МойСклада старт тяжелее.</li>
|
||
<li><b>Весовые штрихкоды из коробки</b> с настройкой префиксов (у нас уже есть — довести).</li>
|
||
<li><b>Прибыль сразу на дашборде</b> простого режима — без захода в отчёты.</li>
|
||
<li><b>Понятные статусы по-русски</b> без слова «проведено» в спорных местах.</li>
|
||
</ol>
|
||
|
||
<h2>🇰🇿 Казахстан — обязательное по закону (проход 2)</h2>
|
||
<div class="card">
|
||
<p class="big">Это не «лучше/хуже», а <b>требования закона РК</b> — без них магазин не может легально работать.</p>
|
||
<table>
|
||
<tr><th>Требование</th><th>Что нужно магазину</th><th>У нас сейчас</th></tr>
|
||
<tr><td><b>Фискализация (онлайн-ККМ + ОФД)</b></td><td>каждый чек уходит в ОФД (новый протокол с 01.04.2026)</td><td class="hi">нет (заглушка)</td></tr>
|
||
<tr><td><b>НДС 16%</b> (с 2026, было 12%; 5% лекарства)</td><td>верная ставка в чеке и отчётах</td><td class="ok">дефолт KZ уже 16% ✓ (нет перехода 12→16 по дате)</td></tr>
|
||
<tr><td><b>Маркировка</b> (сигареты, обувь, лекарства)</td><td>сканировать и «вывести код из оборота»</td><td class="hi">только галочка, вывода нет</td></tr>
|
||
<tr><td><b>СНТ/ЭСФ</b> (накладные)</td><td>для розницы в основном автоматически; по подакцизным — подтверждать</td><td class="mid">нет интеграции</td></tr>
|
||
</table>
|
||
<p><b>Что нужно в первую очередь:</b> 1) фискализация ОФД (иначе нельзя пробивать чеки) →
|
||
2) маркировка, если продаёте сигареты → 3) НДС 16% в чеке. МойСклад в Казахстане это умеет
|
||
(интеграции WebKassa / reKassa).</p>
|
||
</div>
|
||
|
||
<h2>Что уточнили на проходе 2</h2>
|
||
<div class="card">
|
||
<ul>
|
||
<li><b>Себестоимость:</b> подтвердили — у МойСклада FIFO; у нас средняя. На реальном товаре Демо
|
||
(«BIOBLAS шампунь») себестоимость в отчёте считается текущей средней (548,64 ₸ из 3 закупок),
|
||
а не ценой на момент продажи → прибыль за прошлые периоды меняется при новых закупках.</li>
|
||
<li><b>Касса и кассир:</b> скидки, отложенные чеки, поиск, весы, печать, смешанная оплата — <b>есть</b>.
|
||
Нет: фискализации ОФД (важно), бонусов прямо в кассе, эквайринг-терминала, сканера камерой.</li>
|
||
<li><b>Поправки к проходу 1:</b> «отмена проведения» у нас <b>есть</b> у всех документов (ошибка прохода 1);
|
||
долги поставщикам <b>считаются</b> из приёмок/возвратов/оплат; «54-ФЗ» — это закон РФ, у нас РК.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<h2>Что с тестами</h2>
|
||
<p>Часть наших тестов закрепляла <b>текущее (неправильное) поведение</b> как эталон — их нужно
|
||
переписать под логику МойСклада. В первую очередь: шаг 10 full-chain (инвентаризация),
|
||
unit-тесты инвентаризации и себестоимости, прибыль, mobile post/unpost инвентаризации.</p>
|
||
<p class="muted">Правило на будущее: сначала сверка с МойСкладом → потом реализация → потом тесты
|
||
под сверенное поведение (а не тесты под уже написанный код).</p>
|
||
|
||
<div class="note" style="margin-top:24px">
|
||
Это <b>только отчёт</b>. Исправления — отдельными задачами после вашего решения. По умолчанию
|
||
делаем «как в МойСкладе»; предложения «как лучше» применяем только с вашего согласия.
|
||
</div>
|
||
|
||
</div></body></html>
|