Start a project

CRD1 table in SAP Business One (Business Partner Addresses)

CRD1 is the SAP Business One table that stores the addresses of business partners: one row per bill-to or ship-to address, linked to the partner in OCRD by CardCode. AdresType is B for bill-to and S for ship-to, and the default address of each kind is named in OCRD.BillToDef and OCRD.ShipToDef.

What is the CRD1 table in SAP B1?

CRD1 is the SAP Business One table for business partner addresses. Each row is one bill-to or ship-to address of a customer, vendor or lead and joins to OCRD on CardCode. AdresType separates the two kinds (B = bill-to, S = ship-to), and the Address column holds the address name that users pick on documents.

Where is the CRD1 table in SAP B1?

In SAP Business One 10.0, CRD1 is the "Business Partners - Addresses" table with 45 columns. You see its data in Business Partners → Business Partner Master Data (header table OCRD).

TableCRD1 Business Partners - Addresses (child of OCRD)
Object type (ObjType)2 (oBusinessPartners), the object type of OCRD
Menu pathBusiness Partners → Business Partner Master Data
DI API objectBusinessPartners
Service Layer entityBusinessPartners (request builder)
Columns45 in SAP B1 10.0 (SDK database tables reference)

CRD1 key fields

FieldSAP typeWhat it holds
CardCodenVarChar(15)Business partner. Joins to OCRD.CardCode.
AddressnVarChar(50)Address name (the ID users pick). With CardCode and AdresType it identifies the row.
AdresTypeVarChar(1)B = bill-to address, S = ship-to address.
LineNumInt(11)Row number of the address inside the business partner.
Street / StreetNonVarChar(100)Street and street number.
Block / BuildingnVarChar(100) / TextBlock and building, floor or room.
CitynVarChar(100)City.
ZipCodenVarChar(20)Postal code.
County / StatenVarChar(100) / nVarChar(3)County and state code.
CountrynVarChar(3)Country code. Joins to OCRY.Code.
LicTradNumnVarChar(32)Tax ID kept on the address row.
TaxCodenVarChar(8)Tax code of the address. Joins to OSTC.Code.
GlblLocNumnVarChar(50)Global location number (GLN) of the address.

Types as listed in the SAP Business One 10.0 SDK database tables reference: nVarChar(n) is text of up to n characters, Num(19,6) a decimal with 6 places. Column names are the same on SQL Server and SAP HANA.

How CRD1 relates to other tables

CRD1 is a child table of OCRD. One business partner can have many rows: several ship-to addresses and several bill-to addresses, all sharing CardCode. OCRD.BillToDef holds the Address name of the default bill-to row and OCRD.ShipToDef the default ship-to row. Documents copy the address text onto their own header when they are added, so a later change in CRD1 does not change old invoices.

Common joins

  • CRD1 T1 INNER JOIN OCRD T0 ON T0.CardCode = T1.CardCode (business partner)
  • OCRD T0 LEFT JOIN CRD1 T1 ON T1.CardCode = T0.CardCode AND T1.AdresType = 'B' AND T1.Address = T0.BillToDef (default bill-to)
  • OCRD T0 LEFT JOIN CRD1 T1 ON T1.CardCode = T0.CardCode AND T1.AdresType = 'S' AND T1.Address = T0.ShipToDef (default ship-to)
  • CRD1 T1 LEFT JOIN OCRY T2 ON T2.Code = T1.Country (country name)

When you use the CRD1 table

Use CRD1 for customer and vendor address lists, mailing and delivery route exports, checks for partners with no bill-to or ship-to address, and data migration reviews where every address of a partner must be listed.

Example query: customers with their default bill-to address and country name

SQL Server

SELECT T0.CardCode, T0.CardName, T1.Address, T1.Street, T1.City, T1.ZipCode,
  T1.Country, T2.Name AS CountryName
FROM OCRD T0
INNER JOIN CRD1 T1 ON T1.CardCode = T0.CardCode AND T1.AdresType = 'B'
  AND T1.Address = T0.BillToDef
LEFT JOIN OCRY T2 ON T2.Code = T1.Country
WHERE T0.CardType = 'C'
ORDER BY T0.CardCode

SAP HANA (column names in double quotes)

SELECT T0."CardCode", T0."CardName", T1."Address", T1."Street", T1."City", T1."ZipCode",
  T1."Country", T2."Name" AS "CountryName"
FROM OCRD T0
INNER JOIN CRD1 T1 ON T1."CardCode" = T0."CardCode" AND T1."AdresType" = 'B'
  AND T1."Address" = T0."BillToDef"
LEFT JOIN OCRY T2 ON T2."Code" = T1."Country"
WHERE T0."CardType" = 'C'
ORDER BY T0."CardCode"

Paste either version in Tools → Queries → Query Generator. Need the other dialect for your own query? Use the SQL to HANA converter.

Common pitfall: Joining CRD1 on CardCode only

A partner with one bill-to and three ship-to addresses has four CRD1 rows, so a join on CardCode alone repeats the partner four times and multiplies any balance or total next to it. Always add AdresType, and add Address = OCRD.BillToDef or OCRD.ShipToDef when you want one row per partner. The same address name can exist once as B and once as S. See OCRD table (business partners).

Ready-made queries that use CRD1

Building something on CRD1?

Reading CRD1 (Business Partner Addresses) in a query is the easy part. We build SAP Business One customer portals: customers see their prices, stock, order status, invoices and statements, and their orders land in SAP as sales orders. Or hire a remote SAP Business One developer for the whole job, fixed price per phase.

Questions about the CRD1 table

What is the CRD1 table in SAP B1?

CRD1 is the SAP Business One table for business partner addresses. Each row is one bill-to or ship-to address of a customer, vendor or lead and joins to OCRD on CardCode. AdresType separates the two kinds (B = bill-to, S = ship-to), and the Address column holds the address name that users pick on documents.

How do I join CRD1 to OCRD in SAP B1?

Join on CRD1.CardCode = OCRD.CardCode and filter CRD1.AdresType ('B' for bill-to, 'S' for ship-to). For one row per partner, also match CRD1.Address to OCRD.BillToDef or OCRD.ShipToDef.

What do B and S mean in CRD1.AdresType?

B is a bill-to (pay-to) address and S is a ship-to address. They are the only two values SAP lists for the column.

Where is the default address of a business partner stored?

OCRD.BillToDef and OCRD.ShipToDef hold the Address name of the default bill-to and ship-to rows in CRD1. The full street, city and country are read from CRD1.

Which columns identify a row in CRD1?

CardCode, Address and AdresType together. LineNum numbers the addresses inside one partner.

Related tables

OCRD (Business Partners) · OCPR (Contact Persons) · OCRY (Countries/Regions) · search all SAP Business One tables

Sources: SAP Business One documentation and SDK (DI API database tables reference), SAP Help Portal; SDK 10.0 table page for CRD1.

Ready to get started?

Tell us what you need. You get a clear technical answer, a fixed scope and a price, usually within 24 hours.