Розробка калькулятора страхування на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка калькулятора страхування на 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка калькулятора страхування на 1С-Бітрікс

Калькулятор страхування — це конверсійний інструмент із високою відповідальністю: користувач приймає рішення про фінансовий захист, спираючись на показану цифру. Якщо калькулятор помиляється або дає нереалістичні значення, клієнт іде до конкурента. Правильна реалізація вимагає точної математики, актуальних тарифів із бази та плавного UX, який не стомлює кількістю запитань.

Види страхових продуктів для калькулятора

Продукт Ключові параметри Формула
ОСЦПВ (ОСАГО) Потужність двигуна, регіон, КБМ, стаж Базова ставка × набір коефіцієнтів
КАСКО Марка, модель, рік, вартість авто, опції Відсоток від вартості з коефіцієнтами
ДМС Вік, набір послуг, регіон, кількість осіб Базова ставка × віковий коефіцієнт
Нерухомість Тип, площа, матеріал стін, регіон Ставка × страхова сума
Життя і здоров'я Вік, професія, страхова сума, термін Актуарні таблиці

Архітектура тарифних таблиць

Страхові тарифи змінюються — іноді кілька разів на рік. Жорстке кодування в PHP виключено. Усе зберігається в базі даних.

Для простих продуктів — HighLoad-блок InsuranceTariffs:

Поле Тип Опис
UF_PRODUCT_TYPE Enum Тип страхового продукту
UF_PARAM_KEY String Ключ параметра (region_code, power_from тощо)
UF_PARAM_VALUE String Значення параметра
UF_COEFFICIENT Float Коефіцієнт (для множників)
UF_BASE_RATE Float Базова ставка (для базових тарифів)
UF_VALID_FROM Date Дата початку дії
UF_VALID_TO Date Дата закінчення дії (NULL = безстроково)

Розрахунок ОСЦПВ: приклад реалізації

ОСЦПВ — найскладніший розрахунок через велику кількість коефіцієнтів регулятора:

namespace MyProject\Services\Calculators;

class OsagoCalculator
{
    // Коефіцієнти за потужністю двигуна (таблиця регулятора)
    private const KM_COEFFICIENTS = [
        50  => 0.6,
        70  => 1.0,
        100 => 1.1,
        120 => 1.2,
        150 => 1.4,
        PHP_INT_MAX => 1.6,
    ];

    public static function calculate(
        float $baseTariff,  // базовий тариф для категорії ТЗ
        int   $horsePower,  // потужність двигуна
        float $kbm,         // коефіцієнт бонус-малус (0.5–2.45)
        float $kt,          // коефіцієнт регіону
        int   $driversCount, // кількість водіїв
        int   $minDriverAge, // мінімальний вік водія
        int   $minDriverExp  // мінімальний стаж водія
    ): array {
        $km  = self::getPowerCoefficient($horsePower);
        $kvs = self::getAgeExpCoefficient($minDriverAge, $minDriverExp);
        $ko  = $driversCount === 0 ? 1.87 : 1.0; // без обмежень водіїв

        $premium = $baseTariff * $kbm * $kt * $km * $kvs * $ko;

        return [
            'base_tariff' => $baseTariff,
            'premium'     => round($premium, 2),
            'coefficients' => [
                'KBM' => $kbm,
                'KT'  => $kt,
                'KM'  => $km,
                'KVS' => $kvs,
                'KO'  => $ko,
            ],
            'valid_days'  => 365,
        ];
    }

    private static function getPowerCoefficient(int $horsePower): float
    {
        foreach (self::KM_COEFFICIENTS as $maxPower => $coef) {
            if ($horsePower <= $maxPower) {
                return $coef;
            }
        }
        return 1.6;
    }

    private static function getAgeExpCoefficient(int $age, int $experience): float
    {
        // Таблиця регулятора: вік × стаж
        if ($age < 22 && $experience < 3) return 1.87;
        if ($age < 22) return 1.66;
        if ($experience < 3) return 1.04;
        return 1.0;
    }
}

КБМ (бонус-малус) — довідкова інтеграція

Актуальний КБМ водія повинен братися з бази даних союзу страховиків. Страхові компанії інтегруються з базою через API:

// Отримання КБМ із зовнішнього API (спрощено)
public static function getKbmFromRsa(string $driverLicense, string $birthDate): float
{
    $apiUrl  = 'https://api.rsa.ru/kbm/';
    $response = (new \GuzzleHttp\Client())->post($apiUrl, [
        'json' => [
            'license'   => $driverLicense,
            'birthDate' => $birthDate,
            'token'     => config('rsa_api_token'),
        ],
    ]);

    $data = json_decode($response->getBody(), true);
    return (float)($data['kbm'] ?? 1.0);
}

Якщо інтеграція з реєстром неможлива — калькулятор приймає КБМ від користувача (клас страхування) з поправкою на верифікацію при оформленні поліса.

Онлайн-оформлення поліса

Після розрахунку — форма для отримання поліса:

  1. Користувач підтверджує розрахунок і вводить дані (паспорт, документи на авто)
  2. Дані передаються до CRM (Bitrix24 або вбудований модуль CRM)
  3. Менеджер верифікує та виставляє рахунок
  4. Оплата через платіжний шлюз (YooKassa, CloudPayments)
  5. Поліс відправляється на email через \Bitrix\Main\Mail\Event

Регулярне оновлення тарифів

Страхові тарифи оновлюються через адміністративний інтерфейс. Для критичних даних (базовий тариф регулятора) — імпорт із XML-файлу через агент Бітрікс:

// Агент оновлення тарифів
function updateInsuranceTariffs(): string
{
    $xml = simplexml_load_file('https://cbr.ru/insurance/tariffs.xml');
    // парсинг і оновлення в HL-блоці
    TariffUpdater::importFromCbr($xml);

    return '\updateInsuranceTariffs();'; // плануємо наступний запуск
}

Терміни

Завдання Термін
Простий калькулятор (1 продукт, ручні тарифи, форма заявки) 1–1.5 тижні
Калькулятор ОСЦПВ із коефіцієнтами регулятора, тарифи в БД, інтеграція з CRM 3–5 тижнів
Повний страховий калькулятор (кілька продуктів, інтеграція з реєстром, онлайн-оформлення) 2–4 місяці

Страховий калькулятор — це публічне зобов'язання перед клієнтом. Цифра, яку він бачить на екрані, повинна відповідати реальній вартості поліса. Розбіжність «через додаткові умови» руйнує довіру та призводить до відмов від оформлення.