Доброго времени суток. УТ 10.3
Создали внутренний заказ в нем указали товар с двух складов с 1-го и 2-го. На основании этого внутреннего заказа делаем сначала перемещение на 1-й склад. В это перемещение подставляется товар из внутреннего заказа, который зарезервирован им на 1-м складе, но ещё подставляется товар, который есть на 1-м складе в свободном размещении и зарезервирован внутренним заказом на 2-м складе. Эти проблемные строки идут с пустым значением реквизита "документ резерва". Почему так происходит ?
(RomanYS) Если я внутренним заказом зарезервировал товар со 2-го склада, зачем мне система перемещает этот товар с 1-го ? Сейчас получилось что с 1-го склада этот товар уходит, а на 2-м остается в резерве за внутренним заказом.
Если ВРезерве > 0 Тогда
НоваяСтрока = ТабЧасть.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
НоваяСтрока.Количество = ВРезерве;
НоваяСтрока.ДокументРезерва = Заказ;
НоваяСтрока.ВнутреннийЗаказ = Заказ;
Если Не ФлагТары Тогда
Если ЕстьКачество Тогда
НоваяСтрока.Качество = Справочники.Качество.Новый;
КонецЕсли;
ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти( НоваяСтрока, ЭтотОбъект);
КонецЕсли;
ОстатокВРезерве = ОстатокВРезерве - ВРезерве;
ОстатокНаСкладе = ОстатокНаСкладе - ВРезерве;
Количество = Количество - ВРезерве;
КонецЕсли;
Если Количество > 0 Тогда
НоваяСтрока = ТабЧасть.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
НоваяСтрока.Количество = Количество;
НоваяСтрока.ВнутреннийЗаказ = Заказ;
Если Не ФлагТары Тогда
Если ЕстьКачество Тогда
НоваяСтрока.Качество = Справочники.Качество.Новый;
КонецЕсли;
ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти( НоваяСтрока, ЭтотОбъект);
КонецЕсли;
(2) Система не смотрит остатки на других складах, она пытается максимально обеспечить заказ с текущего склада. (3) Код подтверждает (1)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший