דפים מותאמים אישית ב-1C-Bitrix: בקרי D7 וניתוב

כשדפים סטנדרטיים לא מספיקים: בעיה אמיתית בפרויקט אחד, היינו צריכים ליצור ממשק לניהול תוכניות שותפים עם חוקים גמישים. רכיבי Bitrix הסטנדרטיים לא התאימו – נדרשה לוגיקה עסקית מורכבת עם הרשאות גישה מותאמות אישית ואינטגרציה עם API חיצוני. בנייה ידנית
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
דפים מותאמים אישית ב-1C-Bitrix: בקרי D7 וניתוב
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    879
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

כשהעמודים הסטנדרטיים לא מספיקים: בעיה אמיתית

בפרויקט אחד, היינו צריכים ליצור ממשק לניהול תוכניות שותפים עם חוקים גמישים. רכיבי Bitrix הסטנדרטיים לא התאימו—לוגיקה עסקית מורכבת עם זכויות גישה מותאמות אישית ואינטגרציה עם API חיצוני הייתה נדרשת. בנייה ידנית של קבצי אדמין הייתה מובילה לכפילות קוד ולבעיות עדכון. בחרנו בגישת D7—בקרים עם ניתוב, הגנת CSRF מובנית, וארכיטקטורה מודולרית. הפיתוח ארך 5 ימים במקום השבועיים הצפויים, וחסך חלק משמעותי מהתקציב עקב הפחתת זמן עבודה חוזרת. המהנדסים שלנו מחזיקים בתעודות "1C-Bitrix" ועובדים עם D7 מאז השקתו. פנו אלינו לתוצאות דומות.

למה לבחור בבקר MVC ב-Bitrix?

בקרים מבטלים קוד תבניתי: בדיקות גישה דרך prefilters, CSRF אוטומטי, תמיכה ב-JSON, וניהול סשנים. בקובץ אדמין קלאסי, אתה קורא ידנית ל-bitrix_sessid_post() ובודק זכויות. הניסיון של הצוות שלנו (מעל 50 פרויקטי Bitrix) מראה שמעבר לבקרים מקצר את זמן הפיתוח ב-1–2 ימים לכל עמוד. אנו מבטיחים יציבות במהלך עדכוני ליבה—כל ה-prefilters והניתובים מנוהלים בקוד, לא בקבצים. בנוסף, עלויות התחזוקה יורדות ב-20–30% הודות למבנה אחיד.

איך ליצור עמוד D7 מותאם אישית? שתי גישות

קובץ אדמין קלאסי (/bitrix/admin/my_page.php)—האפשרות הפשוטה ביותר לכלי עזר. הוא אינו דורש הגדרת ניתוב, אך כל בדיקות ה-CSRF וההרשאות מוטלות על המפתח.

<?php require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"); use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; Loader::includeModule('my.module'); // Проверка прав if (!$APPLICATION->IsAdminPage() || !\CMain::GetUserRight("main") >= "S") { $APPLICATION->AuthForm("Доступ запрещён"); } $APPLICATION->SetTitle("Мой инструмент"); require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"); // Вывод содержимого страницы ?> <form method="post" action="<?= $APPLICATION->GetCurPage() ?>"> <?= bitrix_sessid_post() ?> <!-- поля формы --> <input type="submit" value="Выполнить"> </form> <?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"); 

MVC דרך בקר—הדרך הנכונה לעמודים עם לוגיקה.

namespace MyProject\Controllers; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Engine\ActionFilter; class ReportController extends Controller { public function configureActions(): array { return [ 'getReport' => [ 'prefilters' => [ new ActionFilter\Authentication(), new ActionFilter\HttpMethod(['GET', 'POST']), new ActionFilter\Csrf(), ], ], ]; } public function getReportAction(int $periodDays = 30): array { $data = \MyProject\Services\ReportService::build($periodDays); return ['data' => $data, 'total' => count($data)]; } } 

הבקר מעבד בקשות אוטומטית, בודק את אסימון ה-CSRF, ומחזיר JSON. הניתוב נרשם דרך <?php require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"); use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; Loader::includeModule('my.module'); // Проверка прав if (!$APPLICATION->IsAdminPage() || !\CMain::GetUserRight("main") >= "S") { $APPLICATION->AuthForm("Доступ запрещён"); } $APPLICATION->SetTitle("Мой инструмент"); require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"); // Вывод содержимого страницы ?> <form method="post" action="<?= $APPLICATION->GetCurPage() ?>"> <?= bitrix_sessid_post() ?> <!-- поля формы --> <input type="submit" value="Выполнить"> </form> <?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"); .

מדריך שלב-אחר-שלב: יצירת בקר לעמוד מותאם אישית

  1. הגדר את מרחב השמות ואת מחלקת הבקר, תוך הרחבה של namespace MyProject\Controllers; use Bitrix\Main\Engine\Controller; use Bitrix\Main\Engine\ActionFilter; class ReportController extends Controller { public function configureActions(): array { return [ 'getReport' => [ 'prefilters' => [ new ActionFilter\Authentication(), new ActionFilter\HttpMethod(['GET', 'POST']), new ActionFilter\Csrf(), ], ], ]; } public function getReportAction(int $periodDays = 30): array { $data = \MyProject\Services\ReportService::build($periodDays); return ['data' => $data, 'total' => count($data)]; } } .
  2. יישם את \Bitrix\Main\Routing\Router::getInstance()->add(), תוך ציון prefilters לזכויות ו-CSRF.
  3. צור מתודות פעולה (לדוגמה, \Bitrix\Main\Engine\Controller, configureActions()) עם אימות פרמטרים.
  4. רשום את הניתוב ב-getListAction או דרך saveAction.
  5. הגדר זכויות גישה עם local/routes.php או מסננים מותאמים אישית.
  6. שלב ממשק משתמש: השתמש ב-Router::add() לרשימות, ב-ActionFilter\Permission לטפסים.

מה השימוש בבקר MVC ב-Bitrix מביא

בקרים מבטלים קוד תבניתי: בדיקות גישה דרך prefilters, CSRF אוטומטי, תמיכה ב-JSON, וניהול סשנים. בקובץ אדמין קלאסי, אתה קורא ידנית ל-CAdminList ובודק זכויות. הניסיון של הצוות שלנו (מעל 50 פרויקטי Bitrix) מראה שמעבר לבקרים מקצר את זמן הפיתוח ב-1–2 ימים לכל עמוד. אנו מבטיחים יציבות במהלך עדכוני ליבה—כל ה-prefilters והניתובים מנוהלים בקוד, לא בקבצים.

עימוד וממשק משתמש: אינטגרציה עם D7

לרשימות נתונים השתמש ב-CAdminForm:

use Bitrix\Main\UI\PageNavigation; $nav = new PageNavigation('page'); $nav->allowAllRecords(false) ->setPageSize(20) ->initFromUri(); $result = \MyProject\Storage\OrderLogTable::getList([ 'select' => ['*'], 'order' => ['ID' => 'DESC'], 'count_total' => true, 'offset' => $nav->getOffset(), 'limit' => $nav->getLimit(), ]); $nav->setRecordCount($result->getCount()); 

לדפי רשימת אדמין, השתמש בממשק מוכן דרך bitrix_sessid_post() ו-\Bitrix\Main\UI\PageNavigation.

השוואת גישות: קובץ אדמין מול בקר

קריטריון קובץ אדמין קלאסי בקר MVC
אבטחה CSRF ידני Prefilters מובנים
תחזוקה קשה יותר מודולרי
מהירות פיתוח מהיר למשימות פשוטות מהיר יותר למשימות מורכבות
עדכוני ליבה סיכון לשבירה יציבות

לוחות זמנים ועלות

סוג משימה זמן משוער
עמוד אדמין פשוט (טופס + הצגת נתונים) 2–3 ימים
עמוד עם רשימה, עימוד, מסנן, פעולות 4–7 ימים
ממשק CRUD מלא לישות מותאמת אישית עם זכויות ויומנים 1.5–2.5 שבועות

העלות מחושבת באופן אישי. בממוצע, חיסכון בזמן בתחזוקה עומד על 20–30% בהשוואה לגישה הקלאסית. למידע נוסף על יתרונות D7, ראה תיעוד רשמי של 1C-Bitrix וב-ויקיפדיה.

מה כלול בעבודה

  • עיצוב ארכיטקטורה (בקרים, ניתובים, תבניות)
  • יישום לוגיקה עסקית על D7 עם מטמון וזכויות גישה
  • אינטגרציה עם ממשק Bitrix (CAdminList, מסננים, עימוד)
  • תיעוד API ומבנה קוד
  • העברת גישה (מאגר, מסד נתונים, פאנל אדמין)
  • הדרכה לצוות התמיכה
  • אחריות של 3 חודשים על הפונקציונליות
הערת אבטחה נוספת בבקרי D7, ניתן להגדיר prefilters לבקרת גישה, לדוגמה, `ActionFilter\Authentication` ו-`ActionFilter\Csrf`, מה שמבטל שגיאות ידניות. בקרים תומכים גם בניהול סשנים והגנה אוטומטית מפני XSS.

עמוד D7 מותאם אישית אינו תחליף למערכת הרכיבים. זהו כלי למשימות שאינן מתאימות למודל הסטנדרטי: כלי אדמין, ממשקי ייבוא, לוחות מחוונים עם נתונים מצטברים. כשהם כתובים נכון, הם אינם מתנגשים עם עדכוני ליבה. קבל ייעוץ לפרויקט שלך—נעריך מורכבות וזמן בתוך יום אחד. הזמן הדגמה חינם.