Как разобраться с кейсом: таблицы бд и модули видны только в запросах SQL, а слева в (структуре дерево) и в настройках модуля их нет?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: не могу разобраться, почему новые создаваемые таблицы видны лишь в SQL запросах, а в структуре дерево их нет, там видны только стандартные таблицы битрикса. Точно также происходит при создании модулей, создаваемые модули не появляются их не видно а в QSL запросах они есть.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Андрей PHP Ответ

Если таблицы в Битрикс видны через SQL, но не отображаются в “дереве структуры” или настройках модуля, это обычно не ошибка базы. В административном интерфейсе Битрикса не все таблицы обязаны появляться как сущности. Дерево структуры показывает файловую структуру/разделы сайта, а не список всех SQL-таблиц. А настройки модуля появляются только если модуль зарегистрирован по правилам Битрикса и имеет административные страницы.

Для таблицы в Битрикс недостаточно выполнить CREATE TABLE. Если это таблица модуля, должны быть:

  • папка модуля в /local/modules/your.module или /bitrix/modules/your.module;
  • install/index.php с классом установки;
  • описание версии в install/version.php;
  • ORM-класс Table, если используете D7;
  • админские страницы, если хотите видеть управление в админке;
  • регистрация модуля через RegisterModule.

Пример ORM-класса:

namespace VendorModule;
 
use BitrixMainEntity;
 
class ItemTable extends EntityDataManager
{
    public static function getTableName()
    {
        return 'vendor_module_item';
    }
 
    public static function getMap()
    {
        return [
            new EntityIntegerField('ID', ['primary' => true, 'autocomplete' => true]),
            new EntityStringField('TITLE'),
        ];
    }
}

namespace VendorModule; use BitrixMainEntity; class ItemTable extends EntityDataManager { public static function getTableName() { return 'vendor_module_item'; } public static function getMap() { return [ new EntityIntegerField('ID', ['primary' => true, 'autocomplete' => true]), new EntityStringField('TITLE'), ]; } }

Если модуль “создан”, но не виден в списке модулей, проверьте, что его код лежит в правильной директории, имя класса установки совпадает с ID модуля, файл install/index.php не падает с ошибкой, а модуль действительно установлен через админку или API.

Также очистите кэш автозагрузки и проверьте права на файлы. В старых проектах Битрикс часто путают /bitrix/modules и /local/modules. Для своего кода лучше использовать /local/modules.

Вывод: SQL-таблица сама по себе не появляется в интерфейсе. Нужно либо писать админскую страницу для управления этой таблицей, либо подключать ее через ORM/модуль. “Структура дерева” не является phpMyAdmin и не должна показывать пользовательские таблицы базы.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно