وحدات القياس (Units of Measure)
يحتفظ نظام نما بمخزون كل صنف بوحدة واحدة فقط، ويترك لكل مستند أن يتكلم بوحدة أخرى، فيستطيع الموزّع أن يشتري المنتج بالكرتونة، ويبيعه بالقطعة، ويستخرج تقاريره باللتر، دون أن يحسب أحد شيئًا بيده.
وتخفي هذه الجملة قرارًا يسهل الخطأ فيه ويصعب التراجع عنه. فالوحدة التي تختارها الوحدة الأساسية للصنف تصير — إلى الأبد — الوحدة التي تُحفظ بها الأرصدة والتكاليف وأعمار المخزون والحجوزات وكل تقرير. وكل ما عداها — كراتين وبالتات ودستات وكيلوجرامات — طبقة ترجمة تجلس فوقها.
تمرّ هذه الصفحة على الشاشات الأربع التي تجعل هذه الترجمة ممكنة، ثم تبني إعداد «الشراء بالكرتونة والبيع بالقطعة» الكلاسيكي من أوله إلى آخره.
الشاشات الأربع وما تفعله كل واحدة
| الشاشة | القائمة | ماذا تحمل |
|---|---|---|
| وحدة قياس (UOM) | المخازن ← الإعدادات ← وحدة قياس | وحدة واحدة — قطعة، كرتونة، كيلوجرام — وكيف تُقرَّب وكيف تتصرف |
| مجموعة وحدات (UOM Unit Group) | المخازن ← الإعدادات ← مجموعة وحدات | عائلة مسمّاة من الوحدات بمعدلات تحويل واحدة تشترك فيها كل الأصناف التي تستخدمها |
| تحويل وحدات (Unit Conversions) | المخازن ← الإعدادات ← تحويل وحدات | كل معدلات التحويل في النظام في قائمة واحدة — وجُلّها يكتبه النظام بنفسه |
| أبعاد قياسية (Standard Measures) | المخازن ← الملفات ← أبعاد قياسية | قائمة المقاسات المسموح بها، للأصناف التي تُباع بالطول أو المساحة أو الحجم |
وهناك شاشة خامسة، صيغة حسابية (Calculation Formula) في المخازن ← الإعدادات ← صيغة حسابية، تنتمي إلى العائلة نفسها لكنها تجيب عن سؤال مختلف — فهي للخدمات التي تُحسب كميتها من قياس بدلًا من أن تُعدّ. ولها قسمها الخاص قرب نهاية الصفحة.
تعريف وحدة

شاشة وحدة قياس صغيرة عن قصد. فالوحدة كود واسم عربي واسم إنجليزي وحفنة من الإعدادات التي تحدد كيف يعامل النظام الأرقام المكتوبة بها.
وعدد خانات الكسر هو أهمها، وليس شكليًا. فكل تحويل يجريه النظام يُقرَّب إلى عدد خانات كسر الوحدة التي يحوّل إليها. والوحدة الجديدة تبدأ بخانتين. فإذا جعلت القطعة بصفر خانات وأدخل أحدهم 1.3 كرتونة من 24، صارت الـ 31.2 قطعة التي قصدها 31. فأعطِ الوحدة الأساسية من الخانات ما يكفي للتعبير عن أي كسور مشروعة منها.
والكمية رقم صحيح دائماً تذهب أبعد وترفض الإدخال أصلًا: فسطر مستند كميته بهذه الوحدة وفيه أي كسر لا يمكن حفظه. وهو المفتاح الصحيح لوحدة مثل «محرك» أو «سيارة»، حيث لا وجود لنصف واحدة.
وبقية المجموعة الرئيسية أضيق أثرًا:
| الحقل | ماذا يفعل |
|---|---|
| Quantity Pattern In Reports | يتجاوز صيغة الأرقام العامة للكميات المطبوعة بهذه الوحدة |
| كود مصلحة الضرائب وكود مصلحة الضرائب للوزن | الأكواد التي تتوقعها مصلحة الضرائب لهذه الوحدة، للفاتورة الإلكترونية |
| الوزن لكل وحدة | يُضرب في كمية السطر ليعطي وزن السطر — وبه يعرف المستند أن الطلبية تزن 1.4 طن |
التحويلات المكتوبة على الوحدة نفسها
وأسفل ذلك يوجد جدول التفاصيل، وهو أبسط الأماكن الثلاثة التي يمكن أن يعيش فيها معدل التحويل. وكل سطر يُقرأ كجملة: س من هذه الوحدة 1، يساوي ص من 12، الوحدة قطعة — واحد من هذه الوحدة يساوي اثنتي عشرة قطعة.
والمعدل المعرَّف هنا قياسي: ينطبق على كل صنف في قاعدة البيانات يستخدم الوحدتين. وهذا صحيح تمامًا لـ«الدستة» (اثنا عشر من أي شيء يُعدّ)، وخطأ تمامًا لـ«الكرتونة»، التي تحوي أربعًا وعشرين من منتج وستًا من آخر. فاحجز هذا الجدول للوحدات التي علاقتها ببعضها حقيقة عن العالم لا حقيقة عن منتج بعينه.
حفظ الوحدة يكتب لك سجل تحويل
عند حفظ وحدة قياس فيها سطور في جدول التفاصيل، ينشئ النظام — أو يحدّث — سجلًا مقابلًا على شاشة تحويل وحدات، مسمى بكود الوحدة مضافًا إليه Conversions، ومعلَّمًا بملاحظة Created By System. فلا تحتاج أبدًا إلى إنشائه ولا ينبغي أن تعدّله — ويشرح قسم شاشة تحويل الوحدات أدناه السبب.
مجموعة الأبعاد المتجاهلة
توجد تجاهل الطول وتجاهل العرض وتجاهل الارتفاع للأصناف التي تُشتق كميتها من قياسات مادية. فحين يحمل السطر قياسات، يُضرب العدد المُدخَل في كل قياس لا تتجاهله الوحدة. فالـمتر يتجاهل العرض والارتفاع، ولذا فسطر من 3 قطع طول كل منها 5 أمتار هو 15 مترًا. والمتر المربع لا يتجاهل إلا الارتفاع، فتكون 3 قطع من 2 × 1.5 هي 9. واترك المفاتيح الثلاثة مغلقة فلا يتأثر شيء في وحدة لا تُستعمل مع القياسات أصلًا.
وحدات تحمل قياساتها معها
المجموعة غير المعنونة التي تضم الإستخدام مع الأبعاد والكمية والأبعاد والوحدة الرئيسية اختصار لمقاس جاهز قياسي. فتاجر الزجاج يبيع الزجاج المقصوص بالمتر المربع، لكنه يبيع أيضًا «لوحًا» مخزنيًا مقاسه دائمًا 1.22 × 2.44 متر. وبدلًا من أن يكتب البائع هذين الرقمين في كل سطر، عرِّف وحدة اسمها لوح، وافتح الإستخدام مع الأبعاد، واضبط الكمية على 1، واملأ الأبعاد بالطول والعرض والارتفاع (وكلها مطلوبة بمجرد فتح المفتاح)، واجعل الوحدة الرئيسية هي المتر المربع.
وعندئذ، حين يُختار لوح وحدةً ثانية في سطر مستند، يملأ النظام القياسات من الوحدة، ويضبط وحدة السطر الرئيسية على المتر المربع، ويحسب المساحة الناتجة بنفسه. فيكتب البائع «4 ألواح» ويحمل المستند 11.91 مترًا مربعًا.
مجموعات الوحدات: تعريف المعدلات مرة واحدة لعائلة كاملة

بالنسبة لتاجر جملة عنده ثلاثة آلاف صنف، ليس تعريف «1 كرتونة = 24 قطعة» ثلاثة آلاف مرة خطةً. وشاشة مجموعة وحدات هي الجواب: عائلة مسمّاة من الوحدات، ومعدلات التحويل بينها، ومجموعة من الافتراضيات المعقولة، يتبناها أي صنف بحقل واحد.
والشاشة ثلاثة أجزاء، ويجب ملؤها بهذا الترتيب:
- جدول الوحدات يسرد الوحدات التي تنتمي إلى المجموعة. ولا يجوز لأي شيء آخر في الشاشة أن يذكر وحدة غير مدرجة هنا — جرّب ذلك يفشل الحفظ برسالة Invalid UOM, it was not mentioned in units grid.
- جدول التفاصيل يحمل المعدلات، سطرًا لكل زوج: س من 1، الوحدة كرتونة، يساوي ص من 24، الوحدة قطعة.
- مجموعة الوحدات تسمّي افتراضيات المجموعة — الوحدة الأساسية(الأصغر) ووحدة التقارير 1 ووحدة التقارير 2 ووحدة الشراء ووحدة البيع.
وهذه الافتراضيات هي سبب توفير الشاشة لكل هذا الجهد. فحين تختار مجموعة على صنف، يأخذ الصنف الخمسة كلها من المجموعة دفعة واحدة، وتُضاف كل وحدة في جدول وحدات المجموعة إلى جدول وحدات الصنف آليًا. فالمجموعة إذن تصف عرفًا في التعبئة — «كراتين من 24 زجاجة على بالتات من 50 كرتونة» — تشترك فيه عشرات الأصناف.
وكما هو الحال في وحدة القياس، يكتب حفظ المجموعة سجلها المولَّد من النظام على شاشة تحويل الوحدات.
المجموعة عائلة لا تسلسل
جمع الوحدات في مجموعة لا يربط معدلاتها ببعضها. فإذا عرفت المجموعة أن 1 كرتونة = 24 قطعة وأن 1 بالتة = 50 كرتونة، فلا يزال النظام عاجزًا عن معرفة كم قطعة في البالتة — فهو يبحث عن معدل بين الوحدتين اللتين يحتاجهما فعلًا، ويستسلم إن لم يجد سطرًا لهذا الزوج بالذات. فأضف سطر البالتة إلى القطعة صراحةً. وينطبق هذا على كل مكان يُعرَّف فيه معدل، لا على المجموعات وحدها.
الشراء بالكرتونة والبيع بالقطعة
هذا هو الإعداد كاملًا، مشروحًا لموزّع مشروبات يشتري كراتين من 24 زجاجة من المصنع، ويخزّن زجاجات، ويبيع زجاجات على الرف وكراتين للمحلات.
الخطوة 1 — أنشئ الوحدات
على شاشة وحدة قياس أنشئ قطعة وكرتونة. أعطِ القطعة صفر خانات كسر إن كنت لا تبيع جزءًا من زجاجة، وافتح الكمية رقم صحيح دائماً حتى لا تُدخَل زجاجة كسرية بالخطأ. واترك الكرتونة على خانتين — فستحتاج أن تعبّر عن «50 زجاجة = 2.08 كرتونة» حين يحوّل تقرير في الاتجاه الآخر. ولا تضع شيئًا في جدول تفاصيل أي من الوحدتين: فالكرتونة 24 زجاجة لهذا المنتج، لا لكل منتج في الكتالوج.
الخطوة 2 — اختر الوحدة الأساسية
الوحدة الأساسية هي الزجاجة. وهذا قرار عن الطريقة التي تريد بها عدّ المخزن، لا عن طريقة الشراء أو البيع، والاختبار بسيط: الوحدة الأساسية ينبغي أن تكون أصغر وحدة ستحتاج يومًا أن تحرّك منها عددًا صحيحًا. فإن كنت ستصرف زجاجة واحدة يومًا، فلا بد أن تكون الأساس هي الزجاجة. وكل ما هو أخشن منها يظل قابلًا للإدخال في المستندات — والنظام يحوّل.
الخطوة 3 — املأ تبويب الوحدات في بطاقة الصنف

افتح الصنف واذهب إلى تبويب الوحدات. والمجموعة التي تملؤها هي الوحدة الرئيسية:
| الحقل | القيمة | لماذا |
|---|---|---|
| مجموعة الوحدات | (اتركه فارغًا الآن) | لا يلزم إلا إذا اشتركت عائلة من الأصناف في التعبئة نفسها |
| الوحدة الأساسية(الأصغر) | قطعة | الوحدة التي يُحفظ بها المخزون والتكلفة والتقارير |
| وحدة الشراء | كرتونة | الوحدة التي تفتح بها مستندات الشراء والاستلام |
| وحدة البيع | قطعة | الوحدة التي تفتح بها مستندات البيع والصرف |
| وحدة التقارير 1 / 2 | (اختياري) | وحدات إضافية تُعرض على المستخدمين والتقارير |
ولاحظ ما يحدث وأنت تكتب. فاختيار الوحدة الأساسية(الأصغر) ينسخها إلى أي من الحقول الأربعة الأخرى إن كان فارغًا، ويضيفها سطرًا في جدول الوحدات أسفلها. واختيار الكرتونة في وحدة الشراء يضيف سطر كرتونة إلى الجدول نفسه. فالجدول ليس شيئًا تملؤه بيدك عادةً — بل يملأ نفسه وأنت تسمّي الوحدات فوقه.
الخطوة 4 — اذكر المعدل
وما زلنا في تبويب الوحدات، فجدول التحويلات أسفل جدول الوحدات هو موضع معدل الصنف الخاص. سطر واحد:
| س من | الوحدة | يساوي ص من | الوحدة |
|---|---|---|---|
| 1 | كرتونة | 24 | قطعة |
هذا هو التحويل كله. واقرأه كالجملة التي هو عليها: كرتونة واحدة تساوي أربعًا وعشرين قطعة.
كل وحدة يجب أن تصل إلى الوحدة الأساسية مباشرةً
قبل الحفظ، يتحقق النظام من أن لكل وحدة في جدول الوحدات معدلًا يربطها بالوحدة الأساسية — سواء كمعدل قياسي على الوحدات نفسها، أو كمعدل في مجموعة وحدات الصنف، أو كسطر في هذا الجدول. فإن لم يوجد، فشل الحفظ برسالة Could not find conversion between base unit and unit.
والكلمة الجديرة بالانتباه هي «مباشرةً». فإن أضفت لاحقًا بالتة، فالسطر الذي تحتاجه هو 1 بالتة = 1200 قطعة، لا 1 بالتة = 50 كرتونة. فالنظام لا يضرب معدلين ليستخرج ثالثًا.
الخطوة 5 — احفظ، وانظر ما الذي تغيّر
حفظ الصنف يفعل ثلاثة أشياء تستحق المعرفة:
- يحسب لكل سطر في جدول الوحدات معدلَ تلك الوحدة إلى الوحدة الأساسية. وهذا المعدل المشتق هو ما تستعمله الشاشات لتحويل الكميات وأنت تكتب، وهو ما يقارنه النظام إن عدّلت المعدل لاحقًا.
- ينشئ سجل تحويل وحدات مولَّدًا من النظام للصنف، مسمى بكود الصنف.
- يرفض الحفظ إن حذفت من الجدول وحدةً عليها حركات بالفعل — The uom X can not be removed from the item Y because the item has N transactions for this unit. ولا يوجد مفتاح إعدادات يتجاوز هذه.
الخطوة 6 — استعمله
الآن يؤتي الإعداد ثماره، لأن الوحدة التي يفتح بها كل مستند تُختار نيابةً عنك:
- مستند الشراء أو الاستلام — وكذلك التحويل المخزني ومستند التجميع — يفتح سطوره بـوحدة الشراء. اكتب 10 فيقرأ المستند 10 كراتين.
- مستند الصرف — فاتورة مبيعات، إذن صرف — يفتح بـوحدة البيع. اكتب 50 فيقرأ 50 قطعة.
- وأي شيء آخر يرجع إلى الوحدة الأساسية(الأصغر).
ومهما كتب المستخدم، يحفظ السطر أيضًا الكمية محوَّلةً إلى الوحدة الأساسية، وهذا الرقم الأساسي هو ما تعمل عليه الأرصدة والتكلفة وأعمار المخزون والحجوزات جميعًا. فاستلام 10 كراتين يُدخل 240 زجاجة إلى المخزن. وبيع 50 زجاجة يُخرج 50. ولا يحوّل أحد شيئًا.
العميل أو المورد يمكنه تجاوز الافتراضي
يحمل العميل والمورد كلٌّ منهما حقل الوحدة الافتراضية، وخياراته الوحدة الأساسية(الأصغر) ووحدة التقارير 1 ووحدة التقارير 2 ووحدة البيع ووحدة الشراء. وحيث يُضبط فإنه يغلب قاعدة المستند نفسه، فتحصل سلسلة السوبر ماركت التي تطلب دائمًا بالكرتونة على كراتين في فواتير مبيعاتها بينما يحصل العميل العابر على قطع. وتُقرأ القيمة من الطرف أولًا، ثم من تصنيفه، وللعميل ثم من العميل الدافع. ويحمل المخزن الفكرة نفسها في حقلي وحدة البيع الافتراضية ووحدة الشراء الافتراضية، ويُستعملان حين لا يضبطها أي من الطرفين.
ماذا يحمل سطر جدول الوحدات أيضًا
كل سطر في جدول الوحدات بالصنف أكثر من مجرد اسم. فبجانب الوحدة والكود والكود الإنجليزي يحمل قواعد بيع تنطبق فقط حين يكون السطر مكتوبًا بتلك الوحدة:
| العمود | ماذا يفعل |
|---|---|
| السعر الافتراضي وأقل سعر واقصي سعر وأقل ربح | حدود السعر لهذه الوحدة |
| أقل كمية بيع | أصغر كمية يجوز بيعها بهذه الوحدة |
| أقل كمية بالمضاعفات | يجعل الحد الأدنى درجةً بدل أن يكون أرضية |
| التشكيلة | يربط الوحدة بخلطة معبأة مسبقًا — راجع ملفات تصنيف الأصناف |
وأقل كمية بيع تعمل بطريقتين في آنٍ واحد، وكلتاهما جديرة بالمعرفة. فإذا فعّل توجيه المستند خيار منع البيع بكمية أقل من أقل كمية بيع في جدول الوحدات للصنف، تعذّر حفظ سطر مبيعات تحت الحد الأدنى أصلًا. وبمعزل عن ذلك، تُرفع الكمية التي يُحاسَب عليها السطر إلى الحد الأدنى: اطلب 3 قطع والحد الأدنى 10 فتُحاسَب على 10، بينما يشحن المخزن 3. وافتح أقل كمية بالمضاعفات فتُقرَّب الكمية المحاسَب عليها إلى المضاعف الصحيح التالي بدلًا من ذلك — اطلب 23 والحد الأدنى 10 فتُحاسَب على 30.
ولأن هذه تعيش لكل وحدة على حدة، يمكن للصنف نفسه أن يحمل حدًا أدنى 1 بالكرتونة و12 بالقطعة.
أين يعيش معدل التحويل فعلًا
صارت الآن ثلاثة أماكن مختلفة قادرة على حمل المعدل بين وحدتين، وهناك رابع للشحنات. وحين يحتاج مستند إلى التحويل، يجرّبها النظام بترتيب ثابت ويقف عند أول نتيجة:
- تحويلات الشحنة — معدل معرَّف لصنف بعينه وشحنة بعينها. ولا يُنظر فيه إلا حين يذكر السطر شحنة.
- تحويلات الصنف نفسه — الجدول الذي ملأته في تبويب الوحدات.
- تحويلات مجموعة الوحدات — من المجموعة المذكورة في مجموعة وحدات الصنف.
- التحويلات القياسية — جداول التفاصيل في الوحدتين نفسيهما.
فالتعريف الأضيق يفوز دائمًا. فيمكن لمجموعة أن تقول «1 كرتونة = 24 قطعة» للتشكيلة كلها، بينما يتجاوزها منتج واحد كبير الحجم بـ12 على بطاقته، وتتجاوزها شحنة تالفة من ذلك المنتج مرة أخرى بـ11.
وتفصيلان يحسمان ما إذا كان المعدل سيُوجَد أصلًا. فالمعدل ثنائي الاتجاه — فالسطر الذي يقول 1 كرتونة = 24 قطعة يحوّل القطع إلى كراتين بالسهولة نفسها — لكنه يجب أن يسمّي زوج الوحدات بعينه المطلوب تحويله، لأن النظام لا يمرّ بمعدل عبر آخر أبدًا. والناتج يُقرَّب إلى عدد خانات كسر الوحدة المحوَّل إليها.
يمكن تضييق المعدلات باللون أو المقاس أو الإصدار
إذا فُتح استعمال الألوان / المقاسات / الإصدارات في تحويل الوحدات في إعدادات سلسلة التوريد، ظهرت أعمدة إضافية في جداول التحويل في كل هذه الشاشات، وصار المعدل الذي يسمّي لونًا أو مقاسًا أو إصدارًا ينطبق فقط على السطور الحاملة لتلك القيمة. أما السطر الذي يُترك فيه الحقل فارغًا فيظل منطبقًا على الجميع. وهكذا يمكن لصنف واحد أن تكون كرتونته للمقاس الصغير أخف منها للمقاس الكبير. وهذه المفاتيح مشروحة في إعدادات خصائص الأصناف.
شاشة تحويل الوحدات

عند هذه النقطة تصير شاشة تحويل وحدات (المخازن ← الإعدادات ← تحويل وحدات) مفهومة. فهي القائمة الواحدة التي يُجمَّع فيها كل معدل عُرِّف في أي مكان آخر — سجل لكل وحدة، ولكل مجموعة، ولوحدات الصنف الرئيسية، ولوحداته الثانية — كلٌّ منها معلَّم في نوع التحويل بـقياسي أو مجموعة أو الوحدة الرئيسية لصنف أو الوحدة الثانية لصنف، ويحمل في الملحوظات Created By System، ومسمّى بكود ما أنشأه.
وهذا يجعلها في أعمال الدعم أسرع شاشة في الوحدة. فبدلًا من فتح عشر بطاقات أصناف لمعرفة سبب تحويل كمية على نحو غريب، فلتر هذه القائمة بالصنف أو بالوحدة واقرأ كل معدل يمكن أن يكون قد انطبق، في مكان واحد.
تستطيع أن تنظر، لكنك في الغالب لا تستطيع أن تلمس
حفظ سجل هنا نوع التحويل فيه شيء غير شحنة مرفوض تمامًا: Could not modify System generated conversions. فعدّل الوحدة أو المجموعة أو الصنف — والسجل هنا يُعاد كتابته من ذلك المصدر في كل حفظ. وحذف المصدر يحذف معه سجل التحويل.
وشحنة هي الاستثناء، وهي الشيء الوحيد الذي وُجدت هذه الشاشة لتتيح لك إنشاءه. فالسجل الجديد يبدأ بنوع شحنة، وتملأ فيه صنف وكود الشحنة والسطور في جدول التحويلات. وهو للحالة التي يختلف فيها المعدل فعلًا من شحنة لأخرى: مصنع ورق بكراته اسميًا 500 كيلوجرام لكن هذه التوريدة بالذات جاء متوسطها 487.
لماذا يصعب تغيير الوحدة الأساسية بعد ذلك
كل كمية سُجّلت يومًا على صنف مخزَّنة محوَّلةً إلى الوحدة الأساسية لذلك الصنف. فإذا غيّرت الوحدة الأساسية لم تتغير تلك الأرقام معها، فيتغير معنى التاريخ كله في صمت: 240 زجاجة مسجَّلة تصير 240 كرتونة.
ولذا يرفض نما. فبمجرد أن يكون على الصنف أي حركة، يفشل تغيير الوحدة الأساسية(الأصغر) برسالة The base unit can not be changed from X to Y in the item Z because the item has N transactions.
والحماية نفسها تغطي المعدل. فإذا تغير معدل وحدة إلى الأساس وكانت هناك حركات مكتوبة بتلك الوحدة، فشل الحفظ برسالة The rate of the unit X was changed from A to B in the item Y, and there are N transactions for this unit and item — مع رسالة ثانية منفصلة إن كانت الوحدة قد استُعملت في أوامر الإنتاج أو قوائم المكونات.
ويمكن رفع كليهما، وكلاهما ينتمي إلى باب التصحيح الاضطراري لا إلى العمل المعتاد:
- السماح بتعديل الوحدة للأصناف التي تم عليها حركة
- السماح بتعديل معامل التحويل لوحدات الأصناف التي تم عليها حركة
وهما مشروحان في إعدادات الأصناف والبيانات الرئيسية. وفتح أي منهما لا يصلح التاريخ المخزَّن — بل يوقف اعتراض النظام فحسب. وإن كانت الوحدة الأساسية خاطئة فعلًا، فالحل الأمين عادةً صنف جديد.
أعطِ الأصناف الجديدة وحدة أساسية دون تفكير
تحمل إعدادات سلسلة التوريد مجموعة الوحدات الأفتراضية فيها مجموعة الوحدات والوحدة الأساسية(الأصغر). وبطاقة الصنف الجديدة تفتح وهي مملوءة بهما بالفعل — وحدات المجموعة مدرجة في جدول الوحدات، والوحدة الأساسية منسوخة في حقول وحدة الشراء ووحدة البيع ووحدتي التقارير — فلا يبقى على من ينشئ الصنف إلا تغيير ما يختلف فعلًا. وهذه المجموعة مشروحة في إعدادات التسعير وقوائم الأسعار.
ويحمل قسم الصنف كذلك مجموعتي وحداته الرئيسية والثانية، ويرثهما الصنف الجديد لحظة اختيارك القسم. وبين الاثنين ينبغي أن تصل أغلب الأصناف إلى الشاشة ووحداتها صحيحة — وهذا أفضل دفاع موجود ضد أن يختار أحدهم وحدة أساسية باستهتار.
الوحدة الثانية
بعض الأصناف تحتاج فعلًا مقياسين لا يتحول أحدهما إلى الآخر. فاللحم يُشترى ويُباع بالوزن لكنه يُعدّ بالقطع، و10 كيلوجرامات ليست «عددًا ما» من الدجاج — فذلك يعتمد على الدجاج نفسه.
افتح له وحدة ثانية في تبويب وحدات الصنف تظهر مجموعة ثانية كاملة — الوحدة الثانية — لها مجموعة الوحدات والوحدة الأساسية(الأصغر) ووحدات الشراء والبيع والتقارير الخاصة بها، وجدول وحداتها وجدول تحويلاتها. وعندها تلتقط سطور المستندات كميتين لكل سطر، كلٌّ منهما محوَّلة إلى أساسها الخاص باستقلال. والوحدة الثانية مطلوبة يفرض إدخال الكمية الثانية بدل تركها فارغة.
والجانبان لا يتكلمان مع بعضهما أبدًا. فلا شيء يحوّل الكيلوجرامات إلى قطع، وهذا هو المقصود بالضبط.
الوحدات التي تكون كميتها قياسًا
كل ما سبق يفترض أنك تعدّ أشياء. وبعض الأعمال لا تعدّ: فالنجار يبيع الألواح المقصوصة بالمتر المربع، ومصنع الألومنيوم يبيع الشيش بالمتر الطولي، وتاجر الزجاج يسعّر بالمساحة ويقص على الطلب.
ولهؤلاء، افتح له أبعاد في التبويب الرئيسي للصنف واضبط نوع الأبعاد على أحادي البعد أو ثنائي الأبعاد أو ثلاثي الأبعاد. عندئذ تعرض سطور المستندات للصنف خانات الطول والعرض والارتفاع، ويصير حقل كمية السطر نفسه غير قابل للتعديل — فالنظام يحسبه. وهو يفعل ذلك افتراضيًا بضرب العدد المُدخَل في كل قياس لا تتجاهله وحدة السطر، وهنا تؤتي مفاتيح تجاهل الطول / العرض / الارتفاع ثمارها.
الصيغة الحسابية
وأحيانًا لا يكون الضرب البسيط هو القاعدة. فالزجّاج يحاسب على مساحة الزجاج زائد بدل حواف ثابت؛ والورشة تحاسب على القصّة بالطول زائد العرض لا الطول في العرض. وشاشة صيغة حسابية (المخازن ← الإعدادات ← صيغة حسابية) هي حيث تكتب القاعدة بدلًا من ذلك.
تحمل الشاشة كودًا وأسماء وحقلًا واحدًا: الصيغة الحسابية. وتكتبها بالحروف L وW وH لطول السطر وعرضه وارتفاعه، مع العمليات الحسابية والأقواس المعتادة — l*w و(l+w)*2 وl*w*h. وحالة الحرف لا تهم، ويجوز ترك الضرب ضمنيًا: فـlw تُقرأ l*w. ويحلل نما ما كتبته في الحقل الثاني الصيغة، ويجرّب تشغيله عند الحفظ؛ فإن لم يُحسب فشل الحفظ برسالة The formula is not correct.
واربطها بصنف بفتح له صيغة حسابية في التبويب الرئيسي للصنف واختيار الصيغة في الصيغة الحسابية. وعندئذ تكون كمية السطر هي العدد المُدخَل مضروبًا فيما تعيده الصيغة لقياسات ذلك السطر. وأي قياس يُترك فارغًا أو صفرًا يُحسب 1، فتتصرف الصيغة ثنائية الأبعاد تصرفًا سليمًا في سطر لا ارتفاع له.
الصيغ لأصناف الخدمات ذات القياسات فقط
يظل الحقلان معطلين ما لم يكن نوع الصنف خدمة و له أبعاد مفتوحًا، وإذا اختل أحدهما مسحهما النظام من جديد. وحفظ صنف يخالف القاعدة يفشل برسالة Calculation Formula must be used with Service Items with dimensions only. ولا يجوز لصنف التجميع أن يحمل صيغة أصلًا. كما يجب أن تكون مجموعة الأبعاد مفعَّلة في الإعدادات المرتبطة بالصنف، وإلا فشل الحفظ مشيرًا إلى ملف الإعدادات.
ولهذا تبدو الآلية غريبة أول الأمر: فهي ليست للبضائع المخزَّنة التي تُباع بالمساحة، بل لـالعمالة والخدمات المسعَّرة على أساس قياس — القص والتحويف والتلميع والتركيب — التي تجلس على المستند نفسه مع الخامة. والقص وما يتصل به مشروح في سيناريوهات متخصصة.
الأبعاد القياسية
وتعالج الشاشة الأخيرة مشكلة مختلفة. فالمصنع الذي يقص على أي مقاس ما زال يشتري خامته بكتالوج ثابت من المقاسات، والمشغّل الذي يكتب 1.20 × 2.40 بينما المصنع لا يشحن إلا 1.22 × 2.44 يكون قد أنشأ في صمت مقاسًا لا وجود له.
وأبعاد قياسية (المخازن ← الملفات ← أبعاد قياسية) قائمة مسمّاة بالمقاسات المسموح بها. أعطها نوع الأبعاد — أحادي البعد أو ثنائي الأبعاد أو ثلاثي الأبعاد — واملأ جدول التفاصيل بسطر لكل مقاس، كلٌّ منه يذكر ط وع ور. والسطور المكررة مرفوضة. ثم يشير الصنف إلى القائمة عبر حقل أبعاد قياسية في تبويبه الرئيسي، ويجب أن يطابق نوع الأبعاد في الصنف نوعَ القائمة، وإلا فشل الحفظ.
وبمجرد الربط، يجب أن يحمل سطر فاتورة الشراء لذلك الصنف قياسات تطابق أحد السطور — فالطول والعرض يجب أن يتطابقا، وفي القائمة ثلاثية الأبعاد الارتفاع كذلك — وإلا رُفض السطر برسالة These Measures are not Standard Measures. وهي أداة ضبط شرائية: تمنع موظف الاستلام من اختراع مقاس لوح لم يبعه لك المورد أصلًا، وتُبقي ملف الأصناف خاليًا من مقاسات شبه مكررة لا يستطيع أحد الاختيار بينها لاحقًا.
أين تظهر الوحدات بعد ذلك
تمتد الوحدات إلى أبعد من بطاقة الصنف. فسطور قوائم الأسعار مسعّرة لكل وحدة، وتستطيع قائمة أسعار المبيعات أن تفرد سطرًا واحدًا إلى سطر لكل وحدة من وحدات الصنف بإجراء فرد بيانات السطر المحدد — وتغطي ذلك صفحة التسعير والعروض والكوبونات. وتحدد إعدادات سلسلة التوريد ما إذا كان إجمالي كمية المستند يُعرض بوحدة الشراء أو وحدة البيع أو الوحدة الأساسية، وما إذا كان سعر قائمة الأسعار يُستعمل فقط حين تطابق وحدة السطر وحدة سطر القائمة. وتحمل ملفات تصنيف الأصناف التشكيلة التي يمكن لسطر الوحدة أن يشير إليها — ملفات تصنيف الأصناف.
أما بطاقة الصنف نفسها وكل ما ليس وحدة، فابدأ من فهم أصناف المخزون.