недавно делал частичную отмену подбора.
в отгрузке нажимаем Отгрузка - Зарегистрированные строки подбора
там делаем функцию Строка - Отменить подбор
и вызываем следующий код, передавая в него Реку (_RegWHActivityLine):
_RegWHActivityLine1.SETRANGE("Whse. Document Type" , _RegWHActivityLine."Whse. Document Type");
_RegWHActivityLine1.SETRANGE("Whse. Document No." , _RegWHActivityLine."Whse. Document No.");
_RegWHActivityLine1.SETRANGE("Whse. Document Line No.", _RegWHActivityLine."Whse. Document Line No.");
_RegWHActivityLine1.SETFILTER("Action Type", '<>%1' , _RegWHActivityLine."Action Type");
IF _RegWHActivityLine."Serial No." <> '' THEN
_RegWHActivityLine1.SETRANGE("Serial No." , _RegWHActivityLine."Serial No.");
IF NOT _RegWHActivityLine1.FIND('-') THEN
EXIT;
_WHShipmentLine.SETRANGE("No." , _RegWHActivityLine."Whse. Document No.");
_WHShipmentLine.SETRANGE("Line No." , _RegWHActivityLine."Whse. Document Line No.");
IF _WHShipmentLine.FIND('-') THEN BEGIN
_WHShipmentLine."Qty. Picked" -= _RegWHActivityLine.Quantity;
_WHShipmentLine."Qty. Picked (Base)" -= _RegWHActivityLine.Quantity;
_WHShipmentLine."Qty. to Ship" -= _RegWHActivityLine.Quantity;
_WHShipmentLine."Qty. to Ship (Base)" -= _RegWHActivityLine.Quantity;
_WHShipmentLine."Completely Picked" := FALSE;
_WHShipmentLine.MODIFY();
END;
IF _RegWHActivityLine."Serial No." <> '' THEN BEGIN
_ReservationEntry.SETRANGE("Serial No.", _RegWHActivityLine."Serial No.");
IF _ReservationEntry.FIND('-') THEN
_ReservationEntry.DELETEALL();
_WhseItemTrackLine.SETRANGE("Serial No.", _RegWHActivityLine."Serial No.");
IF _WhseItemTrackLine.FIND('-') THEN
_WhseItemTrackLine.DELETEALL();
END;
_RegWHActivityLine1.DELETE;
_RegWHActivityLine.DELETE;
переменные:
Name DataType Subtype
_RegWHActivityLine1 Record Registered Whse. Activity Line
_WHShipmentLine Record Warehouse Shipment Line
_ReservationEntry Record Reservation Entry
_WhseItemTrackLine Record Whse. Item Tracking Line
вроде работает