К статье
Практический материал

Администрирование · 9 мин

Как узнать, что за таблица в 1С

Как определить, что за таблица в 1С: через конфигуратор, запрос, структуру хранения и функцию ПолучитьСтруктуруХраненияБазыДанных. Практическая инструкция.

Фраза «узнать, что за таблица в 1С» обычно означает одну из трёх задач: понять, какой объект конфигурации скрывается за именем таблицы в базе данных (например, _Document123), определить, какие таблицы использует конкретный документ или регистр, либо выяснить, откуда в отчёте или запросе берутся данные. Подход к решению зависит от того, где вы встретили непонятное имя — в SQL Server, в запросе на встроенном языке или в журнале ошибок.

Важно понимать базовый принцип: 1С работает с метаданными (справочники, документы, регистры), а платформа сама создаёт для них физические таблицы в СУБД с техническими именами вида _Reference45 или _AccumRg201. Соответствие между ними не всегда очевидно, особенно в чужой или давно дорабатываемой конфигурации.

Ниже разобраны рабочие способы определения таблиц для файлового и клиент-серверного вариантов, а также методы через конфигуратор, встроенный язык и внешние инструменты. Все действия безопасны, если выполнять их в режиме чтения и не менять структуру базы напрямую средствами СУБД.

Различите уровни: метаданные и физические таблицы

На уровне конфигурации вы работаете с объектами: справочник «Номенклатура», документ «РеализацияТоваровУслуг», регистр накопления «ОстаткиТоваров». В запросах на встроенном языке используются именно эти имена: Справочник.Номенклатура, Документ.РеализацияТоваровУслуг, РегистрНакопления.ОстаткиТоваров.

На уровне СУБД (MS SQL, PostgreSQL, Oracle) платформа создаёт таблицы с автоматически сгенерированными именами: _Reference45, _Document156, _AccumRg201, _InfoRg88. Числовой суффикс — внутренний номер объекта, он не связан с именем метаданных и может отличаться между базами с одной конфигурацией.

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

Способ 1. Получить структуру хранения базы данных

Это основной инструмент для сопоставления имён. Функция ПолучитьСтруктуруХраненияБазыДанных() вызывается на встроенном языке и возвращает таблицу значений с колонками: имя таблицы хранения, имя таблицы (объект метаданных), назначение, поля и индексы.

Выполнить её можно через внешнюю обработку с консолью кода или через любую обработку, где доступно выполнение кода. Пример вызова:

ТЗ = ПолучитьСтруктуруХраненияБазыДанных();

Для Каждого Строка Из ТЗ Цикл

Если Строка.ИмяТаблицыХранения = "_Document156" Тогда

Сообщить(Строка.ИмяТаблицы);

КонецЕсли;

КонецЦикла;

По умолчанию функция возвращает имена в терминах СУБД. Если нужны имена в терминах встроенного языка, передайте параметры — например, ПолучитьСтруктуруХраненияБазыДанных(, Истина) вернёт имена полей в представлении 1С, что удобнее для чтения.

Порядок действий
  1. 1
    Откройте любую консоль кода или создайте внешнюю обработку с кнопкой выполнения
  2. 2
    Выполните ПолучитьСтруктуруХраненияБазыДанных() и выведите результат в таблицу значений
  3. 3
    Найдите строку по техническому имени таблицы, например _Reference45
  4. 4
    Прочитайте соответствующее имя объекта метаданных в колонке ИмяТаблицы
  5. 5
    Проверьте назначение таблицы: основная, табличная часть, итоги, регистрация изменений

Способ 2. Найти таблицу через конфигуратор

Если имя встретилось в запросе, отчёте или тексте модуля, самый быстрый путь — глобальный поиск по конфигурации. Откройте конфигуратор, вызовите «Правка → Глобальный поиск» (Ctrl+Shift+F), введите имя объекта и запустите поиск по всем модулям и метаданным.

Чтобы понять, какие физические таблицы порождает конкретный объект, откройте его свойства в дереве конфигурации. Для документа платформа создаёт основную таблицу и отдельные таблицы для каждой табличной части; для регистра сведений — таблицу данных; для регистра накопления — таблицу движений и, при необходимости, таблицы итогов.

Дополнительно полезен отчёт по конфигурации: «Конфигурация → Отчёт по конфигурации» формирует HTML-описание всех объектов. По нему удобно ориентироваться в незнакомой конфигурации и выгружать структуру для изучения вне 1С.

Способ 3. Определить таблицу по имени в запросе или ошибке

Когда платформа выдаёт ошибку вида «Таблица не найдена: РегистрСведений.КурсыВалют», причина обычно в том, что объект переименовали, удалили или запрос писался под другую конфигурацию. Проверьте наличие объекта в дереве метаданных и сравните написание — встроенный язык чувствителен к точному имени.

Если ошибка пришла с уровня СУБД и содержит техническое имя таблицы, действуйте через структуру хранения, как описано выше. Типичные префиксы помогают сориентироваться ещё до расшифровки: _Reference — справочники, _Document — документы, _Seq — последовательности, _AccumRg — регистры накопления, _InfoRg — регистры сведений, _Const — константы.

Имя вида _Reference45Справочник

Найдите соответствие через ПолучитьСтруктуруХраненияБазыДанных()

Имя вида _Document156_VTТабличная часть документа

Суффикс VT указывает на табличную часть, найдите родительский документ

Читаемое имя объектаМетаданные конфигурации

Ищите через глобальный поиск в конфигураторе

Имя вида _InfoRg88Регистр сведений

Расшифруйте через структуру хранения, проверьте периодичность и режим подчинения

Способ 4. Инструменты разработчика и сторонние обработки

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

Для анализа на стороне СУБД администраторы применяют запросы к системным представлениям SQL Server (sys.tables, sys.indexes), чтобы оценить размеры таблиц и найти самые тяжёлые. Сопоставление с объектами 1С всё равно выполняется через структуру хранения — прямой связи в самой СУБД нет.

Как проверить результат и чего не делать

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

Частая ошибка — путать основную таблицу объекта с вспомогательными: табличные части, таблицы итогов регистров, таблицы регистрации изменений для обмена имеют собственные имена хранения. Если назначение таблицы в структуре хранения указано как «ТабличнаяЧасть» или «Итоги», ищите родительский объект, а не трактуйте её как самостоятельную сущность.

Типичные ошибки
01
Попытка угадать объект по номеру в имени таблицы — номера назначаются платформой и различаются между базами
02
Изменение таблиц напрямую в СУБД — приводит к повреждению структуры и ошибкам при обновлении конфигурации
03
Игнорирование назначения таблицы — табличную часть принимают за отдельный объект и строят неверные запросы
04
Поиск технического имени (_Document156) глобальным поиском по конфигурации — там его нет, нужна структура хранения
Итог

Что важно запомнить

Соответствие между объектами 1С и физическими таблицами даёт функция ПолучитьСтруктуруХраненияБазыДанных(). Читаемые имена ищите глобальным поиском в конфигураторе, технические — только через структуру хранения. Структуру базы меняйте исключительно через конфигуратор.

Частые вопросы

Можно ли узнать таблицу без доступа к конфигуратору?

Да, если есть возможность выполнить код в режиме предприятия — например, через внешнюю обработку с консолью кода. Функция ПолучитьСтруктуруХраненияБазыДанных() работает и в пользовательском режиме при наличии соответствующих прав. Без выполнения кода и без конфигуратора определить соответствие технических имён объектам нельзя.

Почему в разных базах одна таблица называется по-разному?

Числовой суффикс в имени таблицы — внутренний номер, который платформа присваивает при создании объекта в конкретной базе. В копиях базы, созданных разными путями, номера могут не совпадать. Поэтому скрипты на стороне СУБД, жёстко привязанные к именам таблиц, ненадёжны.

Как узнать, какие таблицы использует конкретный документ?

Откройте структуру хранения и отфильтруйте строки по имени объекта — увидите основную таблицу и таблицы всех табличных частей. Дополнительно документ делает движения по регистрам: список регистров указан в свойствах документа на закладке «Движения» в конфигураторе.

Что означают суффиксы в именах таблиц СУБД?

Суффиксы обозначают назначение таблицы: VT — табличная часть, Totals — итоги регистра, ChngR — регистрация изменений для планов обмена. Точный перечень зависит от версии платформы, но назначение всегда указано в колонке «Назначение» структуры хранения.

Безопасно ли смотреть данные таблиц напрямую через SQL?

Чтение данных запросами SELECT на стороне СУБД не изменяет базу и обычно безопасно, хотя может создавать нагрузку и блокировки. Опасны любые операции записи — INSERT, UPDATE, DELETE и изменение схемы. Для анализа предпочтительнее работать через запросы 1С или консоль запросов.