Символьный код — это латинская строка, которая подставляется в URL вместо числового ID. Именно она превращает /catalog/element.php?ID=245 в понятный адрес вида /catalog/smartfony/iphone-15/.
Что такое символьный код и зачем он нужен
Символьный код (в базе данных — поле CODE) есть у каждого элемента и у каждого раздела инфоблока. В отличие от числового ID, который присваивается автоматически и не несёт смысла, символьный код задаёт человекопонятный фрагмент адреса.
Основные задачи символьного кода:
- формирование ЧПУ (человекопонятных URL) для страниц каталога, новостей, статей;
- устойчивая идентификация элемента при импорте и экспорте — код не меняется при переносе данных, в отличие от ID;
- обращение к элементу или разделу по коду из кода компонентов и API (
GetByCode).
Хороший символьный код короткий, состоит из латинских букв в нижнем регистре, цифр и дефисов: например iphone-15-pro. Пробелы, кириллица и спецсимволы в URL недопустимы.
Где хранится и как заполнить вручную
Поле символьного кода доступно прямо в форме редактирования. Чтобы заполнить его вручную:
- Откройте Контент → (ваш инфоблок) → элемент или раздел.
- Перейдите на вкладку «Элемент» (или «Раздел»).
- Найдите поле «Символьный код» и введите латинскую строку.
- Сохраните изменения.
Если поле не отображается в форме, его видимость настраивается на вкладке «Поля» инфоблока — там же, где задаётся обязательность и значение по умолчанию. Для раздела и для элемента настройки задаются отдельными строками таблицы полей.
Рекомендация: сделайте поле обязательным для элементов каталога, чтобы ни одна карточка товара не осталась без ЧПУ.
Автоматическая транслитерация из названия
Заполнять код руками для сотен товаров непрактично. Битрикс умеет генерировать его автоматически из названия элемента или раздела. Настройка включается на вкладке «Поля» инфоблока.
Для строки «Символьный код» (и элемента, и раздела) доступны параметры:
| Параметр | Назначение |
|---|---|
| Транслитерация | включает автоматическую генерацию кода из названия при сохранении |
| Уникальность | добавляет числовой суффикс, если такой код уже существует |
| Замена пробелов | символ, которым заменяются пробелы (обычно дефис -) |
| Правила замены | набор ГОСТ / стандарт транслитерации кириллицы в латиницу |
После включения транслитерации при создании нового элемента с названием «Смартфон Xiaomi Redmi» код автоматически станет smartfon-xiaomi-redmi.
Массовое заполнение существующих элементов
Транслитерация работает только при сохранении. Если инфоблок уже наполнен, а коды пустые, есть несколько способов заполнить их массово:
- Пересохранение в списке. В списке элементов отметьте нужные, выберите действие и пересохраните — при включённой транслитерации коды сгенерируются. Для больших объёмов это медленно.
- Небольшой скрипт на API. Пройтись по элементам через
CIBlockElement::GetListи для пустыхCODEвызватьCIBlockElement::UpdateсCIBlockElement::SetCodeили сгенерировать код черезCUtil::translit. - SQL-обновление напрямую в таблице
b_iblock_element— только для опытных администраторов и с обязательной резервной копией.
После массового заполнения проверьте уникальность кодов внутри инфоблока, иначе часть URL будет конфликтовать.
Как код связан с настройкой ЧПУ
Сам по себе символьный код не включает ЧПУ. Человекопонятные адреса формирует комплексный компонент (например «Каталог» или «Новости»), у которого в параметрах включена опция «Включить поддержку ЧПУ».
В настройках компонента задаются шаблоны путей, в которых используются переменные кода:
#SECTION_CODE_PATH#— путь из символьных кодов вложенных разделов;#ELEMENT_CODE#— символьный код элемента;#SECTION_CODE#— код конкретного раздела.
Пример шаблона URL детальной страницы: #SITE_DIR#catalog/#SECTION_CODE_PATH#/#ELEMENT_CODE#/. Если у элемента или раздела код пуст, компонент подставит числовой ID — ЧПУ «сломается» и станет частично числовым.
Чтобы адреса были устойчивыми к дублям, в настройках инфоблока включают таблицу соответствия URL (тип адресации через b_iblock_element и b_iblock_section) — Битрикс хранит связку код-путь и корректно отдаёт 404 для несуществующих.
Частые ошибки
Типичные проблемы при работе с символьным кодом:
- Пустой код у части элементов. ЧПУ работает не везде, URL «прыгает» между кодом и ID. Решение — сделать поле обязательным и заполнить пропуски.
- Дубли кодов в одном инфоблоке. Без включённой проверки уникальности два элемента получают одинаковый URL, открывается только один. Включите «Уникальность» на вкладке «Поля».
- Кириллица или пробелы в коде. Попадают в URL в виде
%D1%8..., ломают ЧПУ и SEO. Всегда используйте транслитерацию. - Изменение кода у живой страницы. Старый URL перестаёт открываться и отдаёт 404. При смене кода настраивайте 301-редирект со старого адреса.
- Забыли про код раздела. Транслитерацию включили только для элемента — путь
#SECTION_CODE_PATH#собирается из ID. Настройте транслитерацию отдельно и для раздела. - Слишком длинные коды. Название в 200 символов даёт нечитаемый URL. Ограничьте длину кода в настройках транслитерации.
Итог
Символьный код — основа ЧПУ в инфоблоках 1С-Битрикс. Чтобы адреса были чистыми и стабильными:
- включите транслитерацию и проверку уникальности отдельно для элементов и для разделов на вкладке «Поля»;
- сделайте поле кода обязательным, заполните пропуски у существующих элементов;
- в компоненте каталога включите поддержку ЧПУ и используйте
#SECTION_CODE_PATH#и#ELEMENT_CODE#в шаблонах путей; - при смене кода живой страницы не забывайте про 301-редирект.
Такой подход даёт человекопонятные, устойчивые к дублям адреса, которые хорошо индексируются поисковыми системами.