תיאור השירות: ניהול מלאי ב-1C-Bitrix: אופטימיזציה של התאמת מלאי
התאמת המלאי נשברת בשלב הבדיקה: המערכת מציגה 50 יחידות, בפועל — 47. מישהו מתקן את היתרה ידנית דרך b_catalog_product, תוך עקיפת זרימת המסמכים. כעבור שבוע, הפערים מצטברים שוב, ההיסטוריה נעלמת. מצב זה מתרחש בכל מחסן שני. בפרויקט אחד (רשת של 12 מחסנים), הצלחנו להפחית את זמן הספירה ב-60% — יישמנו סריקה מדורגת עם מסוף נייד. מספר הפערים הממוצע ירד מ-8% ל-1.5%. הלקוחות שלנו חוסכים בדרך כלל 5,000–15,000 דולר בשנה בזכות צמצום פערי מלאי. אנו פותרים בעיה זו על ידי הגדרת מלאי ב-1C-Bitrix במפתח מלא — עם ביקורת מלאה, איפוס אוטומטי, ואינטגרציה עם 1C. אנו מספקים הגדרת מלאי מלאה של Bitrix, כולל קונפיגורציה של סוגי מסמכי מלאי של Bitrix, תהליכי ביצוע, והתאמת מלאי של Bitrix. המומחיות שלנו מכסה עודפים וחסרים ב-Bitrix, מלאי מחסן ב-Bitrix, והתאמת מלאי ב-Bitrix.
כיצד פועל מנגנון המלאי ב-Bitrix
מלאי ב-Bitrix הוא מסמך מסוג I ב-b_catalog_docs. ההבדל מקבלה/הוצאה: השורות מציינות לא את הדלתא, אלא את הכמות בפועל. המערכת מחשבת בעצמה את ההפרש מול היתרות החשבונאיות ומחילה את ההתאמה בעת הביצוע. לפי תיעוד 1C-Bitrix, הקבוע TYPE_STORE_ADJUSTMENT משמש ליצירה.
שדות של b_catalog_docs למלאי: DOC_TYPE = 'I', STORE_FROM ו-STORE_TO מצביעים בו-זמנית על אותו מחסן (המלאי מקושר למחסן ספציפי), STATUS.
שורות ב-b_catalog_docs_element: AMOUNT — הכמות שנספרה בפועל, AMOUNT_RESERVED — לא בשימוש במהלך המלאי. בעת הביצוע, המערכת קוראת את AMOUNT הנוכחי מ-b_catalog_store_product עבור מחסן זה, מחשבת את ההפרש, ומחילה אותו.
יצירת מסמך מלאי:
$result = \Bitrix\Catalog\StoreDocumentTable::add([ 'DOC_TYPE' => \Bitrix\Catalog\StoreDocumentTable::TYPE_STORE_ADJUSTMENT, 'STATUS' => 'N', 'STORE_TO' => 1, 'TITLE' => 'Инвентаризация ' . date('d.m.Y'), 'DATE_DOCUMENT' => new \Bitrix\Main\Type\DateTime(), ]); $result = \Bitrix\Catalog\StoreDocumentTable::add([ 'DOC_TYPE' => \Bitrix\Catalog\StoreDocumentTable::TYPE_STORE_ADJUSTMENT, 'STATUS' => 'N', 'STORE_TO' => 1, 'TITLE' => 'Инвентаризация ' . date('d.m.Y'), 'DATE_DOCUMENT' => new \Bitrix\Main\Type\DateTime(), ]); — קבוע עבור סוג TYPE_STORE_ADJUSTMENT.
איסוף יתרות בפועל
הבעיה עם מלאי ב-Bitrix היא היעדר מנגנון מובנה לסריקה מדורגת של המחסן. הממשק הסטנדרטי דורש הזנת כל הפריטים בבת אחת. עבור מחסנים גדולים, זה לא נוח.
הפתרון הוא יצירת מסמך בסטטוס I והוספת שורות אליו ככל שהספירה מתקדמת. כל עוד המסמך הוא טיוטה, הוא אינו משפיע על היתרות. שורות מתווספות דרך N. שורות שכבר נוספו מתעדכנות דרך \Bitrix\Catalog\StoreDocumentElementTable::add() לפי update().
כדי לקבל רשימה של כל המוצרים במחסן עם יתרות חשבונאיות נוכחיות:
$storeItems = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['STORE_ID' => 1, '>AMOUNT' => 0], 'select' => ['PRODUCT_ID', 'AMOUNT', 'QUANTITY_RESERVED'], 'order' => ['PRODUCT_ID' => 'ASC'], ]); רשימה זו משמשת כבסיס לטופס מודפס לספירה חוזרת. לאחר הספירה הפיזית, הכמויות בפועל מוזנות לשורות המסמך.
מדוע יש לציין יתרות אפס במפורש?
אם במהלך המלאי מתגלות 0 יחידות בפועל, יש להוסיף את השורה בכל זאת למסמך עם ID. ללא זה, המוצר יישאר עם היתרה החשבונאית הקודמת. רבים שוכחים זאת — במיוחד בעת ייבוא יתרות בפועל מ-Excel. מלאי אוטומטי באמצעות סוכן מהיר פי 4 מהזנה ידנית דרך הממשק הניהולי.
הוספה אוטומטית של שורות אפס עבור כל מוצרי המחסן:
// Получить все товары склада $existing = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['STORE_ID' => $storeId, '>AMOUNT' => 0], 'select' => ['PRODUCT_ID'], ])->fetchAll(); // Добавить нулевые строки для отсутствующих в документе foreach ($existing as $item) { if (!in_array($item['PRODUCT_ID'], $scannedProductIds)) { \Bitrix\Catalog\StoreDocumentElementTable::add([ 'DOC_ID' => $docId, 'ELEMENT_ID' => $item['PRODUCT_ID'], 'STORE_TO' => $storeId, 'AMOUNT' => 0, ]); } } ביצוע וחישוב פערים
בעת קריאה ל-$storeItems = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['STORE_ID' => 1, '>AMOUNT' => 0], 'select' => ['PRODUCT_ID', 'AMOUNT', 'QUANTITY_RESERVED'], 'order' => ['PRODUCT_ID' => 'ASC'], ]); עבור מסמך מסוג AMOUNT = 0, המערכת עבור כל שורה:
- קוראת את היתרה החשבונאית הנוכחית מ-
// Получить все товары склада $existing = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['STORE_ID' => $storeId, '>AMOUNT' => 0], 'select' => ['PRODUCT_ID'], ])->fetchAll(); // Добавить нулевые строки для отсутствующих в документе foreach ($existing as $item) { if (!in_array($item['PRODUCT_ID'], $scannedProductIds)) { \Bitrix\Catalog\StoreDocumentElementTable::add([ 'DOC_ID' => $docId, 'ELEMENT_ID' => $item['PRODUCT_ID'], 'STORE_TO' => $storeId, 'AMOUNT' => 0, ]); } }. - משווה אותה לכמות בפועל (
\Bitrix\Catalog\Document\DocManager::conductDocument($docId)משורת המסמך). - אם בפועל פחות — יוצרת הוצאה (מקטינה את
I). - אם יותר — יוצרת קבלה (מגדילה את
b_catalog_store_product). - מעדכנת את סך
AMOUNTב-AMOUNT.
מוצרים שאינם מופיעים בשורות המסמך אינם מושפעים מהמלאי. זה מאפשר מלאי חלקי — רק קטגוריה מסוימת או אזור במחסן.
היסטוריית תיקונים
לאחר ביצוע המלאי, המסמך ב-AMOUNT נשאר עם QUANTITY ומשמש כרשומה היסטורית. לביקורת פערים, נוח לשאול מסמכים לתקופה עם ההפרש בין הכמות החשבונאית לכמות בפועל — זה ידרוש JOIN עם b_catalog_product בזמן הביצוע, שאינו נשמר ב-Bitrix הסטנדרטי. אם יש צורך בביקורת מלאה, אנו מוסיפים טבלת תמונת מצב מותאמת אישית של יתרות לפני הביצוע.
מה כלול בעבודה
אנו מספקים פתרון אוטומציה מלא למלאי. הנה מה שאתה מקבל:
- תיעוד: הוראות מפורטות לרואי חשבון ולמנהלי מחסן.
- גישה: מודולים מותאמים אישית ונקודות קצה API עבור צוות הפיתוח שלך.
- הדרכה: עד שעתיים של הדרכה מקוונת לצוות.
- תמיכה: תיקוני באגים מובטחים תוך 3 חודשים מההשקה.
| שלב | מה אנחנו עושים | לוח זמנים |
|---|---|---|
| אנליטיקה | לימוד תוכנית החשבונאות הנוכחית, זיהוי פערים | 1-2 ימים |
| עיצוב | פיתוח ארכיטקטורה של מודולים מותאמים אישית | 2-3 ימים |
| פיתוח | כתיבת סוכנים, הוספת תמונות מצב, חידוד API | מ-5 ימים |
| בדיקות | בדיקה על נתונים חיים, תיקון באגים | 2-3 ימים |
| תיעוד | הכנת הוראות לרואי חשבון ולמנהלי מחסן | יום אחד |
| הדרכה | הדגמת הממשק המעודכן | יום אחד |
| תמיכה | הבטחת תיקוני באגים תוך 3 חודשים | כלול |
טעויות נפוצות וכיצד למנוע אותן
| טעות | פתרון |
|---|---|
| דילוג על יתרות אפס | הוספה אוטומטית של שורות עם AMOUNT=0 עבור כל מוצרי המחסן |
| מלאי על מספר מחסנים במסמך אחד | יצירת מסמך נפרד לכל מחסן |
| חוסר בהיסטוריית פערים | יישום טבלת תמונת מצב מותאמת אישית לפני הביצוע |
| התאמה ידנית של טבלה | חסימת גישה ישירה באמצעות טריגרים והרשאות |
האצת מלאי במחסנים גדולים
עבור מחסנים עם אלפי פריטים, הממשק הסטנדרטי אינו מתאים. אנו מיישמים סריקה מדורגת: המסמך נוצר בסטטוס טיוטה, שורות מתווספות בקבוצות דרך מסוף נייד או ייבוא Excel. לאחר סיום הספירה, המסמך מבוצע בלחיצה אחת. זה מפחית את זמן המלאי פי 3–4.
למה לבחור בנו
במשך למעלה מ-8 שנים אנו מפתחים ומתחזקים פרויקטים על 1C-Bitrix. במהלך תקופה זו, יישמנו יותר מ-50 מערכות מלאי עבור רשתות קמעונאיות, מחסנים סיטונאיים ומפעלי ייצור. הניסיון שלנו מאושר על ידי תעודות ומקרי הצלחה.
אנו מוכנים להגדיר מלאי ב-1C-Bitrix עבור המשימות שלך. הזמינו ייעוץ — נעריך את הפרויקט תוך יום אחד ונציע את הפתרון האופטימלי. קבלו ניהול מלאי יציב ללא תיקונים ידניים.







