Как исправить ошибку «ОпределяемыйТип.ВерсионируемыеДанные: Недопустимый тип» при объединении конфигураций?

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

При работе с крупными прикладными решениями на платформе 1С, такими как 1С:Комплексная автоматизация (КА), 1С:ERP или отраслевыми модулями вроде 1С:Управление автотранспортом (УАТ), программисты часто сталкиваются с системными ошибками при попытке обновления конфигурации базы данных. Одной из наиболее специфических и неприятных является ошибка ОпределяемыйТип.ВерсионируемыеДанные: Недопустимый тип. Рассмотрим причины её возникновения и разберем пошагово методы её устранения.

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

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

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

Также немаловажным фактором является разница в режимах совместимости. Если основная конфигурация работает в режиме 8.3.6, а объединяемая — в 8.3.12, механизмы валидации определяемых типов работают по-разному, что блокирует обновление структуры базы данных.

Метод 1: Принудительное пересохранение состава (валидация вручную)

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

Выполним следующие шаги:

  1. Откроем дерево метаданных в конфигураторе.
  2. Перейдем в ветку Общие -> Определяемые типы.
  3. Найдем объект ВерсионируемыеДанные и откроем его свойства (двойным кликом или через F4).
  4. В поле Тип нажмем кнопку выбора (три точки).
  5. В открывшемся окне «Редактирование типа данных» мы увидим огромный список документов и справочников. Ничего не меняя в составе (все галочки должны остаться на местах), просто нажмем кнопку «ОК».
  6. После этого сохраним конфигурацию (Ctrl + S) и попробуем снова выполнить обновление конфигурации базы данных (F7).

Этот простой маневр часто устраняет «фантомные» ошибки, возникшие при копировании метаданных между базами.

Метод 2: Проверка режима совместимости и соответствия БСП

Если первый метод не помог, проанализируем настройки платформы. Разберем ситуацию: основная конфигурация имеет режим совместимости 8.3.6, а новая — 8.3.12. В старых версиях платформы существовали жесткие ограничения на состав определяемых типов (например, в них нельзя было включать объекты, не поддерживающие XDTO, или определенные виды регистров).

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

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

Метод 3: Использование логической проверки целостности

Иногда ошибка в ОпределяемыйТип.ВерсионируемыеДанные является лишь следствием более глубоких проблем в метаданных. Платформа 1С предоставляет встроенный инструмент для диагностики.

Проделаем следующую операцию:

  1. Зайдем в меню Конфигурация -> Проверка конфигурации.
  2. Обязательно установим флажок «Проверка логической целостности конфигурации».
  3. Нажмем «Выполнить».

Система может выдать список объектов, которые содержат ошибки. Часто бывает, что какой-то документ из УАТ, включенный в версионирование, ссылается на тип данных, который не был перенесен при объединении. Исправление этих первичных ошибок автоматически снимет проблему с определяемым типом.

Метод 4: Метод «Пустого CF» (глубокая реструктуризация)

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

Разберем по шагам:

  1. Сохраним текущую объединенную конфигурацию в файл (Конфигурация -> Сохранить конфигурацию в файл..., получим файл 1cv8.cf).
  2. Создадим новую пустую информационную базу через стартер 1С.
  3. В новой базе зайдем в конфигуратор и выполним Конфигурация -> Загрузить конфигурацию из файла.... Важно: используем именно «Загрузить», а не «Сравнить/Объединить». Это полностью перезаписывает структуру метаданных.
  4. Если загрузка и обновление (F7) в пустой базе прошли успешно, значит, структура исправлена.
  5. Выгружаем .cf из этой новой базы и загружаем его обратно в нашу рабочую (разработочную) базу.

Метод 5: Анализ подписок на события

Посмотрим на проблему шире. Определяемые типы часто используются в качестве Источника в Подписках на события. В случае с ВерсионируемыеДанные, на этот тип завязаны подписки БСП, такие как ПриЗаписиОбъектаДляВерсионирования.

Проанализируем ситуацию: если в определяемый тип попал объект (например, РегистрСведенийМенеджерЗаписи), который не может быть источником для конкретной подписки, система выдаст ошибку о недопустимом типе. Убедимся, что в составе типа ВерсионируемыеДанные присутствуют только ссылочные типы (Документы, Справочники), которые действительно нуждаются в версионировании.

Важный совет: Если вы видите в списке типов выбранную Строка, Число или любой примитивный тип — это явный признак ошибки объединения. Определяемые типы для БСП обычно должны содержать только ссылки (ЛюбаяСсылка или конкретный набор ссылочных типов).

Заключение

Ошибка Недопустимый тип в определяемых типах при слиянии конфигураций КА и УАТ — это следствие несогласованности индексов метаданных. В 90% случаев проблема решается простым открытием состава типа и нажатием кнопки «ОК». В оставшихся 10% случаев необходимо выравнивать режимы совместимости и проверять логическую целостность конфигурации.

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

← На главную