Приход — бизнес-логика
Основной способ, которым товар вообще появляется в системе (кроме
производства и прямой корректировки остатка). Направление у прихода одно
— товар всегда добавляется на склад, обратного смысла у документа нет.
Возврат от клиента — тот же документ с другой операцией, не отдельный тип
(см. обзор типов).
Что происходит при обработке
Для каждой строки прихода:
- Если у товара ещё нет карточки «цена этого товара у этого поставщика» —
она создаётся. - Создаётся новая партия на складе: склад, поставщик, количество, цена,
дата поступления, срок годности, привязка к заказу (если есть). Именно
партия дальше живёт своей жизнью — расход, уценка, производство
ссылаются на неё, а не на строку документа-источника. - Обновляется сводная карточка товара — накопленное количество и
последняя цена прихода. - Обновляется «последняя закупочная цена у поставщика» — но только если
этот приход новее уже сохранённой цены. Старый, задним числом введённый
приход не может переписать текущую действующую цену.
Приход не проверяет наличие «от обратного» — принять можно любое
количество, ограничений нет (в отличие от расхода, где нельзя списать
больше, чем есть).
Долг или оплата
- Если указан поставщик, а счёт (касса/банк) не указан — товар считается
взятым в долг: сумма прихода прибавляется к задолженности перед этим
поставщиком. - Если счёт указан — оплата поставщику проводится отдельным денежным
документом; сам приход баланс поставщика не корректирует.
Почему не наоборот (не списывать всегда в долг): потому что реальная
практика различается — иногда товар оплачивается сразу на месте, иногда
берётся с отсрочкой. Явное указание счёта в шапке — это и есть решение
пользователя, какой из двух сценариев произошёл.
Две цены: Cost и Price
У каждой строки прихода есть Cost (себестоимость, по которой товар
встаёт на склад) и Price (цена поставщика из накладной). Обычно они
совпадают, но расходятся, когда есть дополнительные расходы — доставка,
таможня, страховка, брокерские услуги.
Распределение расходов между строками — пропорционально стоимости каждой
позиции:
коэффициент = сумма_расходов / сумма_товаров
новая_цена = исходная_цена + исходная_цена × коэффициент
Остаток от округления (копейки, которые не делятся ровно) уходит на самую
дорогую позицию документа — так сумма строк после пересчёта точно
совпадает с (товары + расходы), без «потерянных» копеек.
Пример. Товар A: 100 шт × $10 = $1000. Товар B: 50 шт × $20 = $1000.
Итого товаров — $2000, доставка — $200. Коэффициент 200/2000 = 0.1 → цена
A становится $11, цена B — $22: расходы разложились пропорционально доле
каждого товара в общей сумме.
Расходы можно добавить в обе цены сразу или только в Cost, оставив Price
как есть — второй вариант нужен, когда с поставщиком сверяются по
исходной цене из его накладной, а для склада важна полная себестоимость с
доставкой.
Повторный пересчёт (если расходы изменились после первого раза) всегда
идёт от исходной цены поставщика, а не от уже изменённой на предыдущем
шаге — так наценка не «задваивается» при повторном запуске.