|
![]() |
#1 |
Участник
|
Все можно, только дорабатывать надо. А сейчас как принимаете? Вручную ячейку прописываете или все-таки через журнал прибытия?
При разноске строки журнала прибытия как раз ищется свободная ячейка, согласно настройкам зоны хранения номенклатуры и области хранения ячеек. См. метод findFreeLocation в таблице WMSStoreZone. Вопрос довольно обширный, если задан не из праздного любопытства, а действительно нужна такая доработка - могу помочь. У меня поиск свободных ячеек реализован с учетом нескольких параметров. Зона хранения, высота погрузчика, ширина и высота ячейки, габариты и вес короба, количество коробов в слое на паллете, ярус стеллажа, этаж склада...
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
![]() |
#2 |
Участник
|
Спасибо, за отклик!
Модуль называется "Управление запасами", а то что вы рассказываете, наверно реализовано в модуле "Управление складами". Данный вопрос не из-за собственного любопытства. И думаю, ваш опыт для меня бесценен. Задача состоит в следующем: 1) Модуль "Расчеты с поставщиками", при приеме нового заказа покупки, во время формирования "Отборочная накладная", надо автоматически определить свободное местоположение InventDim.wMSLocationId, при этом, если большая партия, то надо распределить на несколько свободных мест. Вообще на уровне "Отборочной накладной" это возможно? По этому вопросу, я предлагал следующий вариант: Новые товары, номенклатуры принимать на виртуальный склад, при этом не будем определят местоположения. Проводим как обычно отборочную накладную в Axapta-е и заказ оприходуем. Затем загружаем данный заказ на покупку в ТСД (Android), и проводим операцию "Прибытие", т.е. через MS Business Connector программно создаем журнал переноса из виртуального склада на центральный склад, при этом есть возможности автоматически определить свободные местоположения на центральном складе. Но нашим менеджерам этот вариант не очень нравятся, они хотят чтобы местоположения определились во время отборочной накладной... Кстати, где "Управление запасами" не могу найти привязки к палетте? |
|
![]() |
#3 |
Участник
|
Кстати, ниже пример из кода X++
X++: void closeOk() { ; // <Talgat 23.02.2016 12:45> // Здесь в режиме "Разноска" -> "Отборочная накладная", после нажатия кнопки Ok // присваивается новый серийный номер if (documentStatus == DocumentStatus::PackingSlip) this.ALA_InitSerialNum(); // </Talgat> if (purchParmUpdate) purchParmUpdate_ds.write(); if (purchParmTable.RecId) purchParmTable_ds.write(); if (purchParmSubTable) purchParmSubTable_ds.write(); if (purchParmLine) purchParmLine_ds.write(); purchFormLetter.initParameters(purchParmUpdate.data(), printout.selection(), printFormletter.value(), euVat.value(), usePrintManagement.value()); purchFormLetter.printSalesFormLetter(printSalesFormLetter.value()); purchFormLetter.editLinesChanged(editLinesChanged); purchFormLetter.reArrangeNow(reArrangeNow); // <GEEU> purchFormLetter.parmPrintFacture_RU(printFacture_RU.value()); purchFormLetter.parmPrintAcceptanceReport_RU(printAcceptanceReport_RU.value()); purchFormLetter.parmPrintInventBaileeReport_RU(printInventBaileeReport_RU.value()); purchFormLetter.parmPrintReimbursementSlip_RU(printReimbursementSlip_RU.value()); purchFormLetter.parmDocNumberingCode_LT(docNumberingCode_LT.text()); purchFormLetter.parmReceiptListDeviationType_RU(printReceiptListDeviationType_RU.selection()); // </GEEU> // If this is an Invoice that is not posting but is printing, and changes have been made, ask to save changes if ( purchEditLinesForm.saveWhenPrinting() && Box::yesNo("@SYS112345", DialogButton::Yes) == DialogButton::Yes ) { purchFormLetter.parmSaveChanges(true); } else { purchFormLetter.parmSaveChanges(false); } super(); // , , 30.05.2015, Denis --> if (DocuRefLink.value() <= 0) { throw("Необходимо выбрать обрабатываемый документ (вложение)!"); } // , , 30.05.2015, Denis <-- } |
|
![]() |
#4 |
Участник
|
Сам метод работает таким образом:
X++: public void ALA_InitSerialNum() { // <Talgat 22.02.2016 9:44> PurchParmLine _purchParmLine; PurchLine _purchLine; InventDim _inventDim, _inventDimNew; InventSerialId _inventSerialId; InventLocationId _inventLocationId; InventDimGroupId _dimGroupId; //ConfigId _configId; // </Talgat> ; // <Talgat 22.02.2016 9:31> ttsBegin; while select forUpdate _purchParmLine where _purchParmLine.ParmId == PurchParmTable.ParmId { _dimGroupId = InventTable::find(_purchParmLine.ItemId).DimGroupId; if (ALA_DimGroupId::find(_dimGroupId).DimGroupId) { _inventDim = InventDim::find(_purchParmLine.InventDimId); if (_inventDim) { if (!_inventDim.inventSerialId) { _inventLocationId = _inventDim.InventLocationId; if (ALA_InventLocationId::find(_inventLocationId).InventLocationId) { _inventSerialId = InventSerial::findOrCreate(_purchParmLine.ItemId, _inventLocationId, PurchParmTable.TransDate).InventSerialId; _inventDimNew = InventDim::find(_purchParmLine.InventDimId, true); _inventDimNew.inventSerialId = _inventSerialId; // if (!_inventDimNew.configId) // { // _configId = PurchLine::findRecId(_purchParmLine.PurchLineRecId).Dimension[5]; // _inventDimNew.configId = ConfigTable::findOrCreate(_purchParmLine.ItemId, _configId, PurchLine::findRecId(_purchParmLine.PurchLineRecId).PurchUnit).ConfigId; // } _purchParmLine.InventDimId = InventDim::findOrCreate(_inventDimNew).inventDimId; _purchParmLine.update(); while select forUpdate _purchLine where _purchLine.RecId == _purchParmLine.PurchLineRecId { _purchLine.InventDimId = _purchParmLine.InventDimId; _purchLine.update(); } } } } } } ttsCommit; // </Talgat> } |
|
![]() |
#5 |
Участник
|
Цитата:
Модуль называется "Управление запасами", а то что вы рассказываете, наверно реализовано в модуле "Управление складами".
А почему при формировании отборочной? Чем не нравится разноска списка приходов? При этом формируется журнал прибытия. Там как раз кладовщик разбивает товар по паллетам(если больше одного места) и при его разноске ищется свободная ячейка для каждой паллеты.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
![]() |
#6 |
Участник
|
Расчеты с поставщиками. Закупка - Разноска - Список прихода.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
![]() |
#7 |
Участник
|
Спасибо!
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|