Ключевые таблицы
Почтовая подсистема (Mail System)
"Событие" (Event) в контексте базы данных битрикса — это почти всегда почтовое событие. Вся система отправки писем строится на трех таблицах.
Таблица b_event (Очередь отправки)
Эта таблица хранит конкретные письма, которые были сформированы системой и ждут отправки (или уже отправлены).
- ID: Первичный ключ (Primary Key).
- EVENT_NAME:
Символьный код типа почтового события (например,
SALE_NEW_ORDERилиFEEDBACK_FORM). Связывает письмо с шаблоном. - MESSAGE_ID:
ID почтового шаблона (
b_event_message), на основе которого было создано это письмо. Если письмо создано по нескольким шаблонам, поле может быть пустым или содержать один из ID. - LID (Language ID / Site ID):
Символьный код сайта (
s1), к которому относится событие. - C_FIELDS:
Самое важное поле. Здесь хранится сериализованный массив (или специальная строка) с данными, которые подставляются в письмо.
- Пример:
#ORDER_ID# => 123,#USER_NAME# => Иван. - Как работает: Когда агент отправки берет запись, он распаковывает
C_FIELDSи заменяет плейсхолдеры в шаблоне на эти значения.
- Пример:
- DATE_INSERT: Дата и время создания события.
- DATE_EXEC: Дата и время фактической отправки письма почтовым сервером.
- SUCCESS_EXEC:
Статус отправки.
Y— Успешно отправлено.N— Ошибка отправки (письмо осталось в очереди).0— Еще не обработано (ждет очереди).F— Ошибка при выполненииmail().
- DUPLICATE:
Флаг дублирования (
Y/N). Используется, если событие нужно отправить несколько раз разным получателям.
Таблица b_event_type (Типы событий)
Справочник, определяющий, какие вообще бывают события в системе.
- ID: Первичный ключ.
- LID:
Язык интерфейса (ru, en). Для одного
EVENT_NAMEможет быть несколько записей на разных языках (для админки). - EVENT_NAME:
Уникальный код (строка). Например:
USER_INFO,NEW_USER. - NAME: Название типа события (видно в админке).
- DESCRIPTION:
Описание доступных полей (макросов).
- Пример:
#USER_ID# - ID пользователя,#EMAIL# - Email пользователя. Подсказка для админа при создании шаблона.
- Пример:
Таблица b_event_message (Почтовые шаблоны)
Хранит верстку и настройки конкретных писем.
- ID: Первичный ключ.
- EVENT_NAME:
Привязка к типу события (
b_event_type). - ACTIVE:
Активность шаблона (
Y/N). - LID: Привязка к сайту.
- EMAIL_FROM / EMAIL_TO:
От кого и кому. Здесь могут быть макросы (
#EMAIL_TO#). - SUBJECT: Тема письма.
- MESSAGE:
Тело письма (
TEXTилиHTML). Здесь находится основной контент с макросами. - BODY_TYPE:
Тип содержимого:
textилиhtml.
Файловая система (File System)
Битрикс не хранит файлы в базе (BLOB), но хранит ссылки на них.
Таблица b_file (Реестр файлов)
Главная таблица для всех картинок и документов (аватарки, товары, документы).
- ID:
Числовой идентификатор файла. Именно это число хранится в свойствах инфоблоков (
PREVIEW_PICTURE,PROPERTY_FILE). - TIMESTAMP_X: Дата загрузки файла.
- MODULE_ID:
Модуль, который загрузил файл (например,
iblock,main,sale). Помогает при очистке мусора. - HEIGHT / WIDTH: Высота и ширина (если изображение). Позволяет узнать размеры, не открывая сам файл с диска.
- FILE_SIZE: Размер в байтах.
- CONTENT_TYPE:
MIME-тип (например,
image/jpeg,application/pdf). - SUBDIR:
Подпапка внутри директории
/upload/.- Пример:
iblock/a14. Битрикс автоматически раскидывает файлы по папкам, чтобы в одной не скапливались миллионы файлов.
- Пример:
- FILE_NAME:
Имя файла на диске (часто хешированное, например
d41d8cd98f00b204e9800998ecf8427e.jpg). - ORIGINAL_NAME:
Исходное имя файла при загрузке (например,
photo_2023.jpg).
Как собрать полный путь:
/upload/+SUBDIR+/+FILE_NAME.
Пользователи (Users)
Таблица b_user (Пользователи)
Центральная таблица авторизации.
- ID: Уникальный ID пользователя.
- LOGIN: Логин (обязательное, мин. 3 символа).
- PASSWORD: Хеш пароля. В старых версиях MD5, в новых — более сложные алгоритмы с солью.
- EMAIL: Email адрес.
- ACTIVE:
Флаг активности (
Y/N). ЕслиN, вход запрещен. - DATE_REGISTER: Дата регистрации.
- LAST_LOGIN: Дата последнего успешного входа.
- LID: Сайт, на котором зарегистрировался пользователь (важно для мультисайтовости).
- PERSONAL_... / WORK_...: Группы полей профиля (PHOTO, PHONE, CITY и т.д.).
- XML_ID: Внешний код (для синхронизации с 1С или Active Directory).
Настройки ядра (Kernel)
Таблица b_option (Настройки модулей)
Здесь хранятся все галочки, которые вы нажимаете в "Настройках модулей".
- MODULE_ID:
ID модуля (например,
main,sale,catalog). - NAME:
Имя настройки (ключа).
- Пример:
admin_passwordh(хеш пароля для сессии),update_devsrv(использовать ли dev-сервер обновлений).
- Пример:
- VALUE: Значение настройки. Обычно строка.
- SITE_ID: Если настройка привязана к конкретному сайту (необязательно).
Таблица b_agent (Агенты / Cron)
Планировщик задач.
- ID: ID агента.
- MODULE_ID: Модуль, к которому относится агент.
- NAME:
PHP-код, который нужно выполнить.
- Пример:
CIBLock::CleanUp();
- Пример:
- ACTIVE:
Активность (
Y/N). - LAST_EXEC: Когда запускался в последний раз.
- NEXT_EXEC: Когда должен запуститься в следующий раз.
- AGENT_INTERVAL: Интервал запуска в секундах.
- IS_PERIOD:
Y— периодический (запускать строго раз в N секунд),N— однократный (или нестрогий период).
Как с ними работать?
Напрямую SQL-запросами в эти таблицы писать категорически не рекомендуется (кроме случаев экстремального восстановления сайта). Битрикс имеет API для всего:
- b_event ->
CEvent::Send(...) - b_file ->
CFile::SaveFile(...),CFile::GetPath(...) - b_user ->
CUser::Add(...),CUser::GetList(...) - b_option ->
COption::SetOptionString(...),COption::GetOptionString(...)