При работе с современными конфигурациями 1С пользователи и администраторы часто сталкиваются с неприятным сообщением: «Структура данных не поддерживает хранение расширений. Необходимо отключить режим совместимости». Чаще всего это происходит при попытке обновить платформу, загрузить новую версию конфигурации или просто при входе в программу после технических манипуляций с базой. Разберем подробно, почему возникает эта проблема и как ее решить различными методами.
Проанализируем ситуацию с технической точки зрения. Механизм расширений был существенно переработан при переходе платформы «1С:Предприятие» с версии 8.3.5 на 8.3.6. В этот момент изменилась внутренняя архитектура таблиц базы данных (как файловых 1Cv8.1CD, так и таблиц в SQL-варианте). До версии 8.3.6 в структуре базы просто не существовало места для хранения объектов расширений.
Когда программный код (обычно это происходит в процедурах ПриНачалеРаботыСистемы или в общем модуле СтандартныеПодсистемыСервер) обращается к расширениям, система вызывает метод:
Расширения = РасширенияКонфигурации.Получить();
Если текущая база данных была создана в старой версии платформы или в ней установлен режим совместимости 8.3.5 и ниже, платформа блокирует это действие, так как на уровне физических таблиц поддержка расширений отсутствует. Программа буквально сообщает нам: «Я не знаю, куда сохранять расширения, так как таблицы базы данных под них не размечены».
Это самый популярный и простой метод, который помогает в большинстве случаев, особенно для файловых баз. Рассмотрим по шагам, как обновить структуру через создание архива.
.dt в надежное место..dt..dt обратно.Почему это работает? При загрузке данных из .dt-файла в новую базу платформа 1С создает файл 1Cv8.1CD (или таблицы в SQL) «с нуля», используя правила текущей, более новой версии платформы. В этой новой структуре таблицы для расширений уже предусмотрены.
Иногда ошибка прямо указывает: «Необходимо отключить режим совместимости». Рассмотрим, как это сделать правильно и какие риски существуют. Проанализируем свойства конфигурации.
Если там установлено значение 8.3.5 или меньше, расширения работать не будут. Нам нужно установить значение «Не использовать» или выбрать версию не ниже 8.3.6. Важно: изменение этого параметра вызовет глобальную реструктуризацию базы данных. Перед этим действием обязательно сделайте резервную копию! В некоторых случаях (например, в старых конфигурациях на обычных формах) отключение режима совместимости может привести к некорректной работе старого кода, поэтому действуйте осторожно.
Если вы не хотите создавать новые базы и заниматься выгрузкой .dt, можно заставить платформу обновить таблицы «на месте». Рассмотрим, как это сделать через встроенные инструменты диагностики.
Платформа пересоздаст все физические таблицы базы, привнося в них изменения, соответствующие текущей версии исполняемого файла платформы. После завершения процесса проблема с расширениями обычно исчезает.
В некоторых случаях (как отмечалось в сообщениях форума) проблема связана с параметром синхронности. Если предыдущие методы не помогли или конфигурация специфическая, разберем альтернативный путь:
Внимание: помните, что отключение синхронных вызовов может привести к тому, что в интерфейсе перестанут работать некоторые диалоги (например, выбор файла), так как современные интерфейсы «Такси» требуют асинхронной модели работы. Если после этого изменения программа стала работать странно, верните настройку назад и используйте Способ 1.
Часто бывает так, что на компьютере установлено несколько версий платформы (например, 8.3.5 и 8.3.20). Если в настройках списка баз жестко прописана старая версия, то даже при наличии новой вы получите ошибку. Проанализируем настройки запуска:
8.3.Если там стоит 8.3.5.1234, платформа запустится в режиме, не знающем о расширениях, и вы увидите ошибку, даже если сама конфигурация обновлена.
Подводя итог, можно сказать, что наиболее надежный и безопасный способ решения — это создание новой чистой базы и загрузка в нее данных через файл .dt. Это гарантирует, что структура таблиц будет максимально соответствовать требованиям текущей платформы 1С. Если же база очень большая (сотни гигабайт) и выгрузка невозможна, используйте Реструктуризацию таблиц в меню тестирования и исправления, предварительно убедившись, что в свойствах конфигурации режим совместимости позволяет использовать современные механизмы (8.3.6 и выше).
Всегда проверяйте соответствие версии конфигурации и версии платформы. Современные релизы Бухгалтерия предприятия 3.0 требуют платформу не ниже 8.3.15/8.3.18, и попытки запустить их на старых движках всегда будут приводить к подобным ошибкам структуры данных.