Разработка модуля калькулятора услуг 1С-Битрикс

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

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Разработка модуля калькулятора услуг 1С-Битрикс

Клиент вводит площадь, выбирает отделку — и уходит. Без цены. Без заявки. Знакомо? Калькулятор услуг на Битриксе решает эту проблему: пользователь получает мгновенную стоимость и отправляет заявку. Мы разрабатываем кастомные модули, которые встраиваются в ваш сайт и работают с CRM. Никаких готовых решений — только под ваши бизнес-логику и формулы.

Готовых калькуляторов в маркетплейсе Битрикс практически нет, либо они слишком примитивны. Для серьёзного бизнеса — страховой компании, строительного подрядчика, типографии — нужен модуль с гибкой формулой и интеграцией с CRM. Наш опыт показывает, что правильно сделанный калькулятор увеличивает конверсию в 2–3 раза: клиент понимает ценообразование и доверяет компании.

Когда нужен кастомный калькулятор?

Если ваш бизнес использует нестандартные тарифы, региональные коэффициенты или зависит от данных из 1С, готовый плагин не подойдёт. Кастомный модуль даёт полный контроль над формулами и интеграциями. Сравните: готовые решения обрабатывают только линейные зависимости, а кастомный справляется с ветвлениями и внешними справочниками. Конверсия лидов с таким калькулятором выше в 2 раза — проверено на проектах.

Как устроен движок формул?

Формула хранится в JSON-структуре, которая интерпретируется на сервере (PHP) и на клиенте (JavaScript). Синхронность критична: итоговая сумма в интерфейсе должна совпадать с суммой в CRM. PHP-интерпретатор FormulaEvaluator::evaluate($formula, $fieldValues) рекурсивно обходит дерево и вычисляет итог. На фронтенде — такой же интерпретатор на JS.

{
  "type": "add",
  "operands": [
    {
      "type": "multiply",
      "operands": [
        {"type": "field", "name": "area"},
        {"type": "field", "name": "work_type_price"}
      ]
    },
    {
      "type": "if",
      "condition": {"type": "gt", "left": {"type": "field", "name": "area"}, "right": 100},
      "then": {"type": "multiply", "operands": [{"type": "ref", "name": "subtotal"}, -0.1]},
      "else": 0
    }
  ]
}

Сравнение: готовые решения vs кастомный модуль

Параметр Готовые решения Кастомный модуль
Гибкость формул Только линейные Любые с условиями и ссылками
Интеграция с CRM Ограниченная Полная, с созданием лидов и сделок
Привязка к ценам каталога Нет Да, через b_catalog_price
Зависимые поля Нет Да, с динамической фильтрацией
Административный интерфейс Стандартный Под ваш бренд и логику

Архитектура модуля: таблицы и типы полей

Модуль vendor.calculator включает четыре основные таблицы:

  • b_vendor_calc_calculator — калькуляторы: id, name, slug, config (JSON полей и шагов), formula (JSON дерево вычислений), crm_target (lead/deal), is_active
  • b_vendor_calc_field — поля калькулятора: id, calculator_id, type, name, label, options (JSON), depends_on, validation_rules, sort
  • b_vendor_calc_result — сохранённые расчёты: id, calculator_id, session_id, user_id, params (JSON), result (JSON суммы), created_at
  • b_vendor_calc_lead — связь расчёта с лидом/сделкой CRM: result_id, crm_type, crm_id

Типы полей:

  • number — числовое поле с min/max/step
  • slider — ползунок с диапазоном
  • select — выпадающий список с привязкой коэффициентов
  • checkbox — флаг с добавочной стоимостью
  • radio — выбор одного варианта
  • area — двумерный ввод (ширина × высота)
  • catalog_product — выбор товара из инфоблока с автоподстановкой цены

Почему важен реактивный пересчёт?

На фронтенде — реактивный пересчёт без перезагрузки. При изменении любого поля:

  1. Собираются текущие значения всех полей
  2. Локальная копия формулы вычисляется в JS (та же логика, что на PHP)
  3. Результат мгновенно обновляется в интерфейсе
  4. Дополнительно: AJAX-запрос на сервер для точного расчёта с учётом актуальных цен из БД
// Пересчёт при изменении поля
document.querySelectorAll('.calc-field').forEach(field => {
    field.addEventListener('change', () => {
        const values = collectFieldValues();
        const localResult = evaluateFormula(calculatorConfig.formula, values);
        updateResultDisplay(localResult);
        debounce(() => fetchServerResult(values), 500)();
    });
});

Зависимые поля

Зависимость описывается в конфигурации поля:

{
  "name": "material_type",
  "type": "select",
  "depends_on": {
    "field": "work_type",
    "map": {
      "painting": ["latex", "acrylic", "oil"],
      "wallpaper": ["paper", "vinyl", "non-woven"],
      "tile": ["ceramic", "porcelain", "mosaic"]
    }
  }
}

При выборе work_type = 'painting' список материалов фильтруется до ["latex", "acrylic", "oil"]. Логика работает и на клиенте, и проверяется на сервере при отправке формы.

Отправка в CRM

После завершения расчёта пользователь заполняет контактные данные и отправляет заявку. Модуль создаёт лид или сделку:

$leadFields = [
    'TITLE'       => 'Расчёт из калькулятора: ' . $calculator['NAME'],
    'NAME'        => $formData['name'],
    'PHONE'       => [['VALUE' => $formData['phone'], 'VALUE_TYPE' => 'WORK']],
    'EMAIL'       => [['VALUE' => $formData['email'], 'VALUE_TYPE' => 'WORK']],
    'COMMENTS'    => $this->buildCalculatorComment($result),
    'UF_CALC_SUM' => $result['total'],
    'SOURCE_ID'   => 'CALCULATOR',
];

$leadId = \Bitrix\Crm\LeadTable::add($leadFields)->getId();

Параметры расчёта записываются в комментарий лида и в пользовательское поле UF_CALC_PARAMS (JSON).

Что входит в работу

  • Архитектура базы данных и инсталлятор модуля
  • Конструктор полей и конфигуратор с админ-интерфейсом
  • Движок формул PHP + JavaScript
  • Реактивный пересчёт и зависимые поля
  • Интеграция с ценами торгового каталога
  • Отправка заявок в CRM (лиды/сделки)
  • Компонент для размещения на странице
  • Документация и обучение вашего сотрудника
  • Гарантия работоспособности в течение 30 дней после сдачи

Сроки разработки

Этап Срок
Архитектура, таблицы, инсталлятор 1 день
Конструктор полей и конфигуратор 2 дня
Движок формул PHP + JS 3 дня
Зависимые поля, реактивный пересчёт 2 дня
Интеграция с ценами каталога 1 день
Отправка в CRM 1 день
Административный интерфейс 2 дня
Компонент для размещения на странице 1 день

Итого: 13 рабочих дней. Нестандартные формулы с внешними справочниками (тарифные сетки, региональные коэффициенты) — +2–3 дня.

Свяжитесь с нами для оценки вашего проекта. Опыт разработки под Битрикс — более 10 лет, гарантируем качество и прозрачность. Получите консультацию — обсудим вашу задачу и подготовим коммерческое предложение. Подробнее о CRM-системах и REST API Битрикс24.