uunibox.
Демонстрационный проект · синтетический октябрь

ПОЛКА / КОНТРОЛЬ ДАННЫХ

Каждое движение
на своём месте.

12 833 строк · 48 товаров · 4 склада. Приходы, продажи, возвраты и парные перемещения сведены в один проверяемый результат.

Строк в выгрузке12 833Один фиксированный набор данных
Принятые движения12 785Вошли в расчёт и полный аудит
Требуют исправления24Исключены с точной причиной
Точные повторы24Учтены один раз

БАЛАНС СТРОК

Ни одна строка не потеряна.

12 833 = 12 785 + 24 + 24

● Принятые● Ошибки● Дубли

Согласованные перемещения

591

пар между складами. Обе стороны имеют один документ, товар и количество. Неполные и конфликтующие пары исключены.

Приход перемещений = расход перемещений

СТОИМОСТЬ ПО КАТАЛОГУ

37 071 066,00 ₽

Чистая стоимость остатка: сумма количества × учебная цена по всем позициям, включая отрицательные.

Неотрицательные позиции
58 012 350,00 ₽
Отрицательные позиции, по модулю
−20 941 284,00 ₽

Это оценка по синтетическому справочнику, не выручка, себестоимость или финансовый результат.

ТРЕБУЕТ ПРОВЕРКИ

2 позиции с расхождением

Продажи превысили доступное количество. Остатки сохранены как есть: добавлять вымышленные приходы ради красивого итога нельзя.

Скачать исключённые строки · Точные дубли

ЧЕТЫРЕ СКЛАДА

Одна схема. Разные остатки.

Север

2 340

единиц по 48 SKU

10 285 712,00 ₽

1 позиции проверить

Юг

7 402

единиц по 48 SKU

14 380 451,00 ₽

Отрицательных остатков нет

Восток

1 828

единиц по 48 SKU

-1 961 364,00 ₽

1 позиции проверить

Центр

7 496

единиц по 48 SKU

14 366 267,00 ₽

Отрицательных остатков нет

Стоимость по категориям

Чистый остаток по ценам каталога.

Багаж
15 203 495,00 ₽
Одежда
9 872 800,00 ₽
Освещение
5 635 199,00 ₽
Снаряжение
3 874 146,00 ₽
Посуда
2 485 426,00 ₽

Почему строки исключены

  • Конфликт ID события8
  • Количество некорректно3
  • Товара нет в каталоге2
  • Не совпадают стороны перемещения2
  • Другая валюта1
  • Неизвестный склад1
  • Неизвестная операция1
  • Некорректная дата1
  • Нет часового пояса1
  • Нет ID события1
  • Нет документа1
  • Нарушена структура строки1
  • Неполное перемещение1

JSON с номером строки и исходными полями

ПРОВЕРЯЕМЫЙ РЕЗУЛЬТАТ

От остатка — к событиям.

Найдите товар, выберите склад и откройте его движения. Номера строк ведут к movements.csv в архиве проекта.

Остатки по товару и складу
Товар / SKUСкладОстатокСтоимостьСтатусАудит

ПОСТРОЧНЫЙ АУДИТ

Откройте движения позиции

Кнопка «Движения» покажет только относящиеся к позиции события.

Принятые исходные события
СтрокаСобытие / документДата UTCТипИзменение

Весь аудит CSV

Сверка в единицах

Все принятые типы операций
ТипСобытийЕдиницЗнак
Начальный остаток19239 684+
Приход3 27611 573+
Продажа7 09335 843−
Возврат1 0423 652+
Перемещение / расход5912 026−
Перемещение / приход5912 026+

Итог: 19 066 единиц

Повторить результат

  1. Скачайте архив проекта.
  2. Запустите python3 generate.py для того же набора с seed 20261028.
  3. Выполните python3 pipeline.py.
  4. Сравните report.json, баланс строк и формулы Excel.

Python 3, только стандартная библиотека. Нет сетевых запросов, кабинетов и клиентских документов.

Структурированные файлы и контроль входа

report.json · balances.csv · audit.json

SHA256 movements.csv:

2ba07885bbaae6a3b09e11e118fa028b0f54ac61d0f26cff54c347539f79cdf9