Небольшая инструкция как создавать расширения для MIGO.
Вопрос был в следующем, есть два завода на одно из них материал оцениваемый, на другом не оцениваемый, если делать проводку перемещения с завода где материал без стоимости, на завод где у него стоимость есть, то цена материала будет браться из ОЗМ ракурс БухУчет1 для оцениваемого завода. По условиям же стоимость должна была браться из плановой инфо-записи закупки. Вот для этого и используем BADI, в котором будем подменять цену движения. Из ограничений, цена по стандарту вводится в поле «Внешняя сумма во ВВ», которое было открыто для вида движения перемещения запаса, т.е. пользователь вводит документ а сумма должна быть заполнена правильным значением из инфо-записи, а ограничением является то, что если оценка ведется в нескольких валютах, то данная реализация будет работать не совсем корректно, так как поля для ввода второй валюты в документах ММ нет и вторая валюта будет формироваться из валюты один по курсу на дату проводки документа.
Используем транзакцию SE19 – Badi Builder, в нем у нас есть два вариант новый BADI Badi или классический, берем новый, так как даже если вы выберите классический, на следующем шаге придется пройти по пути миграции его в новый BADI. Причина в том, что все BADI с версии 6.0, кажется, сделаны уже через так называемые энхансменты (подробнее написано тут: You are not allowed to view links.
Register or
Login), а поэтому, чем делать лишние шаги, лучше сразу идем по правильной новой дороге. Нас интересует BADI для MIGO, ищем его само собой по маске *MIGO*, будет найдена одна запись MB_MIGO_BADI, которая нас и интересует. Рисунок SE19-0.png.
Выбираем режим создания, после чего появится диалог, где надо будет сказать, какое будет название у нашего расширения и описание, рисунок SE19-1.png. Я рекомендую оставлять в названии, если это возможно имя внедрения, например как в этом случае, потом проще будет искать, какие уже сделаны расширения к интересующей BADI.
Затем нажимаем ОК и переходим к следующему экрану где спросят имя реализации, имя класса реализации и к какому определению BADI все это будем создавать. В нашем случае у нас одно определение BADI, поэтому имя реализации оставляем такое же как и на предыдущем шаге, класс реализации, ну я назвал как на рисунке SE19-2.png, а определение BADI получено из выпадающего списка, оно там одно.
После чего жмем снова ОК и переходим к следующему шагу, где нам будет предложено то, как создавать наше определение, вариантов три, унаследовать из примере класса, скопировать пример класса и просто создать чистый класс. Чтобы не тянуть весь пример я выбрал режим «Пустой класс». А примеры, ну это когда изучаешь, то можно копировать пример класса реализации, рисунок SE19-3.png.
После копирования/создания попадаем в саму реализацию нашего расширения, должно быть похожее что-то на рисунке ниже. Собственно говоря, практически реализация класса с методами, рисунок SE19-4.png. Открываем дерево слева и делаем клик мышью на ветке «Реализующий класс», после чего откроются все методы класса которые мы можем начать реализовывать и которые определены нам в классе, рисунок SE19-5.png.