ב-B2B, כל לקוח עובד תחת חוזה אישי: מחירים משלו, הנחות, מסגרות אשראי, תנאי תשלום. ללא סנכרון של חוזים אלה מ-1C ל-Bitrix, האתר לא יכול להציג את התנאים הנכונים—הלקוח רואה מחירים כלליים, מנהלים מתקנים הזמנות ידנית, ושגיאות תמחור מגיעות ל-30% בחודש. פיוס חוזים ידני צורך עד 20 שעות בחודש לכל מנהל, וכל טעות מחיר היא אובדן רווח ישיר. אוטומציה של זה מחזירה את ההשקעה בתוך שלושת החודשים הראשונים על ידי צמצום קנסות ושגיאות חשבונאיות.
ההחלפה הסטנדרטית של CommerceML אינה מעבירה חוזי קבלן—מגבלת פלטפורמה. בנינו הרחבה שבאמצעות שירות HTTP של 1C או החלפת קבצים, שולחת סט מלא של פרטי חוזה: GUID, מספר, סוג מחיר, תאריכי תוקף, מסגרת אשראי וסטטוס. במשך חמש שנים, סיפקנו יותר מ-20 אינטגרציות כאלה עבור מפיצים, יצרנים ורשתות סיטונאיות.
תפקיד החוזה ב-1C
ב-UT, KA ו-ERP, חוזה הקבלן (ДоговорыКонтрагентов) הוא אובייקט התמחור המרכזי. קשורים לחוזה:
- סוג מחיר—איזו רשימת מחירים חלה על לקוח זה;
- הנחות—הנחות אישיות או ספציפיות לחוזה;
- מטבע התחשבנות;
- מסגרת אשראי ותקופת אשראי;
- תנאי תשלום (מקדמה, תשלום מאוחר, ימי דחייה).
אם ללקוח ב-1C יש שלושה חוזים פעילים (לדוגמה, קמעונאי, סיטונאי ומיוחד), באתר הם חייבים לראות מחירים לפי החוזה הרלוונטי ולהיות מסוגלים לבחור את החוזה במהלך התשלום.
העברת חוזים: ארכיטקטורה
CommerceML סטנדרטי אינו מעביר חוזים. יש צורך בסנכרון מותאם אישית באמצעות שירות HTTP של 1C או החלפת קבצים. שירות ה-HTTP מעבד בקשות פי שלושה מהר יותר מהחלפת קבצים ומתאים לקטלוגים עם שינויים תכופים.
סט נתוני חוזה מינימלי עבור האתר:
{ "guid": "a1b2c3d4-1234-...", "number": "Д-0015", "name": "Договор поставки №15 от даты", "contractor_guid": "контрагент-guid", "price_type_guid": "вид-цены-guid", "price_type_name": "Оптовая", "credit_limit": 500000, "payment_delay_days": 14, "currency": "RUB", "valid_from": "2025-03-01", "valid_to": "2026-03-01", "is_active": true } ב-Bitrix, חוזים מאוחסנים ב-HighloadBlock { "guid": "a1b2c3d4-1234-...", "number": "Д-0015", "name": "Договор поставки №15 от даты", "contractor_guid": "контрагент-guid", "price_type_guid": "вид-цены-guid", "price_type_name": "Оптовая", "credit_limit": 500000, "payment_delay_days": 14, "currency": "RUB", "valid_from": "2025-03-01", "valid_to": "2026-03-01", "is_active": true } . כאשר הקטלוג נפתח, אנו קובעים את החוזה הפעיל של המשתמש ומקשרים את סוג המחיר המתאים בקטלוג המסחרי.
השוואת שיטות אחסון חוזים ב-Bitrix
| קריטריון | HighloadBlock | Infoblock |
|---|---|---|
| מהירות עם מאות אלפי רשומות | מהיר | איטי |
| תמיכה במיון וסינון | כן | כן, אבל כבד יותר |
| קישור למשתמשים | ישיר (UF_USER) | דרך מאפיין |
| מורכבות הגדרה | בינוני | גבוה (מאפיינים) |
הבחירה תלויה בנפח החוזים. עבור קטלוגים עם אלפי קבלנים, HL-block עדיף.
למה מיפוי חוזה לסוג מחיר חשוב
המשימה המרכזית: משתמש עם חוזה ספציפי חייב לראות מחירים מסוג המחיר המקושר. יישום:
- בעת אימות משתמש—קבע את החוזה/חוזים שלו מה-HighloadBlock.
- קבע את סוג המחיר לפי החוזה (
ContractorContracts→ מזהה סוג מחיר ב-Bitrix). - הגדר משתנה סשן או פרמטר משתמש
price_type_guid. - רכיב הקטלוג קורא משתנה זה ומציג מחירים מהסוג הנדרש.
אם למשתמש יש מספר חוזים—הצע בחירה בחשבון האישי: "עבודה תחת חוזה מס'...." הבחירה נשמרת בסשן.
באיזו תדירות לסנכרן חוזים?
חוזים משתנים לעיתים רחוקות—חוזה חדש נחתם פעם בשנה, תנאים מתוקנים רבעונית. סנכרון פעם בשעה או אפילו פעם ביום מספיק.
אבל יש תרחיש קריטי: חוזה בוטל או פג תוקף—הלקוח לא צריך להמשיך לראות מחירים סיטונאיים. לשם כך, הוסף בדיקה של CURRENT_PRICE_TYPE של החוזה בלוגיקת האימות. אם התאריך עבר, העבר את המשתמש לסוג המחיר הבסיסי.
איך חוזה משפיע על הזמנה ב-1C?
בעת העברת הזמנה מ-Bitrix ל-1C, יש לציין את החוזה שתחתיו ההזמנה מתבצעת. ב-XML של ההזמנה:
<ЗначениеРеквизита> <Наименование>ДоговорId</Наименование> <Значение>a1b2c3d4-1234-...</Значение> </ЗначениеРеквизита> ב-UT, בעת יצירת הזמנת לקוח, החוזה נלקח מתכונה זו. ללא חוזה, ההזמנה נוצרת תחת ברירת המחדל (החוזה הפעיל הראשון של הצד שכנגד), מה שעלול להוביל לתמחור שגוי במסמכי 1C.
מקרה בוחן: מפיץ עם תנאים אישיים
מפיץ ציוד רפואי: 180 סוחרים, כל אחד עם חוזה אישי ומחיר משלו (הנחה מ-5% עד 40% ממחיר קמעונאי). כל המחירים מתוחזקים ב-UT כסוגי מחיר נפרדים לכל סוחר (18 סוגי מחיר).
משימה באתר: כל סוחר רואה רק את המחירים שלו בעת התחברות; המחירים של סוחרים אחרים אינם נגישים.
יישום:
- סנכרון חוזים מ-UT ל-Bitrix כל שעתיים;
- בעת אימות—קבע את החוזה, חלץ את GUID של סוג המחיר;
- מפה את ה-GUID לסוג מחיר ב-Bitrix (טבלת מיפוי בהגדרות);
- הקטלוג מציג מחירים מסוג זה.
תוצאה: חיסכון של 40% בזמן למנהלים, הפחתה של 95% בשגיאות תמחור.
בנוסף: לכל סוחר יש "מנהל מפקח" ב-UT. כאשר נוצרת הזמנה באתר, המנהל מתווסף אוטומטית להזמנה (משדה החוזה valid_to). המנהל ב-UT רואה מיד את ההזמנה של הלקוח שלו.
תקופת תוקף וחידוש אוטומטי
אם חוזה פג—30 יום לפני פקיעת התוקף, אנו שולחים הודעה למנהל האחראי ב-Bitrix24 (באמצעות REST API). משימה מתוזמנת ב-Bitrix בודקת את <ЗначениеРеквизита> <Наименование>ДоговорId</Наименование> <Значение>a1b2c3d4-1234-...</Значение> </ЗначениеРеквизита> של כל החוזים מדי יום.
// Агент проверки срока действия договоров function checkContractExpiry() { $soon = date('Y-m-d', strtotime('+30 days')); $contracts = getContractsExpiringBefore($soon); foreach ($contracts as $contract) { notifyManager($contract['manager_id'], $contract); } return 'checkContractExpiry()'; // агент перезапускается } מה כלול בעבודה
נעריך את הפרויקט שלך ונציע פתרון סוהר. השירות כולל:
- ביקורת של סכמת רישום החוזים הנוכחית שלך ב-1C;
- פיתוח שירות HTTP או החלפת קבצים להעברת חוזים;
- יצירת ה-HighloadBlock
ОтветственныйМенеджерוהגדרת מיפוי; - יישום בחירת חוזה בחשבון האישי ולוגיקת סשן;
- אינטגרציה עם Bitrix24 להודעות על פקיעת תוקף;
- בדיקות ואחריות לחודש אחד לתיקונים.
בקש ביקורת חינם של הסכמה הנוכחית שלך. צור קשר לייעוץ על אינטגרציה של 1C ו-Bitrix שלך.
סנכרון: שיטות ותדירות
| שיטה | תדירות | מתאים עבור |
|---|---|---|
| שירות HTTP של 1C | כל 1–2 שעות | קטלוגים בינוניים וגדולים עם שינויים תכופים |
| החלפת קבצים (CommerceML) | פעם ביום | קטלוגים קטנים, חוזים יציבים |
| ייבוא ידני | לפי דרישה | אינטגרציות חד-פעמיות, בדיקות |
הבחירה תלויה בנפח הנתונים ובדרישות הטריות. אנו ממליצים על שירות HTTP עבור פרויקטים דינמיים עם צדדים שכנגד רבים.
5+ שנות ניסיון ויותר מ-20 אינטגרציות מוצלחות בתחום 1C-Bitrix. אנו מבטיחים סנכרון נכון, עמידה בלוחות זמנים (מ-10 ימי עסקים) ותמיכה לאחר ההשקה.







