Как исправить ошибку «Invalid object name SchemaStorage» при выгрузке информационной базы 1С в DT?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При попытке выгрузить информационную базу в файл выгрузки .dt через меню «Администрирование — Выгрузить информационную базу...» в Конфигураторе может возникнуть критическая ошибка СУБД. В зависимости от режима работы базы данных текст ошибки выглядит следующим образом:

В клиент-серверном варианте (Microsoft SQL Server):
Microsoft SQL Server Native Client: Invalid object name 'SchemaStorage'. HRESULT=80040E37, SQLSrvr: SQLSTATE=42S02, state=1, Severity=10, native=208, line=1

В файловом варианте (1Cv8.1CD):
Ошибка СУБД: Ошибка SQL: Таблица не найдена 'SchemaStorage'

Разберем причины возникновения этой неполадки и подробно рассмотрим все способы её устранения.

Почему возникает ошибка с таблицей SchemaStorage

Проанализируем природу проблемы. Таблица SchemaStorage представляет собой внутреннюю системную таблицу платформы 1С:Предприятие 8.3, которая отвечает за версионирование, хранение и контроль состояния схемы метаданных конфигурации.

Сбой происходит по следующим причинам:

  1. Несоответствие структуры после перехода на новую платформу. При переносе базы со старых версий платформы или обновлении релиза (в частности, это характерно для сборок ветки 8.3.11) штатный механизм выгрузки обращается к таблице SchemaStorage, которая еще не была создана или инициализирована в структуре СУБД.
  2. Рассинхронизация метаданных из-за динамического обновления. Регулярное применение команды «Обновить конфигурацию базы данных» в динамическом режиме («демоническое обновление») может нарушать внутреннюю целостность служебных таблиц.
  3. Ошибки платформы при обработке спецсимволов в имени файла. В некоторых релизах выгрузка дает сбой, если в целевом пути или имени файла .dt содержатся кириллические символы, точки и сложные разделители.

Способ 1. Тестирование и исправление информационной базы (Реструктуризация)

Основной и наиболее надежный способ устранения ошибки — запуск механизма реструктуризации таблиц. В процессе реструктуризации платформа 1С заново пересоздает и приводит к актуальному состоянию все системные и пользовательские таблицы, включая SchemaStorage.

Выполним процедуру по шагам:

  1. Запустим Конфигуратор от имени пользователя с административными правами в монопольном режиме (все активные сеансы пользователей и фоновые задания должны быть завершены).
  2. Откроем главное меню «Администрирование» и выберем пункт «Тестирование и исправление...».
  3. В открывшемся окне настроек установим переключатель на пункт «Тестирование и исправление».
  4. В списке проверок отметим обязательный пункт «Реструктуризация таблиц информационной базы» (остальные флажки можно снять для ускорения процесса).
  5. В блоке переключателей «При наличии ссылочных ошибок» и «При частичной потере данных» оставим значения по умолчанию.
  6. Нажмем кнопку «Выполнить» и дождемся завершения процедуры в служебном окне сообщений.
  7. Повторим операцию выгрузки базы в файл .dt.

Способ 2. Принудительное обновление структуры конфигурации через фиктивное изменение

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

Разберем порядок действий:

  1. В дереве метаданных Конфигуратора добавим временный объект, например новую константу с именем ВременнаяКонстантаДляСхемы, либо изменим комментарий у любого существующего объекта.
  2. Выполним команду меню «Конфигурация — Обновить конфигурацию базы данных» (или нажмем клавишу F7).
  3. В окне реструктуризации подтвердим внесение изменений. В этот момент платформа принудительно проверит и создаст недостающие служебные структуры данных, в том числе таблицу SchemaStorage.
  4. Удалим созданную временную константу и повторно выполним обновление конфигурации базы данных (F7).
  5. Проверим выгрузку информационной базы.

Способ 3. Проверка и упрощение имени файла выгрузки

В ряде ситуаций инициатором сбоя становится некорректная обработка имени результирующего архива на уровне платформы. Если в имени файла используются составные даты через точки (например, 1Cv8_БЖ_2024.05.10.dt), механизм выгрузки может выдавать ошибку структуры.

Попробуем выполнить выгрузку, указав простое имя файла только из латинских букв в корневой каталог диска (например, C:\backup\1Cv8.dt или D:\dump.dt).

Способ 4. Обновление релиза платформы 1С:Предприятие

Поскольку проблема с отсутствием таблицы SchemaStorage была признана дефектом платформы в определенных версиях (включая 8.3.11.2924 и 8.3.11.2954), рекомендуется выполнить обновление технологической платформы до более поздних стабильных релизов веток 8.3.12, 8.3.14 или актуальных версий 8.3.20+.

Способ 5. Сброс состояния схемы в MS SQL Server (для клиент-серверного варианта)

Если ошибка возникает в клиент-серверной базе данных после аварийного завершения обновления, а таблица SchemaStorage присутствует, но заблокирована в некорректном статусе, исправим состояние на уровне СУБД.

Выполним запрос в среде SQL Server Management Studio (SSMS) к рабочей базе данных (предварительно обязательно сделав резервную копию базы средствами SQL):

UPDATE SchemaStorage SET Status = 100;

Значение Status = 100 возвращает схему метаданных в нормальное рабочее состояние, после чего выгрузка через Конфигуратор отрабатывает без сбоев.

Важные рекомендации по резервному копированию

Помним, что выгрузка в файл с расширением .dt не является штатным средством регулярного резервного копирования для промышленных баз данных. Формат .dt предназначен исключительно для переноса данных между различными СУБД (например, перенос из файлового режима в PostgreSQL или MS SQL) и разворачивания баз для разработки.

Для надежного сохранения данных используем нативные инструменты:

  1. Создание полных и разностных резервных копий (.bak) средствами Microsoft SQL Server или утилиты pg_dump / pg_basebackup в среде PostgreSQL.
  2. Для файловых баз — прямое пофайловое копирование файла 1Cv8.1CD при гарантированно отключенных пользовательских сеансах.
← На главную