Розробка сайту будівельної компанії на 1С-Бітрікс

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

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

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

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

  • 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С-Бітрікс

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

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

Послуги будівельної компанії мають ієрархію: напрямок (житлове будівництво, комерційне, промислове, ремонт та реконструкція) → конкретна послуга (будівництво котеджу, зведення каркасної будівлі, капітальний ремонт офісу). Кожна послуга має набір параметрів, які клієнт хоче бачити до дзвінка.

Інфоблок 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-компонентом: два зображення в контейнері з 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 число 12000 (грн/м²)
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 з повним набором параметрів.

Результат відображається як діапазон: «від 1 440 000 до 1 960 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-блоки Бітрікса через cron-задачу, оновлюються щогодини.

SEO: запити «тип робіт + місто»

Цільові запити — «будівництво котеджів Київ», «капітальний ремонт офісу Львів», «промислове будівництво Україна». Шаблони SEO через налаштування інфоблоку послуг:

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

Для геозалежних посадочних сторінок — окремі розділи або landing-компонент з динамічною підстановкою міста з Highload-блоку «Регіони роботи». Schema.org мікророзмітка GeneralContractor з areaServed та Service:

{
  "@context": "https://schema.org",
  "@type": "GeneralContractor",
  "name": "Назва компанії",
  "areaServed": {"@type": "City", "name": "Київ"},
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Послуги",
    "itemListElement": [
      {"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Будівництво котеджів"}}
    ]
  }
}

Географія робіт

Окрема сторінка з картою виконаних проєктів. Маркери завантажуються з інфоблоку PORTFOLIO через AJAX-запит, який повертає JSON: [{id, lat, lng, title, photo, area}]. Кластеризація через ymaps.Clusterer — при великій кількості проєктів у одному регіоні маркери групуються. При натисканні на маркер — балун з фото, назвою та посиланням на картку проєкту.

Фільтрація на карті за типом робіт — перемикач категорій, який перезавантажує маркери через AJAX з параметром SERVICE_LINK. Це дозволяє показати, наприклад, тільки промислові об'єкти або тільки житлові.

Етапи та терміни

Масштаб проєкту Терміни
Сайт-візитка з каталогом послуг та портфоліо 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-аудит

Терміни не включають наповнення портфоліо та налаштування коефіцієнтів калькулятора — це робить замовник паралельно з розробкою.