Разработка корпоративного сайта-визитки на 1С-Битрикс
Сайт-визитка на Битрикс — это не «сделать быстро на конструкторе». Компании выбирают Битрикс для визитки по конкретным причинам: уже есть лицензия (используют Битрикс24), нужна интеграция с CRM, планируется развитие до интернет-магазина, или требуется надёжная CMS с поддержкой от российского вендора. Технически такой проект несложный, но типичные ошибки — выбор неподходящей лицензии, неоптимальная структура инфоблоков, игнорирование производительности при простом трафике.
Выбор лицензии и редакции
Для корпоративного сайта-визитки без интернет-магазина достаточно редакции «Старт» или «Стандарт». «Малый бизнес» и «Бизнес» нужны, если планируется каталог с заказами. Для визитки с формами обратной связи, новостями и страницами услуг — «Стандарт» покрывает все потребности.
Лицензия «Старт» (~4 900 ₽/год) — ограничена одним сайтом, не поддерживает составной сайт (multisite) и веб-кластер. Для одного корпоративного сайта этого достаточно.
Структура инфоблоков
Типовой набор инфоблоков для корпоративного сайта:
| Инфоблок | Символьный код | Назначение |
|---|---|---|
| Новости | news |
Лента новостей компании |
| Услуги | services |
Страницы услуг |
| Портфолио | portfolio |
Кейсы, проекты |
| Команда | team |
Карточки сотрудников |
| Отзывы | reviews |
Отзывы клиентов |
| Вакансии | vacancies |
Открытые позиции |
| Партнёры | partners |
Логотипы и ссылки |
Все инфоблоки создаём в одном типе — например, CORPORATE. Тип задаётся при создании инфоблока в поле IBLOCK_TYPE_ID.
Важное решение — SEO-свойства. Для каждого инфоблока активировать SEO-свойства (meta-заголовок, meta-описание, canonical) на уровне раздела и элемента. Иначе потом придётся дорабатывать.
Шаблон компонента
Для вывода элементов инфоблока используем компоненты bitrix:news.list и bitrix:news.detail. Шаблон переопределяется в /local/templates/TEMPLATE_NAME/components/bitrix/news.list/services/.
Структура шаблона template.php:
<?php
/** @var array $arResult */
/** @var array $arParams */
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
?>
<div class="services-grid">
<?php foreach ($arResult['ITEMS'] as $item): ?>
<div class="service-card">
<?php if ($item['PREVIEW_PICTURE']): ?>
<img src="<?= $item['PREVIEW_PICTURE']['SRC'] ?>"
alt="<?= htmlspecialchars($item['NAME']) ?>">
<?php endif; ?>
<h3><?= htmlspecialchars($item['NAME']) ?></h3>
<div class="service-preview">
<?= $item['PREVIEW_TEXT'] ?>
</div>
<a href="<?= $item['DETAIL_PAGE_URL'] ?>" class="btn">Подробнее</a>
</div>
<?php endforeach; ?>
</div>
Формы обратной связи
Стандартная форма Битрикс (bitrix:main.feedback) — устаревшая, ограниченная. Рекомендуем два подхода:
1. Форма через вебформы (модуль form):
Создаётся в административной части: Сервисы → Формы. Гибко настраиваются поля, результаты отправки, почтовые шаблоны. Выводится компонентом bitrix:form.result.new.
2. Кастомная AJAX-форма. Более современный вариант — форма на HTML, валидация на JS, отправка через AJAX на контроллер Битрикс:
// /local/ajax/contact_form.php
require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !check_bitrix_sessid()) {
http_response_code(403);
echo json_encode(['error' => 'Forbidden']);
exit;
}
$name = htmlspecialchars(trim($_POST['name'] ?? ''));
$phone = htmlspecialchars(trim($_POST['phone'] ?? ''));
$email = htmlspecialchars(trim($_POST['email'] ?? ''));
if (empty($name) || empty($phone)) {
echo json_encode(['error' => 'Заполните обязательные поля']);
exit;
}
// Создать лид в Битрикс24 (если интегрировано)
if (\Bitrix\Main\Loader::includeModule('crm')) {
$lead = new \CCrmLead(false);
$lead->Add([
'TITLE' => 'Заявка с сайта от ' . $name,
'NAME' => $name,
'PHONE' => [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']],
'EMAIL' => [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']],
'SOURCE_ID' => 'WEB',
]);
}
// Отправить email
$event = new \Bitrix\Main\Mail\Event([
'EVENT_NAME' => 'CONTACT_FORM_SUBMIT',
'LID' => SITE_ID,
'C_FIELDS' => ['NAME' => $name, 'PHONE' => $phone, 'EMAIL' => $email],
]);
$event->send();
echo json_encode(['success' => true]);
Мультиязычность
Если сайт нужен на нескольких языках — настраивается составной сайт (multisite) на уровне лицензии «Стандарт»+. Каждый язык — отдельный сайт в Битрикс (SITE_ID), но на одном домене с языковыми папками (/en/, /de/).
Переводы страниц — через языковые свойства инфоблока (модуль iblock поддерживает мультиязычные значения через таблицы b_iblock_element_prop_s{N} для строк и b_iblock_element_prop_m{N} для множественных значений).
SEO: автогенерация мета-тегов
Для инфоблоков — шаблоны мета-тегов в настройках SEO инфоблока:
-
titleстраницы детального просмотра:{=ThisElement.NAME} — Компания ООО «Рога» -
description:{=ThisElement.PREVIEW_TEXT}(обрезается до 160 символов через фильтр в компоненте) -
canonical: автоматически через\Bitrix\Main\Page\Asset
Производительность
Для визитки с небольшим трафиком (до 1000 посетителей в день) достаточно:
- Включить Управляемый кэш (managed cache) в настройках компонентов.
- Кэш Битрикс файловый (по умолчанию) или Redis.
- HTML-кэш для страниц без персонализации — через компонент
bitrix:main.includeс типом кэшаA.
// Включить HTML-кэш для главной страницы
$APPLICATION->IncludeComponent('bitrix:main.include', '.default', [
'AREA_FILE_SHOW' => 'sect',
'PATH' => '/index.php',
'EDIT_TEMPLATE' => 'index',
'CACHE_TYPE' => 'A',
'CACHE_TIME' => 3600, // 1 час
]);
Структура файлов проекта
/local/
├── templates/
│ └── corporate_v1/ # Основной шаблон
│ ├── header.php
│ ├── footer.php
│ ├── styles/
│ ├── components/ # Переопределения шаблонов компонентов
│ └── images/
├── components/
│ └── local/ # Кастомные компоненты (если нужны)
└── php_interface/
├── init.php
└── user_lang/
Сроки разработки
| Вариант | Состав | Срок |
|---|---|---|
| Базовый (готовый дизайн) | Верстка + инфоблоки + формы | 5–8 дней |
| Дизайн + разработка | UX/UI + верстка + инфоблоки + CRM | 15–25 дней |
| Многоязычный сайт | + Multisite, переводы, hreflang | +5–8 дней |







