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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка сайта строительной компании на 1С-Битрикс
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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С-Битрикс

Сайт строительной компании — не визитка с телефоном и фотографией бульдозера. Генподрядчик работает одновременно в двух направлениях: частный заказчик ищет подрядчика на ремонт квартиры, а корпоративный — отправляет тендерную документацию на строительство склада. Оба сценария требуют разной подачи информации, разных форм обратной связи и разного уровня детализации. Битрикс позволяет закрыть обе задачи в рамках одного сайта, но архитектура данных должна учитывать эту двойственность с самого начала.

Каталог услуг: структура инфоблоков

Услуги строительной компании — это не плоский список. Есть иерархия: направление (жилое строительство, коммерческое, промышленное, ремонт и реконструкция) → конкретная услуга (строительство коттеджа, возведение каркасного здания, капитальный ремонт офиса). Каждая услуга имеет набор параметров, которые клиент хочет видеть до звонка.

Инфоблок SERVICES с разделами по категориям:

  • Жилое строительство — коттеджи, таунхаусы, малоэтажные дома
  • Коммерческое строительство — офисные здания, торговые центры, склады
  • Промышленное строительство — производственные цеха, ангары
  • Ремонт и реконструкция — капитальный ремонт, реставрация фасадов, перепланировка

Свойства элемента услуги:

Свойство Код Тип Назначение
Описание DESCRIPTION HTML Развёрнутое описание услуги
Фотогалерея PHOTO_GALLERY F (файл, множ.) Фото процесса и результатов
Типовые сроки TYPICAL_TIMELINE S (строка) «от 3 до 8 месяцев»
Минимальная площадь MIN_AREA N (число) Порог входа, м²
Материалы MATERIALS E (привязка к элементу) Связь с инфоблоком материалов
Категория клиента CLIENT_TYPE L (список) B2B / B2C / Оба
Иконка ICON_SVG S Код SVG-иконки для каталога

Свойство CLIENT_TYPE критично для фильтрации на фронте: частный клиент не хочет видеть «проектирование промышленных объектов», а тендерный менеджер — «ремонт ванной под ключ». Фильтрация через bitrix:catalog.smart_filter с параметром FILTER_NAME=arrServiceFilter и кастомным шаблоном, который показывает переключатель «Для дома / Для бизнеса» вместо стандартного чекбокса.

Портфолио выполненных проектов

Портфолио — отдельный инфоблок PORTFOLIO, не раздел в услугах. Причина: у проекта своя структура данных, которая не пересекается с услугой. Проект — это конкретный объект с адресом, заказчиком, сроками, площадью. Услуга — это описание возможности.

Свойства элемента портфолио:

Свойство Код Тип
Фото «до» PHOTO_BEFORE F (файл, множ.)
Фото «после» PHOTO_AFTER F (файл, множ.)
Площадь объекта OBJECT_AREA N
Срок выполнения EXECUTION_TIME S
Использованные материалы USED_MATERIALS S (множ.)
Отзыв клиента CLIENT_TESTIMONIAL HTML
Привязка к услуге SERVICE_LINK E (привязка к инфоблоку SERVICES)
Координаты COORDINATES S ("lat,lng")
Год завершения COMPLETION_YEAR N

Привязка SERVICE_LINK — ключевая связь. На странице услуги «Строительство коттеджей» автоматически подтягиваются проекты через CIBlockElement::GetList с фильтром ['PROPERTY_SERVICE_LINK' => $serviceId]. На карте портфолио — маркеры с кластеризацией через ymaps.Clusterer, при клике на маркер — всплывающее окно с фото «после», площадью и ссылкой на полную карточку проекта.

Фото «до/после» на карточке проекта реализуются через JavaScript-компонент сравнения: два изображения с ползунком. Техническая сторона — два <img> в контейнере с overflow: hidden, одно из которых обрезается по ширине через clip-path или абсолютным позиционированием. Обработчик mousedown/touchstart на разделителе перемещает границу обрезки.

Калькулятор стоимости: глубокое погружение

Калькулятор — самый конверсионный элемент сайта строительной компании. Посетитель не хочет звонить, чтобы узнать порядок цифр. Он хочет двигать ползунки и видеть, как меняется итог. Многошаговая форма с AJAX-расчётом на каждом этапе — правильный подход.

Архитектура калькулятора. Четыре шага:

  1. Тип работ — выбор из списка: новое строительство, капитальный ремонт, реконструкция, отделка
  2. Параметры объекта — площадь (ползунок + ручной ввод), этажность, тип фундамента (для нового строительства), текущее состояние (для ремонта)
  3. Материалы — выбор из предустановленных наборов: эконом, стандарт, премиум; или ручной выбор по категориям (стены, кровля, отделка)
  4. Результат — диапазон стоимости, примерные сроки, кнопка «Получить точную смету»

Хранение коэффициентов. Базовые ставки и коэффициенты хранятся в Highload-блоке CALC_RATES с полями:

Поле Тип Пример
UF_WORK_TYPE список new_build, renovation, reconstruction
UF_MATERIAL_CLASS список economy, standard, premium
UF_BASE_RATE число 45000 (руб/м²)
UF_FLOOR_COEFF число 1.15 (множитель за 2+ этаж)
UF_FOUNDATION_COEFF число 1.20 (ленточный) / 1.35 (плита)
UF_REGION_COEFF число 1.0 (Минск) / 0.85 (регионы)

Менеджер обновляет коэффициенты через административный интерфейс Highload-блока без участия разработчика. Новый тип работ — новая запись в блоке, калькулятор подхватывает автоматически.

Серверная часть. Кастомный компонент project:calc.estimate с AJAX-контроллером. Битрикс предоставляет механизм AJAX через Bitrix\Main\Engine\Controller:

namespace Project\Component;

use Bitrix\Main\Engine\Controller;
use Bitrix\Main\Engine\ActionFilter;

class CalcEstimateController extends Controller
{
    public function configureActions(): array
    {
        return [
            'calculate' => [
                'prefilters' => [
                    new ActionFilter\HttpMethod([ActionFilter\HttpMethod::METHOD_POST]),
                    new ActionFilter\Csrf(),
                ],
            ],
        ];
    }

    public function calculateAction(
        string $workType,
        float $area,
        int $floors,
        string $materialClass,
        string $foundation = ''
    ): array {
        $rates = HighloadManager::getRow('CALC_RATES', [
            'UF_WORK_TYPE' => $workType,
            'UF_MATERIAL_CLASS' => $materialClass,
        ]);

        if (!$rates) {
            throw new ArgumentException('Unknown combination');
        }

        $base = $rates['UF_BASE_RATE'] * $area;
        $floorMultiplier = $floors > 1
            ? pow($rates['UF_FLOOR_COEFF'], $floors - 1)
            : 1.0;

        $foundationMultiplier = 1.0;
        if ($foundation && $workType === 'new_build') {
            $foundationMultiplier = $rates['UF_FOUNDATION_COEFF'];
        }

        $total = $base * $floorMultiplier * $foundationMultiplier;

        return [
            'estimate_min' => round($total * 0.85),
            'estimate_max' => round($total * 1.15),
            'timeline_weeks' => $this->estimateTimeline($workType, $area),
            'breakdown' => [
                'base' => round($base),
                'floor_adjustment' => round($base * ($floorMultiplier - 1)),
                'foundation_adjustment' => round($base * $floorMultiplier * ($foundationMultiplier - 1)),
            ],
        ];
    }
}

Фронтенд калькулятора. Каждый шаг — отдельный экран, переход с анимацией. На шагах 1-3 данные накапливаются в объекте состояния. На шаге 2 — AJAX-запрос для динамического обновления доступных опций (если выбрано «новое строительство», появляется выбор фундамента; если «ремонт» — появляется выбор текущего состояния). На шаге 4 — AJAX-запрос calculateAction с полным набором параметров.

Результат отображается как диапазон: «от 3 200 000 до 4 350 000 руб.». Не точная цифра — это важно юридически и коммерчески. Ниже — разбивка: базовая стоимость, надбавка за этажность, надбавка за тип фундамента. Клиент видит, из чего складывается оценка, и понимает, где можно сэкономить.

Сохранение расчётов. Каждый расчёт записывается в Highload-блок CALC_RESULTS с полями: входные параметры, результат, дата, IP, UTM-метки. Это даёт аналитику: какие типы работ считают чаще, какой средний запрашиваемый бюджет, на каком шаге пользователи уходят (если шаг 4 не достигнут — записываем по событию beforeunload). UTM-метки позволяют привязать расчёт к рекламной кампании.

Кнопка «Получить точную смету» открывает форму с полями: имя, телефон, email, комментарий. При отправке — создаётся лид в CRM (если подключён Битрикс24) или отправляется email через CEvent::Send() с типом почтового события CALC_REQUEST. В тело письма автоматически подставляются все параметры расчёта — менеджеру не нужно переспрашивать.

Тендерная система для B2B

Корпоративный заказчик приходит не с вопросом «сколько стоит», а с техническим заданием на 40 страниц. Ему нужна форма подачи заявки с загрузкой файлов.

Форма тендерной заявки — кастомный компонент на базе bitrix:form.result.new или отдельный контроллер. Поля: название компании, ИНН, контактное лицо, email, телефон, описание проекта (textarea), файлы ТЗ (множественная загрузка, до 5 файлов, форматы PDF/DOC/DWG/ZIP, максимум 50MB суммарно). Валидация на фронте — проверка расширений и размера до отправки. На бэкенде — повторная проверка через CFile::CheckFile().

Загруженные файлы сохраняются в инфоблок TENDER_REQUESTS как элемент со свойствами-файлами. Почтовое событие TENDER_NEW_REQUEST рассылает уведомление ответственному менеджеру. Автоответ заявителю — отдельное почтовое событие TENDER_CONFIRM с текстом «Ваша заявка #ID принята, ожидайте ответ в течение 2 рабочих дней».

Сертификаты, лицензии, допуски

Для строительной компании раздел с лицензиями — не декорация. СРО, ISO, лицензии на проектирование — всё это проверяет заказчик перед заключением договора. Инфоблок CERTIFICATES с минимумом полей: название документа, номер, дата выдачи, срок действия, скан (файл). На фронте — галерея с возможностью просмотра скана в полном размере через lightbox. Срок действия отслеживается агентом (CAgent): за 30 дней до истечения — уведомление администратору.

Команда и специализации

Инфоблок TEAM с привязкой к услугам через множественное свойство SPECIALIZATION (тип E, привязка к инфоблоку SERVICES). На странице сотрудника — его проекты из портфолио (связь через PROPERTY_MANAGER_ID в инфоблоке PORTFOLIO). На странице услуги — блок «Наши специалисты» с автоматической подборкой по привязке.

Мониторинг хода строительства

Клиентский портал для действующих заказчиков — отдельный раздел за авторизацией. Инфоблок CONSTRUCTION_PROGRESS с элементами-отчётами: дата, описание этапа, фотографии, процент выполнения. Привязка к проекту через PROPERTY_PROJECT_ID, привязка к клиенту через PROPERTY_CLIENT_USER_ID. Авторизованный клиент видит только свои проекты — фильтр ['PROPERTY_CLIENT_USER_ID' => $USER->GetID()].

Фотоотчёты загружает прораб через упрощённую форму в административной части или через мобильную версию фронтенда с bitrix:iblock.element.add.form. Уведомление клиенту при добавлении нового отчёта — через почтовое событие PROGRESS_UPDATE.

Интеграция с 1С для учёта проектов

Модуль sale не нужен — строительная компания не продаёт товары через корзину. Но обмен с 1С:Управление строительной организацией актуален: справочники контрагентов, статусы договоров, акты выполненных работ. Интеграция через REST API 1С или промежуточную базу данных. Данные из 1С подтягиваются в Highload-блоки Битрикса через крон-задачу, обновляются раз в час.

SEO: запросы «тип работ + город»

Целевые запросы — «строительство коттеджей Минск», «капитальный ремонт офиса Гомель», «промышленное строительство Беларусь». Шаблоны SEO через настройки инфоблока услуг:

  • ELEMENT_META_TITLE = #ELEMENT_NAME# в {город} | {компания}
  • SECTION_META_TITLE = #SECTION_NAME# — услуги строительной компании | {компания}

Для геозависимых посадочных — отдельные разделы или landing-компонент с динамической подстановкой города из Highload-блока «Регионы работы». Schema.org микроразметка LocalBusiness с areaServed и Service:

{
  "@context": "https://schema.org",
  "@type": "GeneralContractor",
  "name": "Название компании",
  "areaServed": {"@type": "City", "name": "Минск"},
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Услуги",
    "itemListElement": [
      {"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Строительство коттеджей"}}
    ]
  }
}

Этапы и сроки

Масштаб проекта Сроки
Сайт-визитка с каталогом услуг и портфолио 3-5 недель
Полноценный сайт с калькулятором, тендерной системой, клиентским порталом 8-14 недель
Корпоративный портал с интеграцией 1С, мониторингом строительства, мультиязычностью 14-24 недели
  1. Аналитика (1-2 недели) — структура каталога услуг, логика калькулятора, прототипы
  2. Дизайн (2-3 недели) — главная, каталог, карточка проекта, калькулятор, мобильная версия
  3. Разработка ядра (3-5 недель) — инфоблоки, шаблоны, фильтрация, портфолио с картой
  4. Калькулятор и формы (2-3 недели) — многошаговый расчёт, тендерная форма, клиентский портал
  5. Интеграции (1-3 недели) — 1С, CRM, почтовые события
  6. Тестирование и запуск (1-2 недели) — кроссбраузер, мобильные устройства, SEO-аудит

Сроки не включают наполнение портфолио и настройку коэффициентов калькулятора — это делает заказчик параллельно с разработкой.