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();