|
20.01.2009, 03:09 | #1 |
Участник
|
Проверка настроек складской аналитики
Коллеги, подскажите плиз, как правильно сделать следующее:
Дано: Номенклатура Необходимо программно проверить, включена ли для данной номенклатуры складская аналитика "Партия". Как это правильно сделать? Еще кстати интересно - в 2009 в форме настройки скл. аналитик появилось новое поле Mandatory - интересно, что в связи с этим поменялось? |
|
20.01.2009, 07:55 | #2 |
Участник
|
DAX 4.0
Посмотрите InventDimSetup::find( InventTable.dimGroupId, fieldNum( InventDim, inventBatchId ) ).Active :
X++: static void jbCheckActiveInventDimSetup(Args _args) { ItemId itemId = '<бла-бла-бла>' ; ; info( strfmt( "%1", InventDimSetup::find( InventTable::find( itemId ).dimGroupId, fieldNum( InventDim, inventBatchId ) ).Active ) ) ; } |
|
20.01.2009, 10:05 | #3 |
Участник
|
Прямой поиск в InventDimSetup действительно работает, но более кошерно работать не напрямую с таблицей InventDimSetup, а через класс InventDimSearch .
Что-то вроде (метод на таблице InventTable): X++: //BP Deviation documented // ААК: МФД40_08_01_0001_02 05.08.2008 [Синхронизация номенклатур между компаниями] --> display boolean inventLocationActive_OVK() // ААК: МФД40_08_01_0001_02 05.08.2008 [Синхронизация номенклатур между компаниями] <-- { InventDimSearch dimSearch; ; dimSearch = new InventDimSearch(); if (dimSearch.find(this.DimGroupId, fieldNum(InventDim, InventLocationId))) { return dimSearch.dimActive(); } return false; } |
|
|
За это сообщение автора поблагодарили: mazzy (2), -Dmitry- (0). |
20.01.2009, 10:24 | #4 |
Участник
|
Кстати, если есть переменная типа Movement (его наследников), то еще проще:
Код: movement.dimSearch().findActive(movement.dimGroupId(), fieldNum(InventDim,InventBatchId)) |
|
20.01.2009, 10:40 | #5 |
Боец
|
А можно ещё короче:
X++: return InventDimParm::activeDimFlag(this.DimGroupId).InventLocationIdFlag; |
|
|
За это сообщение автора поблагодарили: petergunn (1). |
20.01.2009, 10:44 | #6 |
Участник
|
Для уточнения (думаю, Raven это подразумевал):
Это не только "кошерно", но и более верно с точки зрения производительности. Так как вместо запроса к базе данных получим обращение к внутреннему кэшу из ОП |
|
20.01.2009, 11:01 | #7 |
Боец
|
После уточнения kashperuk'а хочу обратить внимание, что предложенный мною вариант также использует класс InventDimSearch, а тот в свою очередь кэш.
Я к тому, что метод(ы) для такой(их) проверки(ок) уже написан(ы) до нас, и нужно максимально их использовать, нежели писать свои. Это поможет в будущем при переходе на новые версии продукта |
|