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