---
id: object/page/5805
type: object
title: Page 5805 "Item Charge Assignment (Purch)"
summary: Page 5805 "Item Charge Assignment (Purch)" in Base Application (Microsoft.Purchases.Document). 1 public procedures, 12 events. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 4d98f2224f488962a706ceaa2828105eee1370c8a4c7d4bc38925d4c3d822f5c
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Page.al
    title: src/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/payables-how-assign-item-charges
    title: Use item charges to account for extra trade costs
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/subcontract-item-charges
    title: Assign item charges to subcontracting receipts
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/payables-how-assign-item-charges
    - https://learn.microsoft.com/dynamics365/business-central/subcontract-item-charges
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-inventory-costs
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/manufacturing/subcontracting
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 5805
name: Item Charge Assignment (Purch)
namespace: Microsoft.Purchases.Document
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/payables-how-assign-item-charges.md
  - docs/learn-smb-docs/business-central/subcontract-item-charges.md
counts:
  fields: 0
  procedures: 21
  events: 12
  subscribers: 0
  controls: 26
  actions: 6
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 2
  event_subscribers: 0
  calls: 1
  called_by: 0
  implements: 0
---

# Page 5805 "Item Charge Assignment (Purch)"

> Page 5805 "Item Charge Assignment (Purch)" in Base Application (Microsoft.Purchases.Document). 1 public procedures, 12 events. Present since at least BC23, still in BC30.

Base Application · Microsoft.Purchases.Document · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Item Charge Assignment (Purch) |
| SourceTable | Item Charge Assignment (Purch) |
| PageType | Worksheet |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| Control1 | Applies-to Doc. Type | [Applies-to Doc. Type](../table/5805.md#fields) | Specifies the type of the document that this document or journal line will be applied to when you post, for example to register payment. <small>from the table field</small> |
|  | Applies-to Doc. No. | [Applies-to Doc. No.](../table/5805.md#fields) | Specifies the number of the document that this document or journal line will be applied to when you post, for example to register payment. <small>from the table field</small> |
|  | Applies-to Doc. Line No. | [Applies-to Doc. Line No.](../table/5805.md#fields) | Specifies the number of the line on the document that this document or journal line will be applied to when you post, for example to register payment. <small>from the table field</small> |
|  | Item No. | [Item No.](../table/5805.md#fields) | Specifies the item number on the document line that this item charge is assigned to. <small>from the table field</small> |
|  | Description | [Description](../table/5805.md#fields) | Specifies a description of the item on the document line that this item charge is assigned to. <small>from the table field</small> |
|  | Qty. to Assign | [Qty. to Assign](../table/5805.md#fields) | Specifies how many units of the item charge will be assigned to the document line. If the document has more than one line of type Item, then this quantity reflects the distribution that you selected when you chose the Suggest Item Charge Assignment action. <small>from the table field</small> |
|  | Qty. to Handle | [Qty. to Handle](../table/5805.md#fields) | Specifies how many items the item charge will be assigned to on the line. It can be either equal to Qty. to Assign or to zero. If it is zero, the item charge will not be assigned to the line. <small>from the table field</small> |
|  | Qty. Assigned | [Qty. Assigned](../table/5805.md#fields) | Specifies the number of units of the item charge will be assigned to the document line. <small>from the table field</small> |
|  | Amount to Assign | [Amount to Assign](../table/5805.md#fields) | Specifies the value of the item charge that is going to be assigned to the document line. <small>from the table field</small> |
|  | Amount to Handle | [Amount to Handle](../table/5805.md#fields) | Specifies the value of the item charge that will be actually assigned to the document line. <small>from the table field</small> |
|  | Gross Weight | `GrossWeight` | Specifies the initial weight of one unit of the item. The value may be used to complete customs documents and waybills. |
|  | Unit Volume | `UnitVolume` | Specifies the volume of one unit of the item. The value may be used to complete customs documents and waybills. |
|  | Qty. to Receive (Base) | `QtyToReceiveBase` | Specifies how many units of the item on the documents line for this item charge assignment have not yet been posted as received. |
|  | Qty. Received (Base) | `QtyReceivedBase` | Specifies how many units of the item on the documents line for this item charge assignment have been posted as received. |
|  | Qty. to Ship (Base) | `QtyToShipBase` | Specifies how many units of the item on the documents line for this item charge assignment have not yet been posted as shipped. |
|  | Qty. Shipped (Base) | `QtyShippedBase` | Specifies how many units of the item on the documents line for this item charge assignment have been posted as shipped. |
| Assignable | Total (Qty.) | `AssignableQty` | Specifies the total quantity of the item charge that you can assign to the related document line. |
|  | Total (Amount) | `AssgntAmount` | Specifies the total value of the item charge that you can assign to the related document line. |
| To Assign | Qty. to Assign | `TotalQtyToAssign` | Specifies the total quantity of the item charge that you can assign to the related document line. |
|  | Amount to Assign | `TotalAmountToAssign` | Specifies the total value of the item charge that you can assign to the related document line. |
| Rem. to Assign | Rem. Qty. to Assign | `RemQtyToAssign` | Specifies the quantity of the item charge that has not yet been assigned. |
|  | Rem. Amount to Assign | `RemAmountToAssign` | Specifies the value of the quantity of the item charge that has not yet been assigned. |
| To Handle | Qty. to Handle | `TotalQtyToHandle` | Specifies the total quantity of the item charge that you can assign to the related document line. |
|  | Amount to Handle | `TotalAmountToHandle` | Specifies the total value of the item charge that you can assign to the related document line. |
| Rem. to Handle | Rem. Qty. to Handle | `RemQtyToHandle` | Specifies the quantity of the item charge that you have not yet assigned to items in the assignment lines. |
|  | Rem. Amount to Handle | `RemAmountToHandle` | Specifies the value of the quantity of the item charge that has not yet been assigned. |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Functions | Get Receipt Lines | Select a posted purchase receipt for the item that you want to assign the item charge to, for example, if you received an invoice for the item charge after you posted the original purchase receipt. |  |
|  | Get Transfer Receipt Lines | Select a posted transfer receipt for the item that you want to assign the item charge to, for example, if you received an invoice for the item charge after you posted the original transfer receipt. |  |
|  | Get Return Shipment Lines | Select a posted return shipment for the item that you want to assign the item charge to, for example, if you received an invoice for the item charge after you posted the original return shipment. |  |
|  | Get Sales Shipment Lines | Select a posted sales shipment for the item that you want to assign the item charge to, for example, if you received an invoice for the item charge after you posted the original sales shipment. |  |
|  | Get Return Receipt Lines | Select a posted return receipt for the item that you want to assign the item charge to, for example, if you received an invoice for the item charge after you posted the original return receipt. |  |
|  | Suggest Item Charge Assignment | Use a function that assigns and distributes the item charge when the document has more than one line of type Item. You can select between four distribution methods. |  |

## Events published

- `OnAfterInitialize(var PurchaseLine: Record "Purchase Line"; var AssgntAmount: Decimal)` (integration)
- `OnAfterUpdateQty(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var QtyToReceiveBase: Decimal; var QtyReceivedBase: Decimal; var QtyToShipBase: Decimal; var QtyShippedBase: Decimal; var GrossWeight: Decimal; var UnitVolume: Decimal)` (integration)
- `OnGetReceiptLinesOnActionOnAfterItemChargeAssgntPurchSetFilters(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var PurchReceiptLines: Record "Purch. Rcpt. Line"; PurchLine: Record "Purchase Line")` (integration)
- `OnGetReturnReceiptLinesOnActionOnAfterItemChargeAssgntPurchSetFilters(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ReturnRcptLine: Record "Return Receipt Line"; PurchLine: Record "Purchase Line")` (integration)
- `OnGetReturnShipmentLinesOnActionOnAfterItemChargeAssgntPurchSetFilters(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ReturnShptLine: Record "Return Shipment Line"; PurchLine: Record "Purchase Line")` (integration)
- `OnGetSalesShipmentLinesOnActionOnAfterItemChargeAssgntPurchSetFilters(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var SalesShptLine: Record "Sales Shipment Line"; PurchLine: Record "Purchase Line")` (integration)
- `OnGetTransferReceiptLinesOnActionOnAfterItemChargeAssgntPurchSetFilters(var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var TransferRcptLine: Record "Transfer Receipt Line"; PurchLine: Record "Purchase Line")` (integration)
- `OnBeforeOpenPurchReceiptLines(var RecItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var IsHandled: Boolean)` (integration)
- `OnBeforeOpenReturnReceiptLines(var RecItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var IsHandled: Boolean)` (integration)
- `OnBeforeOpenReturnShipmentLines(var RecItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var IsHandled: Boolean)` (integration)
- `OnBeforeOpenPostedTransferReceiptLines(var RecItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var IsHandled: Boolean)` (integration)
- `OnBeforeOpenSalesShipmentLines(var RecItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)"; var IsHandled: Boolean)` (integration)

## Procedures

- `Initialize(NewPurchLine: Record "Purchase Line"; NewLineAmt: Decimal)`

Plus 8 local procedures.

## Triggers

OnAfterGetCurrRecord, OnAfterGetRecord, OnDeleteRecord, OnOpenPage, OnQueryClosePage

## Relations

- source table [Table 5805 "Item Charge Assignment (Purch)"](../table/5805.md)

## Extended by

- [Page extension 20623 "Item Charge Ass. (Purch) BF"](../pageextension/20623.md)
- [Page extension 6280 "Sust. Item Charge Assign Purch"](../pageextension/6280.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `OnQueryClosePage → GetResponseOrDefault`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: none

## Documented on Microsoft Learn

- [Use item charges to account for extra trade costs](https://learn.microsoft.com/dynamics365/business-central/payables-how-assign-item-charges)
- [Assign item charges to subcontracting receipts](https://learn.microsoft.com/dynamics365/business-central/subcontract-item-charges)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "page", object_name: "Item Charge Assignment (Purch)")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
