Дата публикации: 14.05.2026

Структура исходных данных: таблица «Поступления товара»

Хочу себе такие же кнопки
2a75c51f

Что вы узнаете и зачем это нужно

Вы — логистический специалист, который каждый день работает с огромными потоками товаров. Чтобы управлять этим процессом, нужно чётко представлять, какие данные приходят в систему и как они устроены. В этом уроке мы разберём таблицу «Поступления товара» – один из базовых источников информации в любой системе управления складом (WMS) и ERP. Вы поймёте, какие поля обязательны, какие типы данных использовать и как таблица взаимодействует с другими объектами (заказы, поставщики, складские ячейки). Это позволит быстро построить корректные отчёты, автоматизировать расчёты и избежать ошибок в учёте.


1. Общая концепция таблицы «Поступления товара»

Таблица Поступления фиксирует каждый факт физического прибытия товарных единиц в ваш склад. Можно сравнить её с журналом посещений в школе: каждый вход – отдельная запись, а в колонках указаны «кто», «когда», «что» и «сколько».

Колонка Тип данных Назначение Пример
receipt_id integer (PK) Уникальный идентификатор поступления 10234
order_id integer (FK) Ссылка на заказ поставщика 5678
supplier_id integer (FK) Поставщик, от которого пришёл товар 12
arrival_date date Дата фактического прибытия 2026‑05‑01
sku varchar(20) Артикул (SKU) товара “ABC‑123”
quantity decimal(12,3) Количество единиц (может быть весом) 150.5
unit varchar(10) Единица измерения (шт., кг., л.) “kg”
price decimal(12,2) Стоимость за единицу в валюте 12.30
currency varchar(3) Валюта цены (ISO‑4217) “USD”
batch_number varchar(30) Номер партии (для прослеживаемости) “B2026‑001”
expiration_date date Срок годности (если есть) 2027‑12‑31
storage_location varchar(20) Ячейка/зона склада, куда помещён товар “A‑12‑05”
status varchar(15) Текущий статус (принято, проверено, отклонено) “принято”
comments text Свободные замечания “Повреждён пакет”

PK – primary key (первичный ключ), FK – foreign key (внешний ключ).

Эти поля покрывают всё, что требуется для учёта, анализа и отчётности. При этом в разных компаниях набор колонок может слегка отличаться – добавятся, например, transport_mode (вид транспорта) или customs_declaration (таможенная декларация).


2. Как выбрать правильный тип данных

Поле Почему выбран именно такой тип Что может пойти не так, если выбрать иначе
receipt_id integer с автоинкрементом – быстрое индексиирование varchar будет занимать больше места и замедлять поиск
quantity decimal(12,3) – позволяет хранить дробные количества (например, 0.250 kg) float может дать неточные вычисления при суммировании
price decimal(12,2) – фиксированная точность валюты double может вызвать ошибки округления в финансовых отчётах
currency varchar(3) – ISO‑4217 код, удобно сравнивать и конвертировать char(2) не покрывает все валюты (например, “USD” vs “UAH”)
arrival_date date (без времени) – обычно достаточно знать только дату datetime создаст лишние данные, если время не используется

Совет: При проектировании базы данных всегда используйте типы, которые минимизируют риск потери точности и экономят место. Для финансовых полей decimal – единственный безопасный вариант.


3. Связи с другими таблицами

Таблица Ключ Тип связи Что даёт связь
Orders order_id Many‑to‑One (много поступлений могут относиться к одному заказу) Возможность отследить, какие позиции из конкретного заказа уже пришли
Suppliers supplier_id Many‑to‑One Быстрый доступ к реквизитам поставщика (контакт, условия поставки)
Products sku Many‑to‑One Информация о наименовании, весе, объёме, категории
StorageLocations storage_location Many‑to‑One Текущий статус ячейки, её ёмкость, тип (холодильник, сухой склад)
Batches batch_number One‑to‑One (или One‑to‑Many, если одна партия разбивается) Прослеживаемость продукции, контроль качества, срок годности

Эти связи позволяют построить запросы типа: «Сколько товаров от поставщика X поступило за последний месяц и где они находятся сейчас?». Без внешних ключей такие запросы будут громоздкими и подверженными ошибкам.


4. Пример реального сценария

Представьте, что ваш склад получает 150 kg сырья «ABC‑123» от поставщика 12 1 мая 2026. Оператор сканирует штрих‑код, вводит данные в систему, и появляется запись:

receipt_id order_id supplier_id arrival_date sku quantity unit price currency batch_number expiration_date storage_location status comments
10234 5678 12 2026‑05‑01 ABC‑123 150.000 kg 12.30 USD B2026‑001 2027‑12‑31 A‑12‑05 принято

Что дальше?

  1. Проверка: система сравнивает quantity с ожидаемым количеством из заказа. Если отклонение > 5 %, статус меняется на «проверено».
  2. Размещение: на основе storage_location система проверяет свободное место в ячейке A‑12‑05. Если места недостаточно, генерирует задачу перемещения.
  3. Финансовый учёт: price × quantity = 12.30 USD × 150 kg = 1845 USD. Эта сумма автоматически попадает в расчёт стоимости закупки.

Таким образом, одна строка таблицы инициирует цепочку автоматических действий, которые экономят часы ручного труда.


5. Как поддерживать чистоту данных

Проблема Как её избежать Инструменты
Дублирование записей Уникальный индекс на сочетание order_id, sku, batch_number UNIQUE (order_id, sku, batch_number)
Ошибочные единицы измерения Справочник единиц (unit) и проверка через триггер CHECK (unit IN ('шт','kg','l'))
Пропущенные даты NOT NULL для arrival_date и storage_location ALTER TABLE … MODIFY arrival_date DATE NOT NULL
Несоответствие валют Таблица CurrencyRates и проверка через внешний ключ FOREIGN KEY (currency) REFERENCES Currencies(code)
Неправильный статус ENUM‑тип или отдельная таблица статусов status ENUM('принято','проверено','отклонено')

Регулярные валидационные скрипты (например, проверка, что expiration_date > arrival_date) помогают выявлять аномалии до того, как они попадут в отчёты.


6. Часто задаваемые вопросы (FAQ)

Вопрос Краткий ответ
Нужен ли отдельный столбец для «весовой» и «штуковый» количества? Можно хранить всё в quantity и указывать единицу в unit. Если бизнес‑логика требует разных расчётов, создайте два поля (qty_qty, qty_units).
Как хранить несколько партий в одной ячейке? В таблице Batches храните отдельные строки, а в StorageLocations фиксируйте суммарный объём.
Можно ли использовать JSON для гибких атрибутов? Да, в колонке metadata типа JSON можно сохранять дополнительные свойства (например, temperature_requirements). Но для аналитики лучше выносить часто‑используемые атрибуты в отдельные столбцы.
Что делать с возвратами? Создайте отдельный тип записи receipt_type («приход», «возврат») и отрицательное значение quantity для возвратов.

7. Практика для закрепления

  1. Определите набор обязательных полей для вашей компании, если требуется хранить информацию о температурных режимах. Какие новые столбцы вы добавите и какие типы данных выберете?

  2. Составьте SQL‑запрос, который выводит суммарное количество товаров по каждому поставщику за текущий месяц, учитывая только записи со статусом «принято».

    SELECT s.supplier_name,
          SUM(p.quantity) AS total_qty
    FROM   Receipts p
    JOIN   Suppliers s ON p.supplier_id = s.supplier_id
    WHERE  p.status = 'принято'
     AND  p.arrival_date BETWEEN DATE_TRUNC('month', CURRENT_DATE)
                           AND CURRENT_DATE
    GROUP BY s.supplier_name
    ORDER BY total_qty DESC;
  3. Проверьте на дублирование: напишите запрос, который найдёт все строки, где совпадают order_id, sku и batch_number.

    SELECT order_id, sku, batch_number, COUNT(*) AS dup_cnt
    FROM   Receipts
    GROUP BY order_id, sku, batch_number
    HAVING COUNT(*) > 1;
  4. Разработайте правило валидации (триггер), которое будет запрещать ввод expiration_date раньше arrival_date. Описать логику на псевдокоде.

  5. Сценарий «отклонённого поступления»: какие действия следует выполнить в системе, если статус меняется на «отклонено»? Перечислите минимум три автоматических шага (например, уведомление поставщика, возврат в транспорт, блокировка ячейки).


Итоги

  • Таблица Поступления – центральный элемент учёта входящих товаров.
  • Правильно выбранные типы данных и ограничения гарантируют точность расчётов и чистоту БД.
  • Связи с другими таблицами позволяют быстро получать аналитическую информацию и автоматизировать бизнес‑процессы.
  • Регулярная проверка целостности и корректность данных предотвращает проблемы в дальнейшем.

С этим знанием вы сможете построить надёжную систему учёта, сократить ручную работу и обеспечить прозрачность всех операций на складе. Удачной практики!


Почему Excel без VBA быстрее внедрить в малой логистике
Структура исходных данных: что должно быть в таблице «Остатки на складах»
Структура исходных данных: таблица «Поступления товара»
Структура исходных данных: таблица «Отгрузки и продажи»
Создание умной таблицы (Ctrl+T) для автоматического расширения диапазонов
Правила именования складов и ячеек хранения
Формула СУММЕСЛИ для подсчёта остатков по конкретному товару
Формула СУММЕСЛИМН для расчёта остатков по товару + складу
Расчёт свободного объёма склада в паллето-местах
Создание справочника «Товары» с габаритами и весом единицы
Формула ВПР для подстановки габаритов из справочника в таблицу заказов
Автоматический расчёт веса партии по ВПР + умножение
Автоматический расчёт объёма партии (длинаширинавысотаколичество)
Условное форматирование для подсветки отрицательных остатков (красным)
Условное форматирование для подсветки нулевых остатков (серым)
Условное форматирование для подсветки страхового запаса (жёлтым)
Создание выпадающего списка складов через «Проверку данных»
Создание выпадающего списка товаров через «Проверку данных»
Динамическая таблица остатков с выбором склада через выпадающий список
Формула ЕСЛИ для сигнала «Срочный заказ» при остатке ниже нормы
Создание простого дашборда остатков на одном листе
Таблица «Заявки на перевозку»: номер, дата, маршрут, вес, объём
Справочник автомобилей: тип, грузоподъёмность, объём кузова, расход топлива
Формула ВПР для подбора авто по грузоподъёмности (ближайшая сверху)
Дополнительная проверка: объём груза < объёма кузова
Формула И / ИЛИ для одновременной проверки веса и объёма
Условное форматирование для авто, которые НЕ подходят (зачёркивание)
Автоматическая маркировка «Газель» / «Фура» по весу
Расчёт минимального количества автомобилей для сборного груза
Расчёт коэффициента загрузки фуры (факт/максимум) в процентах
Сводная таблица для анализа частоты заказов по каждому маршруту
Гистограмма в сводной таблице для визуализации загрузки авто
Расчёт удельной стоимости перевозки на 1 кг или 1 куб. м
Расчёт остатков на завтра: остаток сегодня минус плановая отгрузка
Формула СЕГОДНЯ для контроля сроков годности (если скоропорт)
Условное форматирование для товаров с истекающим сроком годности
Создание журнала перемещений между складами
Расчёт транзитных остатков (товар в пути) формулой СУММЕСЛИМН
Общий доступный остаток = складской + транзитный
Расчёт точки заказа (мин. остаток под заказ новой партии)
Автоматический текст: «Заказать N единиц» через ЕСЛИ и округление
Проверка дубликатов в накладных через СЧЁТЕСЛИ
Создание понятной шапки с фильтрами (Автофильтр)
Защита листов от случайного изменения формул (без пароля на старте)
Настройка вывода процентов загрузки склада в условных значках (зелёный/жёлтый/красный)
Расчёт оборачиваемости товара (отношение продаж к среднему остатку)
Создание шаблона «Заявка водителю» с автоподстановкой данных из подобранного авто
Сохранение файла как шаблона (.xltx) для ежедневного копирования
Чек-лист из 5 шагов на каждый день: проверить отрицательные остатки, загрузку авто, подсветку страхового
Бонусный пункт: как не сломать формулы при вставке новых строк
АПТЕЧКА ДЛЯ СОБАКИ С ПОМОЩЬЮ МЕДИЦИНЫ
Часы на весь экран в высоком разрешении
Чат рулетка 2026: чаты с элементом неопределенности
Чат рулетка бесплатно
Чатрулетка: чат с новой личностью
Чай и кофе: два мира вкуса
Диагностика шин: Проверка давления и износа
Excel для логистики: бесплатный курс учёта остатков и подбора авто
Фототехника в цифровую эпоху
Игрушки для развития навыков самостоятельности
Инновационные подходы в управлении грузовыми перевозками на линиях Валберис
Немецкие авто: легковые и внедорожники
Общение с Аней в чате
Онлайн генератор паролей с символами
Оптимизация динамического контента GEO
Политика конфиденциальности и пользовательское соглашение
Сервер для affiliate-маркетинга: Безопасность, Скорость, Изоляция
Смешные телевизоры
Современные тенденции в российском автопроме
Средства IP видеонаблюдения