תארו לעצמכם: מנהל צריך לראות עסקאות שבהן סך התשלומים ב-30 הימים האחרונים נמוך מ-50% מסכום העסקה. או חברות שיש להן לפחות עסקה אחת בשלב "משא ומתן" עם סכום > 1,000,000. הפילטר הסטנדרטי של Bitrix24 לא יכול לאסוף נתונים מישויות מקושרות או להריץ שאילתות משנה. אנו מפתחים פילטרים מותאמים אישית ל-Bitrix24 שפותרים משימות אלו—מסינון מצרפי ועד אינטגרציה עם 1C. נבחן את הפרויקט שלכם תוך יום אחד, פשוט צרו קשר.
פיתוח הפילטרים המותאמים אישית שלנו ל-Bitrix24 מתמקד בסינון מצרפי, סינון ישויות מקושרות ושאילתות CRM מורכבות באמצעות REST API של Bitrix24. זה מאפשר דוחות והגדרות מוקדמות מתקדמות שאינן זמינות כברירת מחדל.
כיצד הפילטר הסטנדרטי עובד ב-Bitrix24
ב-Bitrix24, רכיב ה-JS BX.Main.Filter אחראי על הסינון. הוא מציג את הפאנל, אוסף את קלט המשתמש ומעביר אותו למטפל בקצה האחורי. בגרסה העצמאית (self-hosted), הפילטר עובד עם מחלקות ORM: \Bitrix\Crm\DealTable, \Bitrix\Crm\ContactTable. כל שדה ממופה לעמודה בישות ORM. בגרסת הענן, הסינון עובר דרך REST API—הפרמטר filter בשיטות כמו crm.deal.list, crm.item.list. האופרטורים הנתמכים: =, !, <, >, <=, >=, %, מערך ערכים (IN). לא נתמכים: קיבוץ תנאי AND/OR ברמת הפילטר, פונקציות מצרפיות, שאילתות משנה.
למה הפילטר הסטנדרטי לא מספיק
תהליכים עסקיים דורשים בחירה לפי מדדים: "באיחור של יותר מ-7 ימים", "לקוחות ללא פעילות במשך חודש", "עסקאות עם חובות ב-1C". ללא פילטר מותאם אישית, מנהלים מייצאים נתונים ידנית ל-Excel או מבזבזים שעות על בקשות אצווה. פילטר מותאם אישית הופך את העבודה הזו לאוטומטית ומקצר את זמן החיפוש לשניות.
ארכיטקטורה של פילטר מותאם אישית
פילטר מותאם אישית הוא יישום REST עם שלוש שכבות:
-
ממשק הפילטר—הממשק שלכם ב-iframe (מיקום
LEFT_MENUאוCRM_*_LIST_TOOLBAR). המשתמש מגדיר פרמטרים: תקופה, סף סכום, סוג ישות. -
מטפל בקצה האחורי—השרת שלכם שמקבל פרמטרים, מריץ שאילתה מורכבת ומחזיר רשימת מזההים של פריטים תואמים.
-
הצגת תוצאות—הנתונים המסוננים מוצגים ברשימה מותאמת אישית או מועברים חזרה לרשימה הסטנדרטית דרך פילטר מוגדר מראש.
השוואת גישות סינון
| קריטריון | פילטר סטנדרטי | פילטר מותאם אישית |
|---|---|---|
| צבירה על ישויות מקושרות | לא | כן (בקצה האחורי) |
| שאילתות משנה | לא | כן (SQL או שרשרת REST) |
| שמירה במטמון | רק ברמת מסד הנתונים | Redis / בצד השרת עם TTL |
| אינטגרציה עם מערכות חיצוניות | לא | דרך REST API או SQL ישיר |
| ביצועים על 10,000 רשומות | ~100 שניות (אצווה) | <1 שנייה (עם מטמון) |
פילטר מותאם אישית מהיר עד פי 50 מהפילטר הסטנדרטי על נפחים גדולים.
איך ליישם: סינון לפי מצרפים ב-Bitrix24
בצעו את השלבים הבאים כדי ליישם פילטר מצרפי מותאם אישית:
-
איסוף נתונים: שליפת עסקאות פעילות דרך
crm.deal.listעם פילטרSTAGE_SEMANTIC_ID=P. עבור כל עסקה, שליפת פריטי מוצר והיסטוריית תשלומים דרךcrm.timeline.listאו שדה מותאם אישית עם סכומי תשלום. -
ביצוע צבירה בקצה האחורי: על השרת שלכם, חישוב
процент_оплаты = сумма_оплат_30дней / сумма_сделки * 100 если процент_оплаты < 50 → включить в результат. אםID, כללו את העסקה בקבוצת התוצאות. -
שמירת תוצאות במטמון: אחסון התוצאה ב-Redis עם TTL של 15–30 דקות כדי למנוע חישובים חוזרים בבקשות סינון עוקבות.
-
הצגת מזההים מסוננים: העברת רשימת מזההי העסקאות המסוננים לממשק או יצירת פילטר מוגדר מראש
BX24.openPath('/crm/deal/list/?apply_filter=Y&ID[]=' + filteredIds.join('&ID[]='));ברשימה הסטנדרטית באמצעותcrm.deal.list.
גישה זו מנצלת צבירה בצד השרת ועדכוני מטמון מצטברים דרך webhooks (COMPANY_ID) לביצועים אופטימליים. באמצעות דה-נורמליזציה ותצוגות מהותיות (materialized views), אנו משיגים זמני תגובה של פחות משנייה גם על 10,000+ רשומות.
סינון לפי ישויות מקושרות
תרחיש: מצאו חברות שיש להן לפחות עסקה אחת בשלב "משא ומתן" עם סכום > 1,000,000. בפילטר החברות הסטנדרטי, אין שדות עסקה. פתרון: 1) בקשו crm.company.list עם פילטר לפי שלב וסכום → קבלו filter: {ID: uniqueCompanyIds}; 2) מזההים ייחודיים → מערך לפילטר חברות; 3) בקשו var presets = { overdue_7: {'>DATE_CLOSE': formatDate(-7), 'STAGE_SEMANTIC_ID': 'P'}, vip_inactive: {'UF_CRM_VIP': 1, '<DATE_MODIFY': formatDate(-30)}, no_tasks: {} // серверная логика }; function applyPreset(name) { loadFilteredData(presets[name]); } עם tasks.task.list. בקצה האחורי, זו שאילתת SQL אחת עם JOIN; דרך REST, זו שרשרת של 2–3 בקשות.
הגדרות מוקדמות של פילטר מותאם אישית
הגדרות מוקדמות שומרות תנאים בשימוש תכוף: "באיחור > 7 ימים", "לקוחות VIP ללא פעילות", "עסקאות ללא משימות". ל-REST API אין שיטה ליצירת הגדרות מוקדמות סטנדרטיות באופן תוכנתי, ולכן אנו מיישמים ממשק מותאם אישית עם כפתורים:
процент_оплаты = сумма_оплат_30дней / сумма_сделки * 100 если процент_оплаты < 50 → включить в результат ההגדרה המוקדמת "עסקאות ללא משימות" דורשת בקשת אצווה UF_CRM_TASK עם פילטר onBuildFilterFields עבור כל עסקה—נפתרת עם צבירה בצד השרת.
ביצועים ומגבלות
מגבלות REST API: 2 בקשות בשנייה, 50 פקודות באצווה. עבור פילטר על 10,000 עסקאות:
| גישה | בקשות | זמן |
|---|---|---|
| בקשות רציפות של 50 | 200 | ~100 שניות |
| אצווה של 50 פקודות | 4 בקשות אצווה | ~8 שניות |
| מטמון שרת + עדכון מצטבר | 1–2 בקשות | <1 שנייה |
פרטי מטמון שרת
מטמון בצד השרת עם סנכרון תקופתי דרך webhooks (onBuildFilterQuery) או לפי לוח זמנים הוא הגישה היחידה שעובדת בסביבת ייצור. הנתונים מתעדכנים באופן מצטבר: כאשר עסקה משתנה, ה-webhook מבטל את המטמון, והבקשה הבאה מחשבת רק את הרשומות שהשתנו. זה מפחית את העומס על ה-API ומאיץ את הסינון.גרסה עצמאית: פילטרים דרך ORM
ב-Bitrix24 עצמאי, פילטר מותאם אישית מיושם ברמת PHP—הרחבת הפילטר הסטנדרטי עם שדות חדשים דרך האירוע onBuildFilterFields. המטפל onBuildFilterQuery משנה את שאילתת ה-SQL. זה יותר יעיל מ-REST אך דורש גישה לשרת.
מה כלול בעבודה
- אנליטיקה: חקר הלוגיקה העסקית ודרישות הסינון.
- עיצוב: ארכיטקטורת ממשק/קצה אחורי, תוכנית מטמון.
- פיתוח: לוגיקה בצד השרת, אינטגרציה עם REST API / ORM, יישום הגדרות מוקדמות.
- בדיקות: בדיקות עומס על הנתונים שלכם, אימות דיוק הבחירה.
- תיעוד: תיאור הפילטרים, מדריך מנהל.
- תמיכה: חודש לאחר המסירה—תיקונים וייעוץ.
לוחות הזמנים נעים בין 5 ל-20 ימים בהתאם למורכבות. יש לנו ניסיון של 10+ שנים ב-Bitrix24 ומומחים מוסמכים—אנו מבטיחים איכות ועמידה בלוחות זמנים. ללא פילטר מותאם אישית, אתם מבזבזים זמן משמעותי על עיבוד ידני—הפיתוח מחזיר את עצמו תוך מספר חודשים. השקעה אופיינית של $1,000–$5,000 מבטלת עבודה ידנית של $500 בחודש, ומניבה החזר השקעה תוך 2–10 חודשים. השקעה זו בפילטר מותאם אישית של $2,000 חוסכת בדרך כלל $500 בכל חודש, ומניבה החזר השקעה של 4 חודשים. זה מאפשר בניית דוחות Bitrix24 מורכבים שאינם זמינים בכלים סטנדרטיים. צרו קשר להערכת פרויקט. קבלו ייעוץ.







