Розробка сайту страхової компанії на 1С-Бітрікс
Страхова компанія продає обіцянку. Клієнт платить зараз за захист, який може знадобитися через рік — або ніколи. Переконати його зробити це через сайт можна тільки одним способом: дати можливість самостійно розрахувати вартість і купити поліс за 5 хвилин, без звонків і візитів в офіс.
Центральний елемент сайту — онлайн-калькулятор страховки. Це багатокрокова форма з тарифною логікою, яка перераховує премію в реальному часі. Розберемо її архітектуру на 1С-Бітрікс.
Каталог страховихих продуктів
Страхові продукти — інфоблок з розділами за напрямками:
- Автострахування — ОСАГО, КАСКО
- Медичне страхування — ДМС для фізлиць, ДМС для компаній
- Майно — квартира, будинок, комерційна нерухомість
- Подорожі — виїзд за кордон, внутрішній туризм
- Життя та здоров'я — НСП, накопичувальне
Властивості елемента інфоблока:
| Властивість | Тип | Призначення |
|---|---|---|
| COVERAGE_LIST | HTML | Перелік покритих ризиків |
| EXCLUSIONS | HTML | Виключення з покриття |
| SUM_INSURED_MIN | number | Мінімальна страхова сума |
| SUM_INSURED_MAX | number | Максимальна страхова сума |
| CALCULATOR_LINK | string | Посилання на калькулятор для цього продукту |
| DOCUMENTS | file (множинне) | Правила страхування, зразок полісу (PDF) |
| TARGET_AUDIENCE | enumeration | Фізлиця / Юрлиця / Обоє |
Кожний продукт має детальну сторінку з описом умов, покриття, порядку отримання виплати. Це не рекламний текст — клієнт страховки уважно читає умови перед покупкою.
Онлайн-калькулятор страховки з тарифною логікою
Калькулятор — найскладніший компонент сайту. Для кожного страхового продукту — своя форма з унікальним набором полів та своя формула розрахунку.
Розберемо на прикладі КАСКО — найнавантаженішого по кількості параметрів.
Крок 1: дані про автомобіль. Клієнт заповнює: марка, модель, рік випуску, потужність двигуна, VIN (опціонально), вартість автомобіля, наявність протиугінної системи.
Крок 2: дані про водіїв. Вік, стаж, кількість допущених водіїв (або «мультидрайв»). Для кожного водія розраховується свій коефіцієнт КВС (коефіцієнт вік-стаж).
Крок 3: параметри страховки. Страхова сума, франшиза (безумовна, від 0 до 1000 USD), включення додаткових ризиків (GAP, нещасний випадок, підмінний автомобіль), термін страхування.
Крок 4: розрахунок премії.
Формула базової премії для КАСКО:
Премія = Страхова_сума × Базовий_тариф × КВС × КМ × КС × КФ × КПС × КТ
Де:
- Базовий_тариф — залежить від марки/моделі (угоняємість) й року випуску
- КВС — коефіцієнт вік-стаж (мінімальний з усіх водіїв)
- КМ — коефіцієнт потужності двигуна
- КС — коефіцієнт терміну страхування (піввроку ≠ половина річного)
- КФ — коефіцієнт франшизи (чим вище франшиза — тим нижче коефіцієнт)
- КПС — коефіцієнт протиугінної системи
- КТ — територіальний коефіцієнт
Тарифний довідник у Highload-блоках:
InsuranceBaseTariff — базові тарифи:
| Поле | Тип | Приклад |
|---|---|---|
| UF_PRODUCT_TYPE | enumeration | КАСКО |
| UF_CAR_BRAND | string | Toyota |
| UF_CAR_MODEL | string | Camry |
| UF_YEAR_FROM | integer | 2020 |
| UF_YEAR_TO | integer | 2025 |
| UF_BASE_RATE | float | 0.035 (3.5%) |
| UF_RISK_GROUP | enumeration | Низький / Середній / Високий (угоняємість) |
InsuranceCoefficient — коефіцієнти:
| Поле | Тип | Призначення |
|---|---|---|
| UF_COEFF_TYPE | enumeration | КВС / КМ / КС / КФ / КПС / КТ |
| UF_PARAM_FROM | float | Нижня межа параметра |
| UF_PARAM_TO | float | Верхня межа параметра |
| UF_VALUE | float | Значення коефіцієнта |
| UF_PRODUCT_TYPE | enumeration | Для якого продукту |
Приклади записів для КВС:
| UF_COEFF_TYPE | UF_PARAM_FROM (вік) | UF_PARAM_TO | Стаж від | Стаж до | UF_VALUE |
|---|---|---|---|---|---|
| КВС | 18 | 21 | 0 | 2 | 1.87 |
| КВС | 22 | 25 | 3 | 5 | 1.04 |
| КВС | 30 | 65 | 10 | 99 | 0.93 |
Для КВС потрібні два параметри (вік і стаж), тому в Highload-блок додаються додаткові поля UF_PARAM2_FROM та UF_PARAM2_TO — або створюється окремий Highload-блок InsuranceCoefficientKVS з явними полями.
Розрахунок на стороні сервера. Калькулятор працює через AJAX-запит до кастомного контролера Bitrix. Клієнтська сторона збирає параметри форми й відправляє POST-запит. Сервер:
- Знаходить базовий тариф за маркою/моделлю/роком
- Для кожного коефіцієнта робить вибірку з
InsuranceCoefficientза типом та діапазоном параметра - Перемножує всі коефіцієнти
- Повертає JSON з підсумком та розшифруванням
$baseTariff = InsuranceBaseTariffTable::getRow([
'filter' => [
'UF_PRODUCT_TYPE' => 'kasko',
'UF_CAR_BRAND' => $brand,
'UF_CAR_MODEL' => $model,
'<=UF_YEAR_FROM' => $year,
'>=UF_YEAR_TO' => $year,
],
]);
$coefficients = [];
// КВС — беремо мінімальний вік-стаж зі списку водіїв
$kvs = InsuranceCoefficientTable::getRow([
'filter' => [
'UF_COEFF_TYPE' => 'kvs',
'<=UF_PARAM_FROM' => $driverAge,
'>=UF_PARAM_TO' => $driverAge,
'<=UF_PARAM2_FROM' => $driverExperience,
'>=UF_PARAM2_TO' => $driverExperience,
],
]);
$coefficients['kvs'] = $kvs['UF_VALUE'];
// Аналогічно для КМ, КС, КФ, КПС, КТ
// ...
$premium = $insuredSum * $baseTariff['UF_BASE_RATE'];
foreach ($coefficients as $coeff) {
$premium *= $coeff;
}
Розшифровка для клієнта. Калькулятор не просто видає число — показує таблицю: «базовий тариф 3.5%, КВС 1.04, франшиза знижує на 15%...». Прозорість розрахунку підвищує довіру.
Варіативність. Клієнт може менять параметри (збільшити франшизу, забрати водія, змінити суму) й бачити, як меняється ціна. Перерахунок — через AJAX без перезавантаження сторінки.
Онлайн-покупка полісу
Після розрахунку клієнт натискає «Оформити поліс». Створюється замовлення через модуль sale. Особливості:
- Товар — страховий продукт з каталогу з динамічною ціною (розрахованою калькулятором)
- Властивості замовлення — усі параметри полісу: дані автомобіля, водіїв, умови страхування
-
Оплата — через платіжні шлюзи. Інтеграція через
sale.paysystem -
Після оплати — обробник
OnSaleOrderPaidгенерує поліс (PDF) і відправляє клієнту на email
Генерація PDF-полісу — через бібліотеку TCPDF або mPDF. Шаблон полісу з підстановкою даних з властивостей замовлення.
Особистий кабінет страхувальника
Функціонал особистого кабінету:
- Мої полісі — список дійсних і спеціальних полісів з файлами PDF
- Строки — повідомлення за 30 днів до закінчення полісу (агент Bitrix + email/SMS)
- Пролонгація — кнопка «Продовжити» передзаповнює калькулятор даними з поточного полісу
-
Заява на виплату — форма з завантаженням документів (фото ДТП, справка, акт огляду). Файли зберігаються через
CFile::SaveFile(), заява — елемент інфоблока «Страхові випадки» - Статус заяви — клієнт бачить етапи розгляду: прийнято → на розгляді → запит документів → рішення → виплата
Інтеграція з 1С:Страхування та АІС
Страхові компанії працюють у спеціалізованих облікових системах. Основні варіанти:
1С:Страхування. Обмін через HTTP-сервіси 1С. З сайту в 1С передаються: нові полісі (після оплати), заяви на виплату. З 1С на сайт: статуси заяв, довідники тарифів (якщо тарифи ведуться в 1С).
АІС страховщика (відомча система). Інтеграція через SOAP або REST. Для ОСАГО часто обов'язкова зв'язок з державною базою. Перевірка КБМ (коефіцієнт бонус-малус) — запит до зовнішнього API перед розрахунком.
Формат обміну залежить від конкретної АІС. Типовий патерн: Bitrix відправляє XML/JSON з даними полісу на ендпоінт АІС, отримує у відповідь номер полісу та статус.
Агентський портал (B2B)
Страхові агенти — окрема категорія користувачів. Їхній портал:
- Авторизація — за агентським номером, прив'язка до групи «Агенти» у Bitrix
- Калькулятор з агентською комісією — той же калькулятор, але з відображенням комісії агента (відсоток від премії)
- Воронка клієнтів — CRM-подібний інтерфейс: ліди, розрахунки, оформлені полісі. Реалізується через кастомний інфоблок «Агентські заявки» зі статусами
-
Звітність — вивантаження по продажах за період, нараховані комісії. Формується через
PhpSpreadsheetв XLSX
Доступ до агентського порталу обмежується через $APPLICATION->GetUserGroupArray() та перевірку належності до групи.
Терміни реалізації
| Масштаб | Склад | Термін |
|---|---|---|
| Один продукт (ОСАГО або travel) | Калькулятор, онлайн-покупка, базовий ЛК | 8-10 тижнів |
| 3-5 продуктів (авто + майно + ДМС) | + кілька калькуляторів, інтеграція з 1С, заяви на виплату | 14-20 тижнів |
| Повнофункціональний сайт | + агентський портал, інтеграція з АІС, пролонгація, мобільна версія ЛК | 22-30 тижнів |
Що визначає складність
Кожний страховий продукт — це окремий калькулятор з унікальною формулою. КАСКО й ОСАГО використовують різні набори коефіцієнтів, ДМС розраховується за кількістю застрахованих й набором клінік, страхування майна — за типом об'єкта й ризиками. Уніфікувати формули не вдасться: можна уніфікувати механізм зберігання коефіцієнтів у Highload-блоках та AJAX-обвязку, але бізнес-логіку кожного калькулятора потрібно писати окремо.
Другий фактор — актуарні дані. Тарифний довідник має регулярно оновлюватися при зміні ставок. Якщо тарифи ведуться в 1С — налаштовується автоматична синхронізація. Якщо на сайті — потрібен зручний інтерфейс для актуара, щоб він міг оновлювати коефіцієнти через админку Bitrix без залучення розробника.







