zak555 Итак, оба алгоритма решают одну и ту же задачу. Разница между алгоритмами видна, но преимущества не очевидны. Поэтому давайте подчеркнем их:
1. Нет необходимости очищать старые движения документа. По сути это операция записи в БД пустого набора движений и удаление существующих движений – это довольно ресурсоемкие операции
2. Запрос, получающий данные по отрицательным остаткам, обращается только к одной таблице – нет необходимости делать левое соединение с данными документа и применять функцию «ЕСТЬNULL()»
Очередная 1с-ная заумная замануха и очередной 1с-ный сектант...
Какие старые движения? О чем там вообще? Тебе нужно проверить, не сделает ли твое движение каких-то косяков в учете или нет. Ты просто проверяешь это по всем регистрам, которые хочешь двигать, и если косяков нет, пишешь в базу. Так не катит, не? Зачем сначала это все записывать(куча действий с БД), потом проверять и из-за любой ошибки потом откатывать(снова куча действий с БД)? И так КАЖДЫЙ раз (каждый, Карл!), когда пользователь делает какую-то операцию в базе...
zak555 Кроме этого, при нормальном течении бизнес-процессов пользователь указывает количество, не превышающее остаток на складе.
В фантазиях конфигураторных задротов, которые это накатали, да, каждый пользователь точно знает, сколько каких позиций есть в наличии, и свыше никогда не укажет...