U každé položky oddělení O, P nebo M, lze zadat 64 bitovou masku směrů (Mask) a číslo skupiny (GroupItem). Směry a skupiny jsou ukládány do tabulky XITEM_MASK pro každý rok a každou položku .
Směrů a skupin používají makro procedury a funkce pracující s položkami: _Sum, ClrWage, AddWage, SubWage, _WageCache.
Směry a skupiny lze zadat pomocí makrofunkce SetItem(7,10). Jestliže věta v tabulce XITEM_MASK pro ukládaný rok nebude existovat, bude automaticky založena.
Směry a skupiny lze číst makrofunkcí GetInfoItem(7,10). Test na existenci věty pro aktuálně nastavený rok lze makrofunkcí GetInfoItem(57).
Masky a skupiny potřebné pro položkovy z oddělení O,P a M jsou uloženy v databázi. Každá položka má větu masek a skupin pro každý rok uloženu samostatně. V případě, kdy je proveden dotaz na masku nebo skupinu (třeba makrofunkcí _Sum) je postup tento:
Použitelné konstanty směrů (Mask):
| smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet | 
| smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance | 
| smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky | 
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem | 
| smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd | 
| smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula | 
| smeSmazOdch | $00008000 | Vymaž při ukončení PP | 
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích | 
| smeImpPeodesy | $01000000 | Peodesy | 
| smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet | 
| smeMoveToM | $00000002 | Přenášet do mezd | 
| smeMoveToKrDoch | $00000004 | Při přenosu do mezd krátit o docházku | 
| smeMoveToKrUvaz | $00000008 | Při přenosu do mezd krátit o úvazek | 
| smePamDoPravPrum | $00000010 | Kč do pravděpod. průměru na dovolenou | 
| smePamDoPravPND | $00000020 | Kč do pravděpodobného průměru na ND | 
| smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance | 
| smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky | 
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem | 
| smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd | 
| smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula | 
| smeSmazOdch | $00008000 | Vymaž při ukončení PP | 
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích | 
| smeImpPeodesy | $01000000 | Peodesy | 
| smePrDovHod | $00000001 | Hodiny do průměru na dovolenou | 
| smePrDov | $00000002 | Kč do průměru na dovolenou | 
| smePrNemDny | $00000004 | Dny do průměru na nemoc | 
| smePrNem | $00000008 | Kč do průměru na nemoc | 
| smeNahrDobDny | $00000010 | Dny náhradní doby | 
| smeNahrDob | $00000020 | Kč náhradní doby | 
| smeZaklDan | $00000040 | Základ pro daň | 
| smeZaklSocPoj | $00000080 | Základ pro sociální pojištění | 
| smeZaklZdrPoj | $00000100 | Základ pro zdravotní pojištění | 
| smeOsvobOdDan | $00000200 | Osvobozeno od daně | 
| smeKDodaneni | $00000400 | K dodanění | 
| smePorVzSocZdr | $00000800 | Celkem příjem pro porovnání VZ | 
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem | 
| smeZahrExpert | $00002000 | Daň - zahraniční expert. | 
| smeNuluj | $00004000 | Nuluj před přepočtem | 
| smeHrubaProDan | $00008000 | Do hrubé mzdy pro porovnání daně | 
| smeCompPol | $00010000 | Hist.porovnání pol.pro výpis | 
| smeRecommendedFill | $00010000 | Doporučeno vyplnit - upozornění | 
| smeOdbory | $00020000 | Odborový příspěvek | 
| smeRequiredFill | $00020000 | Povinně vyplnit - chyba | 
| smeZakZakPl | $00040000 | Zakázky: základní plat | 
| smeZakOstDoPoj | $00080000 | Zakázky: ostatní do pojištění | 
| smeZakOstNePoj | $00100000 | Zakázky: ostatní bez pojištění | 
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích | 
| smeZaklSrDI | $00400000 | Do základu pro srážkovou daň I. | 
| smeZaklSrDII | $00800000 | Do základu pro srážkovou daň II. | 
| smeZaklSrDIII | $01000000 | Do základu pro srážkovou daň III. | 
| smeZokNa1KcUp | $02000000 | Zaokrouhlovat na celé Kč nahoru | 
| smeNeDoZarucMzd | $04000000 | Vyloučit z výpočtu dohodnuté čisté | 
| smeHandChange | $08000000 | Dovolit ruční opravu položky | 
| smeDolniOprava | $10000000 | Položky v opravné větě 'dolní' | 
| smeArcibPrDot | $20000000 | Položky Průměry dotované | 
| smeArcibZdrDot | $40000000 | Položky Zdravotní dotované | 
| smeArcibSocDot | $80000000 | Položky Sociální dotované | 
| smeDoRozdNakladu | $00000001 | Rozdělení nákladů - položky, které lze rozdělit | 
| smeDoRNRezie | $00000002 | Rozdělení nákladů - všechny režijní položky i nerozdělované | 
| smeDoRNSumWage | $00000004 | Rozdělení nákladů - kopírované ze sumární věty do základní v případě přepočtu z minula | 
Jestliže bude některý z parametrů GroupItem nebo Mask roven nule, nebude brán v úvahu.
Berou se v úvahu položky, která vyhoví podmínce:
(Mask=0 or (PolSmer land Mask <> 0)) and (GroupItem=0 or PolGroupItem = GroupItem)
Příklad:
dim Suma : Real; Suma := _Sum(dbtM, 0, $00000001);
Sečte všechny položky, které mají ve směrech aktuálně nastaveného období nastaven první bit (hodnota $00000001). Skupina nebude brána v úvahu, protože je 0.