Выполнение отгрузки без мастер-документа

Выполнение отгрузки без мастер-документа#

Позволяет выполнить отгрузку 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());