[ОБУЧАЛОВКА] ZLOPUN или как меня достали неснимающиеся резервы…
Решение проблемы которой не должно быть. Не должно быть, конечно же, проблемы… А она есть! Причем, имхо, проблема эта похожа на наглого суслика — вылазит в самый неподходящий момент. Поэтому — берем дуст и травим сусликов беспощадно…
- Описание
- Подробнее
Описание
Короче: задрали меня эти сообщения… Оперативно полечил это так:
Вместо исходного кода типа
СводныйРезерв = ВремРезервы.СводныйОстаток(Фирма,Номенклатура,Склад,Договор,,"Количество"); Если СводныйРезерв < КоличествоБазовое Тогда глНеПроводить(Контекст,"Количество снимаемого товара (" + Строка(Номенклатура) + ") превышает резерв по данному договору (" + Строка(Договор.Владелец) + "; " + Строка(Договор) + ")."); СтатусВозврата(0); ВОЗВРАТ; КонецЕсли;
ставим такую конструкцию:
СводныйРезерв = ВремРезервы.СводныйОстаток(Фирма,Номенклатура,Склад,Договор,,"Количество"); Если СводныйРезерв < КоличествоБазовое Тогда глСообщениеПроведения("Количество снимаемого товара (" + Строка(Номенклатура) + ") превышает резерв по данному договору (" + Строка(Договор.Владелец) + "; " + Строка(Договор) + ").",ТекущийДокумент(),,,1); КоличествоБазовое = СводныйРезерв; КонецЕсли;
И все! Золотой ключик у нас в кармане! Теперь, при массовом перепроведении документов (восстановлении ГП и пр.) система не будет спотыкаться на каждом «лишнем» снятии резерва.
В развитие приведенной выше схемы возможно имеет смысл предусмотреть две ветки поведения алгоритма: штатный алгоритм отрабатывает при ТЕКУЩЕМ ПРОВЕДЕНИИ документа, а наш вариант — при неоперативных перепроведениях. Для чего? Чтобы манагеры не расслаблялись, а снимали документом «снятие резерва» при оперативной работе именно необходимое им количестов, а то манагеры есть зверьки хитрые и ленивые — считать не будут — в любом случае будут писать 10000 шт. на снятие резерва…

