RainMan:
Расскажу как это было у меня:
В документе на отгрузку было несколько колонок:
1. Выписано: выбито оператором на выписке
2. Отгружено: заполняется бухгалтером на складе при отгрузке. При этом может возникнуть разница с выписанным, если товар на складе не нашли. Разница тем же документом относится на отдельный фиктивный склад до инвентаризации (чтобы пока в учете не путался).
3. Получено покупателем:
4. Возврат
5. Возврат брака. Это все разносится когда экспедитор вернулся. Возврат ставится обратно на склад, брак переносится физически и программно на отдельный склад до выяснения, разница между отгруженным и 3,4,5 колонками повисает на экспедиторе (отдельный регистр).
При этом в зависимости от того, на каком этапе находится оформление документа, товар в учете фигурирует с различными статусами (чтобы было видно общий остаток на складе, свободный остаток, остаток отгруженного но недооформленного).
В принципе, подобные схемы доводилось видеть не раз в различных исполнениях. Понятно, что реализовать это без программиста не получится. Понятно, что проблему с бардаком на складе это не решит, как не решат ее любые программные ухищрения (просто в принципе нельзя решать организационные проблемы программными методами). Сканеры, кстати, тоже не помогут - ничто не мешает кладовщику при погрузке случайно или намеренно сосканировать код с одной единицы товара хоть два раза, хоть десять.
Так что рекомендуется воспитательная работа с персоналом
Из предложенного вариант
Anton_BooR минимально приемлем, хотя тоже не сахар - количество документов в системе удваивается, работы на их заведение тоже прибавляется (если ее никак не автоматизировать - вдвое, а автоматизировать без программиста опять же не получится), да и наличие в системе десятка-другого "виртуальных складов" ясности в учете не прибавляет.