Администрирование · 9 мин
Как узнать, что за таблица в 1С
Как определить, что за таблица в 1С: через конфигуратор, запрос, структуру хранения и функцию ПолучитьСтруктуруХраненияБазыДанных. Практическая инструкция.
Фраза «узнать, что за таблица в 1С» обычно означает одну из трёх задач: понять, какой объект конфигурации скрывается за именем таблицы в базе данных (например, _Document123), определить, какие таблицы использует конкретный документ или регистр, либо выяснить, откуда в отчёте или запросе берутся данные. Подход к решению зависит от того, где вы встретили непонятное имя — в SQL Server, в запросе на встроенном языке или в журнале ошибок.
Важно понимать базовый принцип: 1С работает с метаданными (справочники, документы, регистры), а платформа сама создаёт для них физические таблицы в СУБД с техническими именами вида _Reference45 или _AccumRg201. Соответствие между ними не всегда очевидно, особенно в чужой или давно дорабатываемой конфигурации.
Ниже разобраны рабочие способы определения таблиц для файлового и клиент-серверного вариантов, а также методы через конфигуратор, встроенный язык и внешние инструменты. Все действия безопасны, если выполнять их в режиме чтения и не менять структуру базы напрямую средствами СУБД.
Различите уровни: метаданные и физические таблицы
На уровне конфигурации вы работаете с объектами: справочник «Номенклатура», документ «РеализацияТоваровУслуг», регистр накопления «ОстаткиТоваров». В запросах на встроенном языке используются именно эти имена: Справочник.Номенклатура, Документ.РеализацияТоваровУслуг, РегистрНакопления.ОстаткиТоваров.
На уровне СУБД (MS SQL, PostgreSQL, Oracle) платформа создаёт таблицы с автоматически сгенерированными именами: _Reference45, _Document156, _AccumRg201, _InfoRg88. Числовой суффикс — внутренний номер объекта, он не связан с именем метаданных и может отличаться между базами с одной конфигурацией.
Поэтому первый шаг — понять, с каким именем вы столкнулись. Если видите читаемое имя объекта — ищите его в дереве конфигурации. Если техническое имя с подчёркиванием и цифрами — нужна структура хранения базы данных.
Способ 1. Получить структуру хранения базы данных
Это основной инструмент для сопоставления имён. Функция ПолучитьСтруктуруХраненияБазыДанных() вызывается на встроенном языке и возвращает таблицу значений с колонками: имя таблицы хранения, имя таблицы (объект метаданных), назначение, поля и индексы.
Выполнить её можно через внешнюю обработку с консолью кода или через любую обработку, где доступно выполнение кода. Пример вызова:
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТЗ Цикл
Если Строка.ИмяТаблицыХранения = "_Document156" Тогда
Сообщить(Строка.ИмяТаблицы);
КонецЕсли;
КонецЦикла;
По умолчанию функция возвращает имена в терминах СУБД. Если нужны имена в терминах встроенного языка, передайте параметры — например, ПолучитьСтруктуруХраненияБазыДанных(, Истина) вернёт имена полей в представлении 1С, что удобнее для чтения.
- 1Откройте любую консоль кода или создайте внешнюю обработку с кнопкой выполнения
- 2Выполните ПолучитьСтруктуруХраненияБазыДанных() и выведите результат в таблицу значений
- 3Найдите строку по техническому имени таблицы, например _Reference45
- 4Прочитайте соответствующее имя объекта метаданных в колонке ИмяТаблицы
- 5Проверьте назначение таблицы: основная, табличная часть, итоги, регистрация изменений
Способ 2. Найти таблицу через конфигуратор
Если имя встретилось в запросе, отчёте или тексте модуля, самый быстрый путь — глобальный поиск по конфигурации. Откройте конфигуратор, вызовите «Правка → Глобальный поиск» (Ctrl+Shift+F), введите имя объекта и запустите поиск по всем модулям и метаданным.
Чтобы понять, какие физические таблицы порождает конкретный объект, откройте его свойства в дереве конфигурации. Для документа платформа создаёт основную таблицу и отдельные таблицы для каждой табличной части; для регистра сведений — таблицу данных; для регистра накопления — таблицу движений и, при необходимости, таблицы итогов.
Дополнительно полезен отчёт по конфигурации: «Конфигурация → Отчёт по конфигурации» формирует HTML-описание всех объектов. По нему удобно ориентироваться в незнакомой конфигурации и выгружать структуру для изучения вне 1С.
Способ 3. Определить таблицу по имени в запросе или ошибке
Когда платформа выдаёт ошибку вида «Таблица не найдена: РегистрСведений.КурсыВалют», причина обычно в том, что объект переименовали, удалили или запрос писался под другую конфигурацию. Проверьте наличие объекта в дереве метаданных и сравните написание — встроенный язык чувствителен к точному имени.
Если ошибка пришла с уровня СУБД и содержит техническое имя таблицы, действуйте через структуру хранения, как описано выше. Типичные префиксы помогают сориентироваться ещё до расшифровки: _Reference — справочники, _Document — документы, _Seq — последовательности, _AccumRg — регистры накопления, _InfoRg — регистры сведений, _Const — константы.
Найдите соответствие через ПолучитьСтруктуруХраненияБазыДанных()
Суффикс VT указывает на табличную часть, найдите родительский документ
Ищите через глобальный поиск в конфигураторе
Расшифруйте через структуру хранения, проверьте периодичность и режим подчинения
Способ 4. Инструменты разработчика и сторонние обработки
В типовых конфигурациях на базе БСП доступна подсистема «Инструменты разработчика» и аналогичные внешние обработки, которые показывают структуру хранения в удобном виде с поиском и фильтрами. Они используют ту же функцию платформы, но избавляют от написания кода вручную.
Для анализа на стороне СУБД администраторы применяют запросы к системным представлениям SQL Server (sys.tables, sys.indexes), чтобы оценить размеры таблиц и найти самые тяжёлые. Сопоставление с объектами 1С всё равно выполняется через структуру хранения — прямой связи в самой СУБД нет.
Как проверить результат и чего не делать
После определения объекта убедитесь, что нашли именно его: откройте объект в конфигураторе, сверьте состав полей со структурой хранения и, при необходимости, выполните простой запрос к таблице через консоль запросов — данные должны соответствовать ожиданиям.
Частая ошибка — путать основную таблицу объекта с вспомогательными: табличные части, таблицы итогов регистров, таблицы регистрации изменений для обмена имеют собственные имена хранения. Если назначение таблицы в структуре хранения указано как «ТабличнаяЧасть» или «Итоги», ищите родительский объект, а не трактуйте её как самостоятельную сущность.
Что важно запомнить
Соответствие между объектами 1С и физическими таблицами даёт функция ПолучитьСтруктуруХраненияБазыДанных(). Читаемые имена ищите глобальным поиском в конфигураторе, технические — только через структуру хранения. Структуру базы меняйте исключительно через конфигуратор.
Частые вопросы
Можно ли узнать таблицу без доступа к конфигуратору?
Да, если есть возможность выполнить код в режиме предприятия — например, через внешнюю обработку с консолью кода. Функция ПолучитьСтруктуруХраненияБазыДанных() работает и в пользовательском режиме при наличии соответствующих прав. Без выполнения кода и без конфигуратора определить соответствие технических имён объектам нельзя.
Почему в разных базах одна таблица называется по-разному?
Числовой суффикс в имени таблицы — внутренний номер, который платформа присваивает при создании объекта в конкретной базе. В копиях базы, созданных разными путями, номера могут не совпадать. Поэтому скрипты на стороне СУБД, жёстко привязанные к именам таблиц, ненадёжны.
Как узнать, какие таблицы использует конкретный документ?
Откройте структуру хранения и отфильтруйте строки по имени объекта — увидите основную таблицу и таблицы всех табличных частей. Дополнительно документ делает движения по регистрам: список регистров указан в свойствах документа на закладке «Движения» в конфигураторе.
Что означают суффиксы в именах таблиц СУБД?
Суффиксы обозначают назначение таблицы: VT — табличная часть, Totals — итоги регистра, ChngR — регистрация изменений для планов обмена. Точный перечень зависит от версии платформы, но назначение всегда указано в колонке «Назначение» структуры хранения.
Безопасно ли смотреть данные таблиц напрямую через SQL?
Чтение данных запросами SELECT на стороне СУБД не изменяет базу и обычно безопасно, хотя может создавать нагрузку и блокировки. Опасны любые операции записи — INSERT, UPDATE, DELETE и изменение схемы. Для анализа предпочтительнее работать через запросы 1С или консоль запросов.