К статье
Практический материал

Администрирование · 9 мин

Как редактировать меню в 1С-Битрикс

Как редактировать меню в 1С-Битрикс: файлы .menu.php, визуальный режим, типы меню, добавление и скрытие пунктов. Пошаговая инструкция с проверкой результата.

Меню в 1С-Битрикс хранится не в базе данных, а в обычных файлах с расширением .menu.php, лежащих в папках сайта. Это значит, что редактировать навигацию можно тремя способами: через визуальный режим на публичной странице, через административный интерфейс и напрямую через файловую структуру. Выбор способа зависит от задачи и ваших прав доступа.

Типичная структура меню в Битриксе — двухуровневая: в корне сайта лежит файл главного («верхнего») меню, а в разделах — файлы левого или подразделового меню. Каждый файл содержит PHP-массив $aMenuLinks со списком пунктов: название, ссылка, условия показа. Понимание этой структуры избавляет от большинства проблем при редактировании.

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

Как устроено меню в Битриксе и где лежат файлы

Система поддерживает несколько типов меню одновременно — например, верхнее (top), левое (left) и нижнее (bottom). Тип определяется именем файла: .top.menu.php, .left.menu.php, .bottom.menu.php. Какой именно тип выводится в конкретном месте шаблона, решает компонент bitrix:menu, вставленный в шаблон сайта.

Файл меню верхнего уровня находится в корне сайта. Файлы меню разделов — в соответствующих папках: например, меню раздела «Каталог» лежит в /catalog/. Когда посетитель заходит в раздел, система ищет файл меню в его папке; если не находит — поднимается уровнем выше, пока не дойдёт до корня.

Это поведение важно понимать: если в разделе «внезапно» показывается не то меню, скорее всего, в его папке просто нет своего файла, и подтягивается родительское. И наоборот — лишний файл .left.menu.php, случайно созданный в подразделе, переопределит меню для всей ветки.

Редактирование меню в визуальном режиме

Самый простой способ для контент-менеджера — правка прямо на странице сайта. Войдите в админ-панель, перейдите на публичную часть сайта и включите режим правки (кнопка «Правка» в верхней панели). При наведении на область меню появится всплывающая панель компонента.

Нажмите иконку редактирования меню (обычно это пункты вида «Изменить меню top» или «Редактировать пункты меню в текущем разделе»). Откроется форма со списком пунктов: название, ссылка, сортировка. Здесь можно переименовать пункт, поменять URL, изменить порядок и удалить лишнее. После сохранения изменения сразу видны на сайте.

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

Порядок действий в визуальном режиме
  1. 1
    Войдите в админ-панель и откройте публичную страницу сайта
  2. 2
    Включите режим правки кнопкой в верхней панели
  3. 3
    Наведите курсор на область меню и нажмите иконку редактирования
  4. 4
    Выберите нужный тип меню и файл (текущего раздела или родительский)
  5. 5
    Измените названия, ссылки и порядок пунктов, сохраните
  6. 6
    Обновите страницу без кэша (Ctrl+F5) и проверьте результат

Редактирование через административный интерфейс

Более контролируемый путь — раздел админки Контент → Структура сайта → Файлы и папки. Найдите нужную папку, откройте файл меню на редактирование. Система предложит два варианта: удобный визуальный редактор пунктов или правку файла «как PHP» — текстом.

Редактирование как PHP открывает исходный код массива $aMenuLinks. Этот способ незаменим, когда нужно добавить пункт с условиями показа, массово поправить ссылки или скопировать структуру меню между разделами. Каждый элемент массива выглядит примерно так: название строкой, ссылка, массив дополнительных ссылок, массив параметров, код условия.

При ручной правке кода соблюдайте синтаксис: запятые между элементами массива, корректные кавычки, отсутствие лишних символов вне PHP-блока. Один пропущенный символ — и на месте меню посетитель увидит пустое место или ошибку. После сохранения обязательно откройте страницу раздела и убедитесь, что меню отображается.

Добавление, скрытие и переименование пунктов

Чтобы добавить пункт, в визуальном редакторе нажмите «Добавить пункт» и укажите название и ссылку. Ссылка может быть относительной (/catalog/) или абсолютной на внешний ресурс. Пункт появится в конце списка; перетащите его на нужное место или задайте индекс сортировки.

Скрыть пункт можно двумя способами. Первый — удалить его из файла меню, если он не нужен нигде. Второй — использовать условие показа: в массиве параметров пункта задаётся проверка, например на авторизацию пользователя или принадлежность к группе. Это удобно для пунктов «Личный кабинет» или «Администрирование», которые не должны видеть все посетители.

Отдельный частый случай — автоматическое добавление пунктов. Если в настройках компонента меню включён режим «подключать файлы с расширением .menu_ext.php», пункты могут формироваться динамически из инфоблоков. Тогда ручная правка файла не даст результата: сначала отключите расширение или правьте сам файл .menu_ext.php.

Типичные ошибки
01
Правка корневого меню вместо разделового — изменения не видны в нужном разделе
02
Создание дубля .left.menu.php в подразделе — ломается наследование меню для всей ветки
03
Игнорирование .menu_ext.php — ручные пункты перезаписываются динамическими
04
Сохранение файла с синтаксической ошибкой — меню пропадает на сайте
05
Проверка только из-под администратора — пункты с условиями показа ведут себя иначе у гостей

Настройка типов меню и сортировки

Список доступных типов меню задаётся в настройках главного модуля: Настройки → Настройки продукта → Настройки модулей → Управление структурой (в старых версиях — в настройках главного модуля). Там можно добавить свой тип, например «footer_links», и потом создавать файлы .footer_links.menu.php.

Порядок пунктов внутри меню определяется их позицией в массиве — чем раньше элемент, тем выше пункт в списке. В визуальном редакторе порядок меняется перетаскиванием или явным указанием сортировки. Если два пункта получили одинаковую сортировку, они выводятся в порядке следования в файле.

Учтите, что шаблон компонента меню может сам ограничивать глубину и количество выводимых пунктов. Если пункт добавлен в файл, но не отображается, проверьте параметры компонента bitrix:menu в шаблоне сайта: максимальный уровень вложенности и выбранный тип меню.

Способы редактирования меню

Визуальный режим

Подходит контент-менеджерам для точечных правок. Ограничение: сложно править условия показа и массовые изменения.

Админка, редактор пунктов

Баланс удобства и контроля: виден файл и раздел, нет риска синтаксических ошибок. Медленно при больших объёмах.

Правка файла как PHP

Максимальная гибкость: условия, параметры, массовая замена. Требует аккуратности и резервной копии.

Проверка результата и откат изменений

После любых правок сбросьте кэш: Битрикс кэширует меню, и без сброса вы можете смотреть на устаревшую версию. Используйте кнопку очистки кэша в админ-панели или настройки автокэширования. Затем откройте страницы в режиме инкогнито — так вы увидите сайт глазами обычного посетителя без админских прав.

Проверяйте не только наличие новых пунктов, но и работу ссылок, подсветку активного раздела и поведение меню на вложенных страницах. Если пункт должен показываться только авторизованным, проверьте и гостевой, и пользовательский сценарий.

Для отката полезно хранить копии файлов меню перед правками. Если сайт под версионным контролем (Git), файлы .menu.php должны коммититься вместе с остальным кодом — тогда восстановление занимает секунды.

Контрольные точки

Как проверить результат

Отображение меню
Норма

Все пункты на месте, порядок соответствует задуманному

Тревожный признак

Меню пустое или частично пропало — вероятна ошибка синтаксиса

Ссылки пунктов
Норма

Каждый пункт ведёт на нужную страницу без 404

Тревожный признак

Ссылка ведёт на ошибку — проверьте путь и слеши

Активный пункт
Норма

Текущий раздел подсвечен в меню

Тревожный признак

Подсветка не работает — проверьте URL пункта и настройки компонента

Гостевой доступ
Норма

В инкогнито видны только публичные пункты

Тревожный признак

Гости видят служебные пункты — перепроверьте условия показа

Частые вопросы

Добавил пункт в файл меню, но на сайте его нет. Что делать?

Сначала сбросьте кэш сайта — меню кэшируется агрессивно. Затем проверьте, тот ли файл вы правили: в папке раздела может быть свой файл, переопределяющий корневой. Также убедитесь, что компонент меню не ограничивает глубину или не подключает динамические пункты через .menu_ext.php.

Как сделать пункт меню видимым только авторизованным пользователям?

Откройте файл меню как PHP и в четвёртом параметре пункта задайте условие, например проверку $USER->IsAuthorized(). Точный синтаксис зависит от версии системы, поэтому сверяйтесь с существующими пунктами в файле — часто там уже есть примеры условий.

В разделе показывается меню родителя. Это ошибка?

Нет, это штатное поведение: если в папке раздела нет своего файла меню, система поднимается вверх по структуре. Чтобы у раздела было своё меню, создайте в его папке файл нужного типа через визуальный редактор или файловый менеджер админки.

Можно ли редактировать меню по FTP?

Да, файлы .menu.php доступны по FTP или SSH как обычные PHP-файлы. Сохраняйте их в кодировке сайта (обычно UTF-8 без BOM) и обязательно делайте копию перед правкой — при ошибке синтаксиса меню перестанет выводиться.

Почему после правки меню пропало совсем?

Почти всегда причина — синтаксическая ошибка в файле: пропущенная запятая, лишняя скобка или текст вне PHP-тегов. Восстановите файл из копии или внимательно сверьте структуру массива. Если копии нет, создайте файл заново через визуальный редактор и добавьте пункты повторно.

Итог

Что важно запомнить

Меню Битрикса — это файлы .menu.php в папках сайта, а не записи в базе. Правьте через визуальный режим для простых задач и как PHP — для сложных, всегда сбрасывайте кэш и проверяйте результат глазами гостя, а перед ручной правкой сохраняйте копию файла.