При переходе на новые версии технологической платформы 1С:Предприятие разработчики и администраторы иногда сталкиваются с аварийным завершением работы конфигуратора или клиентского приложения. Одной из характерных проблем является сообщение вида: «Ошибка SDBL: В схеме базы данных нет таблицы с именем ExtensionsInfo». Ошибка обычно проявляется при попытке сохранить внешнюю обработку, открыть список планов обмена или обновить конфигурацию базы данных.
Проанализируем природу этой ошибки, выясним причину ее возникновения и разберем по шагам все проверенные способы восстановления работоспособности информационной базы.
Причины возникновения ошибки
Для понимания сути сбоя рассмотрим внутреннее устройство платформы. Таблица ExtensionsInfo (в физической структуре СУБД она именуется с префиксом, например _ExtensionsInfo) представляет собой системную таблицу, предназначенную для хранения метаданных, версионирования и контроля расширений конфигурации.
Сбой уровня SDBL (System Data Base Layer — внутренний слой платформы для работы с базами данных) возникает по следующим причинам:
Ошибки релизов платформы: В ранних сборках ветки 8.3.10 (в частности, в релизе 8.3.10.2168) присутствовали зарегистрированные ошибки реструктуризации механизма расширений. При переходе со старых линеек (например, 8.3.8) платформа пыталась обратиться к таблице расширений, которая еще не была инициализирована в структуре DBSchema.
Устаревший режим совместимости: Конфигурации с длительным жизненным циклом (например, 1С:Управление производственным предприятием 1.3), работающие в режиме совместимости с версиями «8.2.13» или «8.2.16», при определенных операциях с внешними отчетами и обработками вызывают непредвиденное обращение движка к системным механизмам расширений.
Несоответствие кэша метаданных: Локальный кэш конфигуратора сохраняет старую схему метаданных, в то время как исполняемые модули новой платформы уже ожидают наличие новой системной таблицы.
Способ 1. Смена релиза платформы (Downgrade или обновление на стабильный релиз)
Разберем самый быстрый и безопасный способ, если ошибка вызвана недоработкой конкретной сборки 1С:
Откат на стабильную ветку: Если проблема возникла при переходе на промежуточный проблемный релиз (например, 8.3.10.2168), вернемся на стабильную платформу ветки 8.3.9 или исходную рабочую 8.3.8. Это позволяет мгновенно вернуть базу в строй без риска повреждения данных.
Обновление до финальных сборок ветки: Если функционал требует использования платформы 8.3.10 и выше, установим зрелые релизы (например, 8.3.10.2699) либо выполним переход на стабильные версии старших линеек (8.3.12, 8.3.14), где ошибка инициализации таблицы ExtensionsInfo была полностью устранена.
Способ 2. Пересборка структуры базы через выгрузку и загрузку .dt
Когда требуется заставить платформу принудительно пересоздать схему базы данных и добавить все недостающие системные таблицы, применим процедуру полной пересборки. Разберем порядок действий:
Выполним запуск информационной базы в конфигураторе на стабильной версии платформы (или в текущей, если конфигуратор позволяет выгрузить данные).
Создадим архивную копию: перейдем в меню Администрирование → Выгрузить информационную базу... и сохраним файл с расширением .dt.
Создадим новую пустую информационную базу на целевой платформе.
Откроем конфигуратор созданной пустой базы и перейдем в меню Администрирование → Загрузить информационную базу..., указав ранее сохраненный .dt-файл.
В процессе загрузки платформа сформирует системные таблицы DBSchema с нуля в строгом соответствии с требованиями установленного релиза, включая служебную таблицу ExtensionsInfo.
Способ 3. Принудительная реструктуризация метаданных
Иногда достаточно инициировать механизм реструктуризации базы данных, чтобы платформа обновила внутреннее описание структуры. Выполним следующие шаги:
Откроем базу данных в режиме Конфигуратор.
Внесем любое фиктивное изменение в конфигурацию, находящуюся на поддержке с возможностью изменения (например, отредактируем комментарий в свойствах любого общего модуля или корня конфигурации).
Нажмем клавишу F7 (или меню Конфигурация → Обновить конфигурацию базы данных).
Применим изменения в окне реструктуризации. В процессе применения изменений платформа автоматически создаст недостающие служебные структуры данных.
Способ 4. Очистка кэша и удаление расширений через командную строку
Если в базе остались некорректные связи с расширениями или поврежден кэш структуры, выполним пакетную очистку:
Очистка временных файлов: Полностью удалим каталоги кэша 1С на локальном компьютере и сервере приложений (папки %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8).
Принудительное удаление расширений: Запустим конфигуратор из командной строки с ключом удаления всех расширений, чтобы сбросить конфликтующие метаданные:
Способ 5. Действия для клиент-серверного варианта (SQL)
В базах данных под управлением Microsoft SQL Server или PostgreSQL причиной ошибки могут быть зависшие записи о блокировках и фиксациях изменений структуры. Разберем регламент для системных администраторов:
Создадим полную резервную копию базы средствами СУБД перед выполнением любых прямых операций.
В случае зависания сессий реструктуризации очистим служебные таблицы регистрации изменений метаданных: _ConfigChngR и _ConfigChngR_ExtProps.
Для серверов под управлением Linux и СУБД PostgreSQL проверим системную локаль кластера. Она должна быть строго ru_RU.UTF-8, так как некорректная локализация операционной системы может препятствовать инициализации системных таблиц с именами в смешанном регистре.