WMS#
Описание раздела#
Скрипты для служебных, диагностических и восстановительных действий в модуле WMS. В разделе собраны примеры, привязанные к объектам и сценариям самого модуля, поэтому их удобнее искать по модулю, а не по общему типу задачи.
Скрипты#
Выполнение отгрузки без мастер-документа#
Позволяет выполнить отгрузку Wms_Shipping без изменения состояния мастер-документа.
Скрипт используется в ситуации, когда из-за сбоя в модуле WMS состояние мастер-документа уже стало «Выполнен», а состояние заявки на отгрузку Wms_ShipOrd и самой отгрузки Wms_Shipping осталось «Исполняется». В таком случае обычное переключение состояния может быть недоступно.
Скрипт временно отвязывает заявку на отгрузку от мастер-документа, выполняет отгрузку и заявку на отгрузку, а затем возвращает связь с мастер-документом. За счет этого удается завершить отгрузку без попытки повторно изменить состояние мастер-документа.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Тип: JEXL-скрипт
// id отгрузки, которую необходимо выполнить
var shipIdToBeDone = {вставить id отгрузки, которую нужно выполнить}L;
// загрузка отгрузки и связанной заявки на отгрузку
var ropShip = Wms_ShippingApi.load(shipIdToBeDone);
var ropOrd = Wms_ShipOrdApi.loadByGid(ropShip.gidSource);
// сохранение ссылки на мастер-документ
var src = ropOrd.gidSource;
var ropInternalWarrant = Stk_InternalWarrantApi.loadByGid(src);
// временное отключение связи с мастер-документом
Wms_ShipOrdApi.setgidSource(ropOrd, null);
// перевод отгрузки в выполненное состояние
Wms_ShippingApi.setidState(ropShip, Wms_ShippingApi.idgStateDone());
// восстановление связи с мастер-документом
Wms_ShipOrdApi.setgidSource(ropOrd, src);
// перевод мастер-документа в выполненное состояние
Stk_InternalWarrantApi.setidStateOut(ropInternalWarrant, Stk_InternalWarrantApi.idStDone());
Stk_InternalWarrantApi.setidStateIn(ropInternalWarrant, Stk_InternalWarrantApi.idStDone());
Высвобождение остаточного резервирования#
Снимает резерв типа Res в регистре оборотов Wms_RegTurn для выполненных позиций отгрузки.
Скрипт используется в ситуации, когда из-за сбоя в модуле WMS резерв типа Res в регистре оборотов Wms_RegTurn не списался после выполнения позиции отгрузки. Скрипт находит такие позиции и выполняет корректирующее списание резерва.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Тип: JEXL-скрипт
// поиск выполненных позиций отгрузки, по которым остался ненулевой резерв
for (s : sql(`select rt.gidsrcobj
from wms_regturn rt
join wms_shipdet s
on s.gid = rt.gidsrcobj
where stype = 'Res'
and s.idoperstate = (select id from wms_operstate where norder = 300)
group by gidsrcobj
having sum(rt.nqtysm1) <> 0`).asList()) {
// загрузка позиции отгрузки
var rop = Wms_ShipDetApi.loadByGid(s.gidsrcobj);
// повторное проведение движения между состояниями для списания остаточного резерва
Wms_ShipDetApi.doOutLot(rop, Wms_OperStateApi.idgDone(), Wms_OperStateApi.idgReg());
Wms_ShipDetApi.doOutLot(rop, Wms_OperStateApi.idgReg(), Wms_OperStateApi.idgDone());
}
Открытие карточки миксина документа Wms_Document#
Открывает документ в карточке миксина документов Wms_Document.
Скрипт используется как служебный пример, если нужно посмотреть, как выглядит карточка миксина документа Wms_Document.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Тип: JEXL-скрипт
// открытие карточки миксина документа Wms_Document
Wms_DocumentAvi
.card()
.newForm()
.params({
"IdItem#": "167200/6802",
"EDITINGTYPE": "edit"
})
.open();