---
id: object/table/14902-ru
type: object
title: Table 14902 "Customer Agreement" (RU)
summary: Table 14902 "Customer Agreement" (RU) in the RU country layer. 57 fields, 11 public procedures. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - table
  - ru layer
versions:
  introduced: "29"
  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: c9cde8eb2527394575b51605ad2e39a60b7783bf5f7c876638406a436f9a8b2a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/RU/BaseApp/Local/CustomerAgreement.Table.al
    title: src/Layers/RU/BaseApp/Local/CustomerAgreement.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/ru
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 14902
name: Customer Agreement
namespace: null
app: Base Application
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
country: RU
counts:
  fields: 57
  procedures: 11
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Table 14902 "Customer Agreement" (RU)

> Table 14902 "Customer Agreement" (RU) in the RU country layer. 57 fields, 11 public procedures. Introduced in BC29, still in BC30.

RU country layer · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/RU/BaseApp/Local/CustomerAgreement.Table.al) · facts from BC29

An object of the [RU localization](../../localizations/ru.md), not part of W1.

## Properties

| Property | Value |
|---|---|
| Caption | Customer Agreement |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Customer No. | Code[20] | — | TableRelation Customer |
| 2 | No. | Code[20] | — |  |
| 3 | Description | Text[250] | — |  |
| 4 | External Agreement No. | Text[30] | — |  |
| 5 | Agreement Date | Date | — |  |
| 6 | Active | Boolean | — |  |
| 7 | Starting Date | Date | — |  |
| 8 | Expire Date | Date | — |  |
| 9 | Agreement Group | Code[20] | — | TableRelation "Agreement Group".Code where(Type = const(Sales)) |
| 10 | Ship-to Code | Code[10] | — | TableRelation "Ship-to Address".Code where("Customer No." = field("Customer No.")) |
| 12 | Comment | Boolean | — | FlowField: exist("Sales Comment Line" where("Document Type" = const(Agreement), "No." = field("No."))) |
| 14 | Contact | Text[100] | — |  |
| 15 | Phone No. | Text[30] | — |  |
| 16 | Global Dimension 1 Code | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(1)) |
| 17 | Global Dimension 2 Code | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(2)) |
| 20 | Credit Limit (LCY) | Decimal | — |  |
| 21 | Customer Posting Group | Code[20] | — | TableRelation Customer Posting Group |
| 22 | Currency Code | Code[10] | — | TableRelation Currency |
| 23 | Customer Price Group | Code[10] | — | TableRelation Customer Price Group |
| 24 | Language Code | Code[10] | — | TableRelation Language |
| 27 | Payment Terms Code | Code[10] | — | TableRelation Payment Terms |
| 28 | Fin. Charge Terms Code | Code[10] | — | TableRelation Finance Charge Terms |
| 29 | Salesperson Code | Code[20] | — | TableRelation Salesperson/Purchaser |
| 30 | Shipment Method Code | Code[10] | — | TableRelation Shipment Method |
| 31 | Shipping Agent Code | Code[10] | — | TableRelation Shipping Agent |
| 34 | Customer Disc. Group | Code[20] | — | TableRelation Customer Discount Group |
| 35 | Prices Including VAT | Boolean | — |  |
| 39 | Blocked | Enum "Customer Blocked" | — | enum [Enum 139 "Customer Blocked"](../enum/139.md) |
| 47 | Payment Method Code | Code[10] | — | TableRelation Payment Method |
| 55 | Date Filter | Date | — | FlowFilter |
| 56 | Global Dimension 1 Filter | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(1)); FlowFilter |
| 57 | Global Dimension 2 Filter | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(2)); FlowFilter |
| 58 | Balance | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry".Amount where("Customer No." = field("Customer No."), "Agreement No." = field("No."))); not editable |
| 59 | Balance (LCY) | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Amount (LCY)" where("Customer No." = field("Customer No."), "Agreement No." = field("No."))); not editable |
| 60 | Net Change | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry".Amount where("Customer No." = field("Customer No."), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("Date Filter"), "Agreement No." = field("No."))); not editable |
| 61 | Net Change (LCY) | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Amount (LCY)" where("Customer No." = field("Customer No."), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("Date Filter"), "Agreement No." = field("No."))...; not editable |
| 83 | Location Code | Code[10] | — | TableRelation Location where("Use As In-Transit" = const(false)) |
| 88 | Gen. Bus. Posting Group | Code[20] | — | TableRelation Gen. Business Posting Group |
| 97 | Debit Amount | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Debit Amount" where("Customer No." = field("Customer No."), "Entry Type" = filter(<> Application), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("Date Fi...; not editable |
| 98 | Credit Amount | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Credit Amount" where("Customer No." = field("Customer No."), "Entry Type" = filter(<> Application), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("Date F...; not editable |
| 99 | Debit Amount (LCY) | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Debit Amount (LCY)" where("Customer No." = field("Customer No."), "Entry Type" = filter(<> Application), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("D...; not editable |
| 100 | Credit Amount (LCY) | Decimal | — | FlowField: sum("Detailed Cust. Ledg. Entry"."Credit Amount (LCY)" where("Customer No." = field("Customer No."), "Entry Type" = filter(<> Application), "Initial Entry Global Dim. 1" = field("Global Dimension 1 Filter"), "Initial Entry Global Dim. 2" = field("Global Dimension 2 Filter"), "Posting Date" = field("...; not editable |
| 102 | E-Mail | Text[80] | Email <small>caption</small> |  |
| 107 | No. Series | Code[20] | — | TableRelation No. Series |
| 110 | VAT Bus. Posting Group | Code[20] | — | TableRelation VAT Business Posting Group |
| 5700 | Responsibility Center | Code[10] | — | TableRelation Responsibility Center |
| 5750 | Shipping Advice | Enum "Sales Header Shipping Advice" | — | enum [Enum 3657 "Sales Header Shipping Advice"](../enum/3657.md) |
| 5790 | Shipping Time | DateFormula | — |  |
| 5792 | Shipping Agent Service Code | Code[10] | — | TableRelation "Shipping Agent Services".Code where("Shipping Agent Code" = field("Shipping Agent Code")) |
| 12400 | Default Bank Code | Code[20] | — | TableRelation "Customer Bank Account".Code where("Customer No." = field("Customer No.")) |
| 12422 | G/L Account Filter | Code[20] | — | TableRelation G/L Account; FlowFilter |
| 12423 | G/L Starting Date Filter | Date | — | FlowFilter |
| 12424 | G/L Starting Balance | Decimal | — | FlowField: sum("G/L Entry".Amount where("Source Type" = const(Customer), "Source No." = field("Customer No."), "G/L Account No." = field("G/L Account Filter"), "Global Dimension 1 Code" = field("Global Dimension 1 Filter"), "Global Dimension 2 Code" = field("Global Dimension 2 Filter"), "Agreement No." = field...; not editable |
| 12425 | G/L Net Change | Decimal | — | FlowField: sum("G/L Entry".Amount where("Source Type" = const(Customer), "Source No." = field("Customer No."), "G/L Account No." = field("G/L Account Filter"), "Global Dimension 1 Code" = field("Global Dimension 1 Filter"), "Global Dimension 2 Code" = field("Global Dimension 2 Filter"), "Agreement No." = field...; not editable |
| 12426 | G/L Debit Amount | Decimal | — | FlowField: sum("G/L Entry"."Debit Amount" where("Source Type" = const(Customer), "Source No." = field("Customer No."), "G/L Account No." = field("G/L Account Filter"), "Global Dimension 1 Code" = field("Global Dimension 1 Filter"), "Global Dimension 2 Code" = field("Global Dimension 2 Filter"), "Agreement No."...; not editable |
| 12427 | G/L Credit Amount | Decimal | — | FlowField: sum("G/L Entry"."Credit Amount" where("Source Type" = const(Customer), "Source No." = field("Customer No."), "G/L Account No." = field("G/L Account Filter"), "Global Dimension 1 Code" = field("Global Dimension 1 Filter"), "Global Dimension 2 Code" = field("Global Dimension 2 Filter"), "Agreement No....; not editable |
| 12428 | G/L Balance to Date | Decimal | — | FlowField: sum("G/L Entry".Amount where("Source Type" = const(Customer), "Source No." = field("Customer No."), "G/L Account No." = field("G/L Account Filter"), "Global Dimension 1 Code" = field("Global Dimension 1 Filter"), "Global Dimension 2 Code" = field("Global Dimension 2 Filter"), "Agreement No." = field...; not editable |

## Keys

- Key1: Customer No., No. (clustered)
- Key2: Agreement Group, No.
- Key3: No.

## Procedures

- `AssistEdit(OldCustAgreement: Record "Customer Agreement"): Boolean`
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `LookupShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `CheckBlockedCustOnDocs(Cust2: Record Customer; DocType: Option Quote,"Order",Invoice,"Credit Memo","Blanket Order","Return Order"; Shipment: Boolean; Transaction: Boolean)`
- `CheckBlockedCustOnJnls(Cust2: Record Customer; DocType: Option " ",Payment,Invoice,"Credit Memo","Finance Charge",Reminder,Refund; Transaction: Boolean)`
- `CustBlockedErrorMessage(Cust2: Record Customer; Transaction: Boolean)`
- `CustPrivacyBlockedErrorMessage(Cust2: Record Customer; Transaction: Boolean)`
- `CustTransferFields()`
- `CustTransferDimensions()`
- `CheckDates()`
- `GetDefaultDimSetID(DimSetID: Integer; var ShortcutDim1Code: Code[20]; var ShortcutDim2Code: Code[20]): Integer`

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Across versions

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

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). 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: "table", object_name: "Customer Agreement")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.

A RU country object, not part of W1: the default corpus does not have it; `bcatlas_list_countries` shows which countries the atlas has.
