Что делать при ошибке SDBL: «В схеме базы данных нет таблицы с именем DataHistorySettingsExt»?

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

При работе с конфигурациями 1С, особенно при активном использовании расширений, можно столкнуться с невосстановимой ошибкой, которая блокирует доступ к объектам, добавленным через расширение. Ошибка выглядит так: Ошибка SDBL: В схеме базы данных нет таблицы с именем DataHistorySettingsExt. Она обычно возникает при попытке открыть справочник или документ, созданный в расширении, на платформах версий 8.3.22 и 8.3.23. Давайте вместе разберемся в причинах этой проблемы и рассмотрим наиболее эффективные способы ее решения.

Выясним причину ошибки

Чтобы понять, как исправить ошибку, сначала проанализируем, что она означает. Название таблицы DataHistorySettingsExt дает нам две важные подсказки:

Таким образом, DataHistorySettingsExt — это служебная таблица, в которой должны храниться настройки истории данных для объектов, добавленных в конфигурацию через расширения. Ошибка «В схеме базы данных нет таблицы» означает, что платформа пытается обратиться к этой таблице (например, чтобы прочитать настройки версионирования для нового справочника), но не может ее найти.

Это является следствием ошибки в самой платформе 1С (в частности, в релизах 8.3.22 и 8.3.23), при которой нарушается структура базы данных с расширениями. В процессе применения расширения и реструктуризации базы данных платформа по какой-то причине не создает эту важную служебную таблицу, что приводит к нарушению логической целостности метаданных расширений и, как следствие, к сбою в работе.

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

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

Рассмотрим пошаговый алгоритм действий, который гарантированно поможет исправить ситуацию.

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

    Первым делом необходимо обновить технологическую платформу до актуальной версии, например, 8.3.24.1368 или выше. Именно в этих версиях фирма «1С» внесла исправления, затрагивающие механизмы реструктуризации таблиц расширений.

  2. Запуск «Тестирования и исправления».

    После обновления платформы необходимо запустить информационную базу в режиме «Конфигуратор». Далее перейдите в меню «Администрирование» -> «Тестирование и исправление...».

  3. Выбор правильных опций для исправления.

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

    • Реструктуризация таблиц информационной базы
    • Пересоздание автономной конфигурации
    • Обновление размещения таблиц информационной базы
    • Проверка логической целостности расширений конфигурации
    • Реструктуризация таблиц расширений конфигурации

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

  4. Выполнение проверки.

    Нажмите кнопку «Выполнить». Процесс может занять некоторое время в зависимости от объема базы данных. После его завершения ошибка должна исчезнуть.

Способ 2: Временные и альтернативные решения

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

Манипуляции с объектами в расширении

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

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

В некоторых случаях такая последовательность действий может запустить корректный механизм реструктуризации и создать недостающую таблицу. Однако, как показывает практика, на версиях 8.3.22 и 8.3.23 этот метод часто не срабатывает.

Выгрузка и загрузка информационной базы в *.dt

Классический способ исправления многих проблем, связанных с нарушением физической или логической структуры базы данных. Этот метод полностью пересоздает базу данных на основе ее логического описания.

  1. Запустите базу в режиме «Конфигуратор».
  2. Перейдите в меню «Администрирование» -> «Выгрузить информационную базу...» и сохраните файл *.dt.
  3. Создайте новую, абсолютно пустую информационную базу.
  4. Запустите новую базу в режиме «Конфигуратор».
  5. Перейдите в меню «Администрирование» -> «Загрузить информационную базу...» и выберите сохраненный ранее файл *.dt.

Очистка кэша

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

  1. Удалите информационную базу из списка запуска 1С.
  2. Вручную удалите содержимое папок кэша. Обычно они находятся по путям: %AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.
  3. Добавьте информационную базу в список заново.

Выводы и рекомендации

Проблема с отсутствием таблицы DataHistorySettingsExt — это подтвержденная ошибка платформы 1С. Хотя существуют обходные пути, наиболее правильным и системным решением является переход на стабильную, свежую версию платформы (8.3.24 и выше) и выполнение полного тестирования и исправления с новыми опциями реструктуризации для расширений.

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

← На главную