תארו לעצמכם: ERP מייצר XML עם 120,000 פריטים, 4.5 GB — והמטפל Bitrix PHP קורס לאחר 300 שניות. נשמע מוכר? זה מקרה אמיתי מלקוח שלנו, מפעל לחומרי בניין. זה קורה כאשר CommerceML סטנדרטי אינו מסוגל להתמודד עם סדרות, מאפיינים ומספר יחידות מידה.
הגדרת חילופי נתונים בין 1C:ERP ל-1C-Bitrix דורשת הבנה עמוקה של שתי המערכות; אחרת, סנכרון פריטים, מחירים והזמנות הופך לסיוט. אנו מתמחים בדיוק באינטגרציות לא סטנדרטיות כאלה, ולאחר יותר מ-50 פרויקטים פיתחנו גישה שמבטיחה חילופי נתונים יציבים ללא אובדן נתונים.
אילו בעיות פותר חיבור ההמרה?
מספר יחידות מידה. ב-ERP, פריטים נמכרים ביחידות, באריזות ובמשטחים בו-זמנית. CommerceML מעביר את יחידת המידה הבסיסית, ואת האחרות דרך ЕдиницыИзмерения ב-XML. מודול Bitrix קורא רק את יחידת המידה הבסיסית, אלא אם כן מותאם המטפל OnIBlockElementAdd / OnIBlockElementUpdate.
מאפיינים ווריאציות. ב-ERP, "מאפיין" הוא ממד של פריט (צבע, מידה, מק"ט ספק). ב-Bitrix, אלו הם SKU-ים. המרה סטנדרטית יוצרת SKU-ים אך מאבדת קישורים לערכים מקוננים או לאלפי וריאציות — קובץ ה-XML מתנפח לג'יגה-בייטים, וההמרה נכשלת בזמן הקצוב.
סדרות ומנות. ל-CommerceML אין תג עבור סדרות — יש להעביר אותן דרך ДополнительныеРеквизиты ולעבד אותן באמצעות מטפל מותאם.
איך אנחנו מגדירים את הסנכרון: שלב אחר שלב
- ביקורת על תצורת ה-ERP: קביעת מבנה הפריטים, נוכחות סדרות, מנות, מאפיינים נוספים. בדיקת גרסת ה-ERP והגדרות צומת הסנכרון.
- הגדרת ERP: ציון כתובת האתר, פרמטרי הרשאה, מסנן פריטים (ארגון, מחסן, סוג מחיר), הפעלת העברת מאפיינים, יחידות, סדרות. הגדרת לוח זמנים למשימה מתוזמנת.
- הגדרת Bitrix: במודול "החלפת נתונים עם 1C", בחירת סוג הסנכרון "קטלוג + קטלוג מסחרי", הפעלת "אל תעדכן קישור לקבוצה" (אם קיימים קישורים ידניים), מיפוי מאפיינים:
ДополнительныеРеквизиты→ מאפייני אינפובלוק. - התאמה אישית של מטפלים: כתיבת מטפלי אירועים לקריאת שדות נוספים, תיעוד התנגשויות מחירים והחרגת כפילויות.
- בדיקה על עותק של מסד הנתונים: הפעלת סנכרון מלא ומצטבר, אימות נכונות הנתונים.
- ניטור ותמיכה: לאחר המעבר לפרודקשן, הגדרת תיעוד והתראות.
מדוע חילופי CommerceML סטנדרטיים אינם מתאימים ל-ERP?
המודול הסטנדרטי של 1C-Bitrix (bitrix.catalog) מיועד לתצורת "1C:Trade Management" הטיפוסית. ל-1C:ERP יש תת-מערכות רבות שאינן סטנדרטיות: חשבונאות סריאלית, מנות, מבנה ארגוני מורכב.
כפי שמציינת התיעוד של 1C-Bitrix: "תצורות לא סטנדרטיות דורשות שינוי של מודול החילופים." אנו מאשרים זאת בפועל — כל פרויקט דורש התאמה אישית.
כיצד להבטיח ארכיטקטורת החלפה אמינה?
עבור ERP עם קטלוג של 50,000+ פריטים, מומלץ לפצל החלפות מלאות והחלפות מצטברות:
| סוג החלפה | תדירות | תוכן |
|---|---|---|
| מלאה | פעם ביום (בלילה) | כל הפריטים, הקבוצות, המאפיינים |
| מלאי + מחירים | כל 15–30 דקות | רק רשומות שהשתנו |
| הזמנות (→ ERP) | כל 5 דקות | הזמנות חדשות ומשתנות מ-Bitrix |
החלפה מצטברת מהירה פי 30 מהחלפה מלאה מכיוון שהיא מעבירה רק את הדלתא.
מה לעשות עם שגיאות אופייניות?
| שגיאה | סיבה | פתרון |
|---|---|---|
| פריטים כפולים | אי-התאמת GUID: נוצר מחדש לאחר שחזור ERP | השווה XML_ID ב-b_iblock_element עם GUID מייצוא הבדיקה |
| החלפה לא מתחילה | קידוד: ERP שולח windows-1251, Bitrix מצפה ל-UTF-8 | בדוק את כותרת Content-Type של תגובת HTTP |
| Timeout | XML ענק (4+ GB) | הפעל ארכיון ZIP; הגדר max_execution_time = 0 ו-memory_limit = 2048M עבור cron |
מקרה: אינטגרציית ERP עבור מפעל ייצור (מהפרקטיקה שלנו)
הלקוח שלנו — מפעל לחומרי בניין, 120,000 פריטים, 4 מחסנים. הבעיה: החלפה מלאה יצרה XML בנפח 4.5 GB, ומטפל ה-PHP של Bitrix קרס לאחר 300 שניות.
הפתרון בשלושה שלבים:
- בצד ה-ERP הגדרנו העברה של פריטים "פעילים" בלבד (סינון לפי המאפיין "פרסום באתר"). הנפח ירד ל-800 MB.
- הפעלנו מצב קריאת קבצים מהצד (ארכיון ZIP בהגדרות הצומת): ה-ERP אורז את ה-XML ל-zip, ו-Bitrix פורק אותו תוך כדי. זמן ההעברה ירד פי 3.
- ב-
php.iniעבור תהליך ה-cron הגדרנוmax_execution_time = 0ו-memory_limit = 2048M. החלפה מלאה — 18 דקות, אינקרמנטלית — 40 שניות.
בנוסף: כתבנו מטפל עבור האירוע OnIBlockElementBeforeUpdate כדי לתעד קונפליקטים — כאשר מנהל שינה מחיר ידנית באתר, וה-ERP מנסה לדרוס אותו. הקונפליקטים נכתבים לטבלה נפרדת; דוח יומי נשלח לטכנולוג.
מה כלול בהגדרת חיבור החלפה?
- ביקורת (Audit) של תצורת 1C:ERP
- הגדרת צומת ההחלפה ב-ERP ומודול ההחלפה ב-Bitrix
- התאמה אישית של מטפלי אירועים (event handlers) לשדות לא סטנדרטיים
- בדיקות על עותק של מסד הנתונים (DB)
- תיעוד והדרכה עבור המנהלים שלך
- תמיכה לאחר ההשקה (חודש אחד)
לוח זמנים ועלות
פרויקט טיפוסי אורך 3–8 ימי עבודה. לוח הזמנים המדויק תלוי בהיקף הפריטים ובמספר הישויות הלא-סטנדרטיות. כדי להעריך את התצורה שלכם, צרו קשר — ננתח את המשימה ונציע פתרון.
יש לנו ניסיון של למעלה מ-10 שנים באינטגרציה של 1C ו-Bitrix. השלמנו יותר מ-50 פרויקטים, מחנויות מקוונות קטנות ועד מפעלי ייצור גדולים. הגדירו את חילופי ההזמנות, והנתונים שלכם יסונכרנו ללא שגיאות. צרו קשר לקבלת ביקורת של התצורה שלכם — נכין פתרון אישי.

