Перейти к основному содержанию
`Ctrl`+`K`

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

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