При администрировании баз данных 1С:Предприятие на SQL Server разработчики нередко сталкиваются с ситуацией, когда стандартные имена таблиц, соответствующие именам метаданных, дополняются суффиксом «X» (например, _AccumRg27103X1). В данной статье мы разберем, почему возникают такие таблицы, как платформа 1С использует их и что необходимо учитывать при анализе структуры базы данных.
Основная причина появления таких таблиц — использование механизма расширений конфигурации. Когда разработчик вносит изменения в структуру объекта метаданных (например, добавляет новое измерение или ресурс в РегистрНакопления) посредством расширения, платформа не может физически изменить исходную таблицу, созданную основной конфигурацией.
Чтобы сохранить целостность основной конфигурации и обеспечить работу расширения, платформа 1С предпринимает следующие действия:
X и порядковый номер.Таким образом, исходная таблица (без суффикса) остается в базе данных, но после успешной миграции данных она перестает быть актуальной для прикладного решения. Все запросы, выполняемые средствами 1С, будут направлены именно к «X-таблице».
Если возникла необходимость проанализировать данные напрямую через SQL Server Management Studio, важно учитывать следующие аспекты:
X. Попытка сделать SELECT к исходной таблице (без суффикса) может вернуть либо пустой результат, либо устаревшие данные, которые не соответствуют текущему состоянию системы.TLOCK, будет указано реальное имя таблицы, с которой работает SQL Server — то есть имя с суффиксом X1.Важно понимать, что происходит с этими таблицами при изменении конфигурации или удалении расширения:
Когда вы удаляете расширение, которое вносило изменения в структуру данных, платформа инициирует обратный процесс — так называемое «схлопывание». Данные переносятся обратно в основную таблицу, а временная «X-таблица» удаляется. Если этот процесс завершился некорректно, в базе данных могут остаться «сиротствующие» таблицы, которые занимают дисковое пространство.
Чтобы избежать ошибок при анализе базы данных, придерживайтесь следующего алгоритма:
JOIN или выборку из таблицы с суффиксом, так как именно она является «рабочей» для 1С в текущий момент времени.Использование расширений — это мощный инструмент разработки, но он требует от администратора понимания того, как платформа трансформирует структуру данных на уровне SQL. При возникновении вопросов по блокировкам или поведению данных в СУБД всегда ориентируйтесь на фактические таблицы, участвующие в операциях, а не на названия объектов в Конфигураторе.