Не проверяется что МетодСписания может быть пустым.
Я не уверен, что порядок строк:
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
играет какую-то роль, но на всякий случай их лучше размещать в логически верном порядке. Потому что если играет - это будет расценено как отсутствие блокировки (-1)
В запросе по остатком склад тоже лучше отбирать из втДок, не нужен дополнительный параметр.
Условие КСписанию = ВыборкаДетальныеЗаписи.КоличествоОстаток не обеспечит решение проблемы копеек нужно >= (-1)
И САМОЕ ВАЖНОЕ - приходная накладная не проверяет, услуга это или товар, соответственно накапливаются услуги в регистре остатков, что есть невыведение регистра в 0 (-3)
А значит, что ты уже не сдал)
Прости, если нагнетаю, самому через 2 недели сдавать, легкий мондраж))