Purchasing Services: Inventory Value Zero

I’ve stumbled recently upon a support request, where a partner asked if there was a possibility to register purchases of services in Microsoft Dynamics NAV. When it comes to selling services, such as consulting, or repairs, NAV is your true friend, because you can use Resources to register sales against them. However, purchase documents don’t offer a possibility of purchasing resources, so you are left to some workarounds.

Actually, there are two of them. The simplest one is purchasing directly to a G/L account. All you need to do to purchase to a G/L account is to set up a new account in your General Ledger, configure it to allow direct postings against it, assign correct Gen. Bus. Posting Group and Gen. Product Posting Group, and off you go.

However, there are a four issues I can think of with purchasing directly to G/L accounts:

  • Knowing Chart of Accounts: Your purchasing department needs to be familiar your Chart of Accounts, which is something that they usually are not familiar with, or sometimes even shouldn’t be familiar with due to company policies.
  • Different purhcases accounts: Sometimes you might have different purchases accounts for services for different vendors, and even if you don’t mind your purchasing department knowing your chart of accounts, you can’t reasonably expect them to choose the correct account every time – this is something posting groups should take care of, not your users.
  • Wind of change: The only constant in this world is change, so you might decide to change your chart of accounts, in which case you need to let your users know of new accounts to post to. Some of them might be off to vacation, or walking their dog, or not reading e-mail, or simply not paying attention, and if you forget to block old accounts (in case you had to do so), or your chart of accounts changed altogether with old numbers being still available, but not for posting purchases of services, you will start regretting posting to G/L accounts directly pretty soon.
  • Statistical analysis: It is hard to extract any useful information but financial from your general ledger entries. After the year is over, and you want to know how many hours of which service you purchased, you better sharpen your pencils because you are off to a tedious chore. Or your poor souls in IT department are. In any case, whatever you post directly to G/L, is going to be a hard nut to crack if you think of your needs only after you do your postings.

There is a better way. And a way simpler one, too. It is called Items. Items have nice features which let you track things such as quantities, which can help you with calculating statistics and get useful information beyond financials. However, items have an annoying feature, called value. The problem with value is that when you post a purchase transaction with items, not only purchases and vendor accounts (and VAT, if applicable) are going to be affected, but inventory accounts and cost accounts as well. This is desirable when you work with items. But if you want to set up your services as items, this could be a problem. Could be, but fortunately it isn’t.

There is a feature not really widely know, and it is called Inventory Value Zero. It is a boolean field, hidden in the Item table, but not displayed by default on the Item Card. This flag will tell the system that any transaction (not just purchases, but any transaction) with this item should not affect the inventory and cost accounts. And this is exactly what you need.

In order to take advantage of this feature, you must first add this flag to Item Card. So, design the Item Card, and drag Inventory Value Zero field, preferably to Invoicing tab. Save the Item Card form, and here you go.

When you post purchases against such an item, the system will simply debit the purchases (and VAT, if applicable) account, and credit the vendor account, but will leave inventory and cost accounts alone. However, it will do something you probably don’t like too much: it will create positive inventory balance for such items.

What you can do in these situations, is periodically post the negative adjustments for all such items. The easiest way around is to use the Physical Inventory Journal, then calculate the inventory for these items by filtering the Calculate Inventory batch job by Inventory Value Zero field, then simply enter 0 as Qty. (Phys. Inventory), hit F11, and go grab a sandwich.


Vjeko has been writing code for living since 1995, and he has shared his knowledge and experience in presentations, articles, blogs, and elsewhere since 2002. Hopelessly curious, passionate about technology, avid language learner no matter human or computer.

This Post Has 4 Comments

  1. Jurica Bogunovic


    Potential problem is with users who check this field by mistake (there is a good reason why this isn’t normally visible on form). There is absolutely no validation on this field, even though it changes value posting drastically, so you can turn it on even though you have inventory 0. You can imagine the mess that happens when Adjust cost is run afterwards.

    I recently had this case on 3.10 and it took a lot of work to sort it out.

    I would recommend that this field be only checked by consultants, or maybe a separate form only available to super users.

    Of course, a bit of coding on the table would solve these problems 🙂



  2. Vjeko

    Jurica: You are right that there is no validation, and some validation similar to the one that happens when you try to change the Costing Method should happen on this field as well. Thanks for pointing this out!

  3. Jurica Bogunovic

    Just realized that a piece of my first comment got eaten by blog monster. It was supposed to say “inventory different than 0”.

  4. Vjeko

    Yeah, bad guy, this blog monster…

Leave a Reply