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

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

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

Калькулятор с отправкой результата — это форма, которая вычисляет стоимость услуги или подбирает конфигурацию, а затем отправляет итог пользователю на почту и менеджеру для обработки. Ключевой момент: отправка «пользователю на email» технически тривиальна, но на практике там скрываются проблемы — письма уходят в спам, шаблон письма выглядит как plain text из 90-х, и нет механизма повторной отправки при недоставке.

Архитектура калькулятора

Калькулятор на Битрикс состоит из трёх частей:

Клиентская логика (JavaScript). Реактивный пересчёт значений при изменении параметров пользователем. Никакой зависимости от сервера для самого расчёта — всё работает в браузере. Это критично для UX: пользователь не должен ждать сетевого запроса при перетаскивании слайдера.

Серверный обработчик (PHP/Битрикс). Принимает параметры расчёта, валидирует их, при необходимости подтягивает актуальные данные из каталога (цены, наличие) и формирует итоговые данные для письма. Именно на этом уровне фиксируются реальные цены — то, что пришло с клиента, можно подделать.

Система отправки email. В Битрикс для этого используется модуль main с классом CEvent и шаблонами почтовых событий.

Почтовые события в Битрикс

Правильный способ отправки email в Битрикс — через механизм почтовых событий, а не через mail() или CEmail::Send() напрямую. Это даёт возможность редактировать шаблоны через административный интерфейс, вести лог отправок и использовать очередь.

Создание события и шаблона:

// Регистрация типа события (один раз при установке)
CEventType::Add([
    'LID'          => 'ru',
    'EVENT_NAME'   => 'CALCULATOR_RESULT',
    'NAME'         => 'Результат калькулятора',
    'DESCRIPTION'  => '#RESULT_HTML# #CLIENT_EMAIL# #MANAGER_EMAIL#',
]);

// Создание шаблона письма в Битрикс:
// Настройки → Почта → Почтовые шаблоны → Добавить

// Отправка события
CEvent::Send('CALCULATOR_RESULT', 's1', [
    'CLIENT_EMAIL'  => $clientEmail,
    'MANAGER_EMAIL' => '[email protected]',
    'RESULT_HTML'   => $resultHtml,
    'CALC_PARAMS'   => $paramsText,
    'TOTAL_PRICE'   => number_format($totalPrice, 0, '.', ' ') . ' ₽',
]);

HTML-шаблон письма

Письмо с результатом калькулятора должно быть читаемым и на телефоне, и в веб-клиенте. Для этого:

  • Вёрстка только на <table> — это единственный надёжный способ для email-клиентов
  • Все стили инлайн (Gmail игнорирует <style> в <head>)
  • Таблица результата — список параметров расчёта с выделенной итоговой суммой
  • Кнопка «Оформить заказ» или «Связаться с нами» со ссылкой

Для генерации HTML-письма из данных расчёта используется шаблон в Битрикс (редактируется через Настройки → Почта → Почтовые шаблоны) с переменными #RESULT_HTML#, которые заполняются перед вызовом CEvent::Send.

Проблемы доставки и их решение

Письма в спаме. Причины: отправка с домена без SPF/DKIM записей, использование mail() вместо SMTP, содержимое письма с триггерными словами. Решение: настройка SMTP через модуль main (Настройки → Электронная почта → SMTP) с использованием корпоративного почтового сервера или транзакционного сервиса (SendGrid, Mailgun, Unisender).

Дублирование отправки. При нажатии кнопки «Получить результат» несколько раз или при медленном соединении — форма отправляется несколько раз. Решение: disabled на кнопке после первого клика + дедупликация на сервере по хешу параметров расчёта + отдельной записи в b_event с проверкой.

Нет истории отправок. Стандартный CEvent::Send логирует в b_event_log. Для просмотра лога: Настройки → Диагностика → Очередь почтовых сообщений. Но через N дней лог очищается агентом. Для долгосрочного хранения — сохраняем параметры расчёта и email в отдельную highload-таблицу или в b_hl_* таблицу пользовательского HL-блока.

Кейс: калькулятор стоимости ремонта квартиры

Клиент — строительная компания. Калькулятор: тип ремонта (косметический/капитальный/дизайнерский), площадь, количество комнат, дополнительные работы. Результат — диапазон стоимости и срок.

Задача: клиент получает PDF с детализацией сметы на email, менеджер — уведомление в Telegram и запись в CRM.

Реализация: сервер генерирует PDF через библиотеку mPDF с логотипом компании и детализацией по статьям работ. PDF прикрепляется к письму через CEventMessage с вложением. Параллельно — POST-запрос к Telegram Bot API и создание лида в Битрикс24 через crm.lead.add. Всё это — в одном обработчике формы, с логированием в HL-блок calculator_leads.

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

  • Базовый калькулятор + отправка email (клиент + менеджер) — 3–5 дней
    • Генерация PDF — +1–2 дня
    • Интеграция с CRM Битрикс24 — +1 день
    • Telegram-уведомления — +0,5 дня
    • История расчётов в личном кабинете — +2–3 дня