What B1 does by itself.

Inventory counting in B1 sits under Inventory → Inventory Transactions → Inventory Counting Transactions. There are two documents, and the split is deliberate:

  • Inventory Counting records the count: which items, in which warehouse and bin, counted by whom, and the counted quantity next to the in-warehouse quantity on the count date. It changes no stock and posts no journal entry. You can keep updating it as long as it is open.
  • Inventory Posting corrects the stock. It is usually copied from one or more counting documents and posts the difference: a positive difference against the Inventory Offset – Increase Account, a negative one against the Inventory Offset – Decrease Account. Once added, it cannot be changed.

You can type counts straight into an Inventory Posting, but SAP advises against it: you lose the counters and their separate results, and a typing mistake goes straight into stock and the general ledger. Both documents support drafts and approval procedures.

Counting step by step.

This is the practice SAP recommends in its help documentation:

  • Record every receipt, delivery and issue that has really happened, so that B1 and the shelf start from the same point.
  • Create the Inventory Counting document: count date and time, counting type, counters, and the items with their warehouse and bin. Add Items → Select Items picks items by criteria such as warehouse or bin range.
  • Select Freeze on the rows. A frozen item cannot be received, delivered or moved in that warehouse and bin; only the inventory posting is allowed. It is unfrozen when it is posted or when the row is closed.
  • Add and print the document, count on the floor, then enter the results. Select Counted on every finished row; only counted rows can be posted. A row marked counted without a quantity counts as zero.
  • Check the Variance and Variance % columns. Rows above the threshold set in Document Settings turn red.
  • Choose Copy to Inventory Posting, check the prices and add the posting.

Two details cause most of the confusion afterwards. First, In-Whse Qty on Count Date is calculated from either the posting dates or the creation dates of transactions, depending on a setting in Document Settings that must be the same for counting and posting. If someone adds a delivery dated on the count date after counting has started, the comparison is off. Second, rows where the counted quantity equals the in-warehouse quantity are not copied to the posting. Unless Document Settings closes them automatically, they stay open and frozen, and you cannot start a new counting for those items until you close the counting document by hand.

One counter, several counters, or a team.

The Counting Type field offers Single Counter or Multiple Counters. A counter can be a B1 user or an employee without a B1 user. With multiple counters there are two roles: up to 5 individual counters, who each count the same item and bin independently, and up to 10 team counters, whose results add up to one team count. Team results go on a separate Team Counting tab.

B1 then compares the sets: Counters' Diff. shows the largest difference between counters. When you post, you choose which set goes into stock: only the items with no counters' difference, the team counted quantity, or one particular counter's result. Only one set is posted. Change the counting type with care: SAP warns that after a wrong change and an update, the only fix is to close the document and count again in a new one.

Several counters is a feature of the B1 client. SAP's Service Layer reference, which scanner apps use, says nothing specific about it, so test how an app reads and writes each counter's result on your own system before you rely on it.

Bins, batches and serial numbers.

  • Bin locations. Each bin is its own row. In the item selection, the Bin Locations button narrows the selection by sublevel or attribute, and Exclude Bin Locations for Items with Zero Quantity keeps empty bins off the list. Found an item in a bin that was not on the list? Add a row by hand.
  • Batches and serial numbers. Right-click a row and choose Serial and Batch Selection. They are optional on the counting but required on the posting, so somebody has to fill them in. Batches or serial numbers that B1 does not know can be created as drafts on the counting; they become real when posted.
  • Units of measure. Counted quantities are in the inventory counting unit. With a unit of measure group you can enter boxes and loose pieces separately in Inventory Counting by UoM, and B1 adds them up.
  • Value. For standard, moving average and FIFO items, B1 first adds up the differences of all bins in a warehouse. If a box was simply in the wrong bin, plus and minus cancel out and no value is posted. Items valued per serial or batch are handled per batch.

Cycle counting.

Counting everything once a year means stopping the warehouse. Cycle counting counts a part at a time, on a schedule. B1 supports it with three windows:

  • Inventory Cycles - Setup (Administration → Setup → Inventory) defines the cycles: recurrence, start count date and time.
  • Cycle Count Determination (same menu) sets per warehouse whether it is cycle counted by item group or, in a warehouse with bins, by a warehouse sublevel, with a cycle code, an alert and the users who receive it. With item-group cycles, the Inventory Data tab of the item master data can override the cycle per item.
  • Cycle Count Recommendations (Inventory → Inventory Transactions) lists what is due. Select items and choose Inventory Counting to create the counting document; the items then drop off the list.

Cycle counting only works if someone acts on the alerts. Give the recommendations a fixed slot in the week, and count fast movers more often than slow ones.

Inventory Posting or Inventory Opening Balance?

Both windows add or remove stock with a price, both are under Inventory Transactions, and they get mixed up. Inventory Opening Balance is for the starting stock: when you go live with B1, or for stock that was never entered. It posts against an Open Inventory Account you choose per row, normally an opening balance account, and it works in the inventory unit only. Inventory Posting is for differences found by counting and posts against the inventory offset accounts. Correct a counting difference with an opening balance and the gain or loss ends up in the wrong account.

Before you count.

  • Every real movement is in B1, including yesterday's deliveries and the issue for the broken pallet.
  • Check Document Settings for Inventory Counting and Inventory Posting: how the in-warehouse quantity on the count date is calculated, the variance thresholds, and whether rows with zero difference close when you post.
  • Decide who counts and how: one counter, a second count to validate, or a team for a large location.
  • Freeze what you count, and agree that nobody posts movements for those items until the posting is added.
  • Barcodes for items, boxes and bins are set up in B1, so a scanner can tell what it reads.
  • Agree who checks the variances and who adds the posting. A count without a posting changes nothing in stock.
  • Close counting documents that are done, so no items stay frozen.

How KoonScan does it.

KoonScan counts on the Inventory Counting documents you create in B1. The employee scans a bin and the items, blind by default or with the stock according to B1 shown, either guided along the bins in order or freely. Colleagues on the same counting add up their quantities. When a bin is finished, whatever was not scanned there counts as zero. Batch items need a batch; a batch B1 does not know yet is created when the posting is added. For a quick check without a document, a quick count creates a new counting document in B1 with the result.

Posting updates the counting document through the Service Layer. By default that is all: the office checks the variances in B1 and adds the Inventory Posting. With a setting switched on, KoonScan also adds the Inventory Posting for the rows with a difference. A counting with Multiple Counters works too, within the limit described above: each counter posts only their own count, never an inventory posting, and the office compares the counts and decides in B1. The employee has to be one of the counters on that document. Every document carries the name of the employee who scanned it. More on the KoonScan page; for setting up bins and batches, see the guide on bin locations and the guide on batch and serial numbers.

Sources: SAP Business One 10.0 help documentation (Inventory Counting Transactions, Inventory Counting window, Calculation of In-Warehouse Quantities on Count Date, Posting Counting Results, Inventory Posting window, Valuation Rules for Inventory Variances, Inventory Counting by Serial Number and by Batch Number, Inventory Opening Balances, Inventory Cycles - Setup, Cycle Count Determination - Setup, Cycle Count Recommendations, Warehouses - Setup: Accounting tab); the Service Layer API reference of SAP Business One 10.0 (InventoryCountings, InventoryPostings). SAP and SAP Business One are trademarks of SAP SE.