Всем доброго дня. Опять повторилась ситуация описанная в первом сообщении. Стал разбираться откуда все таки берутся записи в "Местонахождении номенклатуры". Оказалось следующее, когда в журнале инвентаризации создавать строки через "Создать" - "В наличии" и в этом диалоге если не выбирать складские аналитики, то система начинает лопатить все. В результате всего этого она создает записи в "Местонахождение номенклатуры".
Class InventJournalFormTrans_ItemLocationLock
X++:
private boolean update()
{
boolean isOk = false;
InventItemLocation inventItemLocation;
;
if( this.inventDimTransform() )
{
if( !InventItemLocation::exist( this.parmItemId(), this.inventDimIdLock() ) )
{
//создание строки местонахождения номенклатуры
this.inventItemLocationCreate();
isOk = true;
}
else
{
isOk = true;
}
}
else
{
checkFailed( strfmt("Трансформация складской аналитики не выполнена. Номенклатура: %1. Складская аналитика: %2",
this.parmItemId(), this.parmInventDimId() ) );
}
return isOk;
}
решил посмотреть что же скрывается в if( this.inventDimTransform() )
X++:
//Получение складской аналитики, по которой будет выполняться блокировка
boolean inventDimTransform()
{
InventDim inventDimFrom,
inventDimLock;
;
inventDimFrom = InventDim::find( this.parmInventDimId() );
inventDimLock = InventDim::findOrCreateBlank();
//merge сейчас просто просатвление склада
inventDimLock.InventLocationId = inventDimFrom.InventLocationId;
inventDimIdLock = InventDim::findOrCreate( inventDimLock ).inventDimId;
isTransform = true;
return isTransform;
}
чудо из чудес, всегда возвращает true
Сейчас по плану в форме диалога сделать обязательными аналитики "Сайт" и "Склад"