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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка калькулятора страхования на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка калькулятора страхования на 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:

// Получение КБМ из внешнего АПИ (упрощённо)
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 (Битрикс24 или встроенный модуль CRM)
  3. Менеджер верифицирует и выставляет счёт
  4. Оплата через платёжный шлюз (ЮKassa, 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 месяца

Страховой калькулятор — это публичное обязательство перед клиентом. Цифра, которую он видит на экране, должна соответствовать реальной стоимости полиса. Расхождение «за счёт дополнительных условий» разрушает доверие и приводит к отказам от оформления.