24.03.2008, 10:14 | #1 |
Moderator
|
Бага во внешнем польском складе
Решил посмотреть, что же это такое внешний склад и наткнулся на довольно глупую багу:
1. Создаем номенклатуру и разносим журнал "Внешний склад" на 10 штук 2. Создаем заказ на продажу на 1 штуку и выполняем операцию "Функции -> Закупка из внешнего склада". 3. На форме Внешние номенклатуры наблюдаем, что остаток по номенклатуре - 18 штук. Произошло следующее: После разноски журнала у нас появилась проводка прихода(PlInventTransExternal) на 10 штук, которая посредством перекрытого метода insert() изменила остатки (PlInventSumExternal) = 10 шт. Все ОК. При создании "Закупки из внешнего склада" система сопоставляет расходную проводку с приходной (поле SetleRecId - именно с одной t). Для этого система разбивает проводку прихода на две - 1 и 9 штук (PlInventMovementExternal.externalIssue()). То есть, в данном случае система создаст две новых проводки ((-1) и 9 штук), а количество в приходной проводке 10 штук изменит на 1. Изменение остатков происходит исключительно путем перекрытия методов insert() и update() на таблице проводок. Вставка новых проводок приведет к изменению остатков: 10 - 1 + 9 = 18 штук. Изменение существующей проводки 10 -> 1 на остатках никак не скажется ибо в методе PlInventMovementExternal.externalIssue делается receipt.doUpdate(). Правим на receipt.update(). Теперь у нас вызываеся PlInventTransExgternal.update(), который должен изменить остатки, но не меняет.... Не меняет потому, что наши славянские братья сначала дергают super(); в update(); а потом надеются в this.orig() найти изначальное кол-во, которое сами же и изменили. Переносим super() в конец метода и делаем вывод, что функционал попавший в официальную сборку mbs не прошел даже минимального тестирования. Наверное, тоже вертикальное решение регистрировали.... Если у кого-то есть доступ к более свежей версии ax, чем у меня(4.0.2214.0) - посмотрите, пожалуйста, было ли официальное исправление? Если нет - я зарегистрирую запрос. Кстати, я правильно понимаю, что основное назначение данного функционала - это возможность сбыта узнать сколько товара они могут обещать клиенам, глядя на незарезервированные остатки на складах поставщика? Ну и доставка товара сразу от поставщика клиенту, хотя это уже никак к системе не относится. Или есть еще полезное применение? И еще - mbs обновлял руководства пользователя со времен 3.0? Если да, то буду благодарен, если кто-то поделится ссылкой (можно на партнерский ресурс). |
|