При работе с крупными прикладными решениями на платформе 1С, такими как 1С:Комплексная автоматизация (КА), 1С:ERP или отраслевыми модулями вроде 1С:Управление автотранспортом (УАТ), программисты часто сталкиваются с системными ошибками при попытке обновления конфигурации базы данных. Одной из наиболее специфических и неприятных является ошибка ОпределяемыйТип.ВерсионируемыеДанные: Недопустимый тип. Рассмотрим причины её возникновения и разберем пошагово методы её устранения.
Прежде чем переходить к лечению, проанализируем ситуацию. Данная проблема чаще всего возникает в процессе или сразу после выполнения процедуры «Сравнение и объединение конфигураций». Объект ОпределяемыйТип.ВерсионируемыеДанные входит в состав Библиотеки стандартных подсистем (БСП) и отвечает за работу механизма версионирования объектов (истории изменений).
Техническая причина кроется в нарушении логической целостности метаданных. Когда мы объединяем две конфигурации (например, основную КА и дополнение УАТ), система пытается сопоставить списки типов, входящих в этот определяемый тип. Если в процессе объединения произошел сбой в идентификаторах UUID или если один из объектов метаданных (справочник или документ) не был корректно перенесен, конфигуратор «теряет» связь. В итоге в составе определяемого типа оказывается ссылка на несуществующий объект или объект, который в текущем контексте не может быть использован, что и вызывает сообщение о недопустимом типе.
Также немаловажным фактором является разница в режимах совместимости. Если основная конфигурация работает в режиме 8.3.6, а объединяемая — в 8.3.12, механизмы валидации определяемых типов работают по-разному, что блокирует обновление структуры базы данных.
Как показывает практика и опыт участников профессиональных форумов, самым быстрым и эффективным способом является «перевзвешивание» состава типа. Это заставляет платформу заново пересчитать внутренние индексы и проверить допустимость каждого типа в списке.
Выполним следующие шаги:
Общие -> Определяемые типы.ВерсионируемыеДанные и откроем его свойства (двойным кликом или через F4).Тип нажмем кнопку выбора (три точки).Ctrl + S) и попробуем снова выполнить обновление конфигурации базы данных (F7).Этот простой маневр часто устраняет «фантомные» ошибки, возникшие при копировании метаданных между базами.
Если первый метод не помог, проанализируем настройки платформы. Разберем ситуацию: основная конфигурация имеет режим совместимости 8.3.6, а новая — 8.3.12. В старых версиях платформы существовали жесткие ограничения на состав определяемых типов (например, в них нельзя было включать объекты, не поддерживающие XDTO, или определенные виды регистров).
Рассмотрим порядок действий:
Объект не найден. Если такие есть — снимите с них флажки.Иногда ошибка в ОпределяемыйТип.ВерсионируемыеДанные является лишь следствием более глубоких проблем в метаданных. Платформа 1С предоставляет встроенный инструмент для диагностики.
Проделаем следующую операцию:
Конфигурация -> Проверка конфигурации.Система может выдать список объектов, которые содержат ошибки. Часто бывает, что какой-то документ из УАТ, включенный в версионирование, ссылается на тип данных, который не был перенесен при объединении. Исправление этих первичных ошибок автоматически снимет проблему с определяемым типом.
Если стандартные средства не помогают, применим радикальный метод, который заставляет платформу полностью перестроить дерево метаданных «с нуля», исключая ошибки кэширования конфигуратора.
Разберем по шагам:
Конфигурация -> Сохранить конфигурацию в файл..., получим файл 1cv8.cf).Конфигурация -> Загрузить конфигурацию из файла.... Важно: используем именно «Загрузить», а не «Сравнить/Объединить». Это полностью перезаписывает структуру метаданных.F7) в пустой базе прошли успешно, значит, структура исправлена..cf из этой новой базы и загружаем его обратно в нашу рабочую (разработочную) базу.Посмотрим на проблему шире. Определяемые типы часто используются в качестве Источника в Подписках на события. В случае с ВерсионируемыеДанные, на этот тип завязаны подписки БСП, такие как ПриЗаписиОбъектаДляВерсионирования.
Проанализируем ситуацию: если в определяемый тип попал объект (например, РегистрСведенийМенеджерЗаписи), который не может быть источником для конкретной подписки, система выдаст ошибку о недопустимом типе. Убедимся, что в составе типа ВерсионируемыеДанные присутствуют только ссылочные типы (Документы, Справочники), которые действительно нуждаются в версионировании.
Важный совет: Если вы видите в списке типов выбранную Строка, Число или любой примитивный тип — это явный признак ошибки объединения. Определяемые типы для БСП обычно должны содержать только ссылки (ЛюбаяСсылка или конкретный набор ссылочных типов).
Ошибка Недопустимый тип в определяемых типах при слиянии конфигураций КА и УАТ — это следствие несогласованности индексов метаданных. В 90% случаев проблема решается простым открытием состава типа и нажатием кнопки «ОК». В оставшихся 10% случаев необходимо выравнивать режимы совместимости и проверять логическую целостность конфигурации.
Помните, что перед любыми манипуляциями с объединением конфигураций необходимо создавать резервную копию базы данных, а после успешного исправления — обязательно очищать локальный кэш конфигуратора (параметр /ClearCache), чтобы избежать повторения фантомных ошибок в будущем.