Заглянуть внутрь файловой базы 1С: где лежат таблицы и чем их открыть

· 9 мин

Содержание

Таблицы файловой базы 1С штатно открываются двумя путями: запросом из самой 1С (консоль запросов) и внешней программой, которая читает файл 1Cv8.1CD напрямую. Первый способ безопасен и подходит почти всегда. Второй нужен, когда база не запускается или нужен «сырой» взгляд на данные.

Пробовать открыть базу в DBF-просмотрщике бесполезно. DBF был форматом 1С 7.7. В 8.3 все данные лежат в одном файле собственного формата, и обычные программы его не читают.

Ниже — как устроено хранение, какой способ выбрать и как не испортить базу.

Где физически лежат данные файловой базы

Откройте папку базы. Путь виден в списке баз при запуске 1С: выделите базу и посмотрите на строку под списком. Внутри будут файлы:

  • 1Cv8.1CD — сама база: все таблицы, справочники, документы, регистры;
  • 1Cv8.1CL — журнал регистрации (если он включён);
  • 1Cv8FTX — папка полнотекстового индекса;
  • 1Cv8.cdn — служебный файл блокировок и сеансов;
  • 1Cv8.lgf, 1Cv8.lgd — журнал регистрации в старом и новом формате.

Все прикладные данные — это один файл 1Cv8.1CD. Его размер растёт с базой: у небольшой компании 1–5 ГБ, у крупной бывает за 20 ГБ.

Файл 1Cv8.1CD нельзя открывать и копировать, пока в базе работают пользователи. Копия «на лету» часто выходит битой.

Как 1С называет таблицы: расшифровка внутренних имён

В базе нет таблиц с именами вроде «Контрагенты». Есть служебные имена, которые строит платформа. Знать их нужно, если вы смотрите базу внешним инструментом или SQL.

Объект в конфигурацииИмя таблицыЧто внутри
Справочник_Reference123элементы справочника
Документ_Document45шапки документов
Табличная часть документа_Document45_VT67строки табличной части
Регистр сведений_InfoRg89записи регистра
Регистр накопления_AccumRg12движения (приход/расход)
Константа_Const34значения констант
Перечисление_Enum56значения перечислений

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

Поля тоже безликие: _Fld1234, _Fld1235. Часть полей постоянна: _IDRRef — уникальный идентификатор строки, _Marked — пометка удаления, _Code и _Description — код и наименование справочника, _Period и _Recorder — период и регистратор в регистрах.

Чтобы связать _Reference123 с понятным названием, нужна таблица соответствия. Её получают из самой 1С — об этом следующий раздел.

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

Это штатная функция платформы: она выдаёт список таблиц, их внутренние имена и поля с соответствием метаданным.

Порядок такой:

  1. Откройте базу в режиме Конфигуратора.
  2. Найдите в меню администрирования пункт получения структуры хранения базы данных. Если не нашли, поищите по слову «структура» в справке Конфигуратора.
  3. Дождитесь результата — он откроется как табличный документ.
  4. Сохраните его в файл, например в .mxl или .xlsx.

Тот же результат даёт встроенный метод в коде обработки:

Структура = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
// Структура — таблица значений:
// ИмяТаблицы, ИмяТаблицыХранения, Метаданные, Назначение и поля

Параметр Истина включает имена полей в метаданных, а не только таблиц. Результат удобно выгрузить в Excel и держать рядом при работе с внешними инструментами.

Сохраните структуру один раз после каждого обновления конфигурации. Номера объектов могут поменяться, и старая расшифровка уже не подойдёт.

Способ первый: консоль запросов — безопасный просмотр изнутри

Это основной способ для бухгалтера и 1С-ника. Вы пишете запрос на языке 1С и видите данные так, как их видит платформа. Базу вы при этом не трогаете.

Консоль запросов — внешняя обработка. Она есть на диске ИТС, её свободно скачивают в нескольких вариантах. Откройте её через «Файл» → «Открыть» в режиме Предприятия. Если запуск внешних обработок запрещён, нужно право администратора.

Пример: посмотреть первые 100 контрагентов с ИНН.

ВЫБРАТЬ ПЕРВЫЕ 100
    Контрагенты.Наименование,
    Контрагенты.ИНН
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.ПометкаУдаления

Запрос обращается к объектам метаданных, а не к _Reference123. Это удобно: внутренние имена знать не нужно.

Если всё же нужна «настоящая» таблица, в консоли есть переключатель на режим работы с таблицами базы. Он показывает имя хранения и поля, но запрос в нём пишется на языке 1С, а не на SQL.

Плюсы способа:

  • ✅ база не изменяется, можно работать при пользователях;
  • ✅ читаемые имена и значения вместо _Fld1234;
  • ✅ выгрузка результата в табличный документ и Excel.

Минус один: нужна работающая платформа и база, которая запускается.

Способ второй: Tool_1CD — чтение файла 1CD напрямую

Когда база не открывается, консоль не поможет. Тут выручает Tool_1CD — бесплатная программа с открытым кодом, которая понимает структуру 1Cv8.1CD. Она не запускает платформу и читает файл как контейнер таблиц.

Что она умеет:

  • показать список всех таблиц и их поля;
  • открыть любую таблицу и просмотреть строки;
  • выгрузить таблицу в файл (CSV) или экспортировать содержимое;
  • проверить целостность базы и найти повреждённые страницы.

Как работать:

  1. Закройте все сеансы 1С и сделайте копию 1Cv8.1CD в другую папку.
  2. Откройте копию в программе: «Файл» → «Открыть».
  3. Раскройте список таблиц слева и выберите нужную.
  4. Для расшифровки имён сверяйтесь с выгруженной структурой хранения.

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

Версии платформы обновляются, формат файла меняется. Старая сборка программы может не открыть базу на свежей платформе — тогда ищите обновление утилиты.

Способ третий: выгрузка и SQL-запросы по-настоящему

В файловой базе нет сервера СУБД. ODBC-драйвера для 1Cv8.1CD у 1С нет, подключиться к ней как к SQLite или Access нельзя. Многие статьи обещают такое подключение — для файловой базы 8.3 это не работает .

Если нужен именно SQL, путь такой: перенести данные в настоящую СУБД и смотреть их там.

  1. В Конфигураторе выберите «Администрирование» → «Выгрузить информационную базу» и получите файл .dt.
  2. Разверните сервер PostgreSQL или MS SQL, поставьте серверную часть 1С.
  3. Создайте пустую клиент-серверную базу и загрузите в неё .dt.
  4. Подключитесь к СУБД обычным клиентом (pgAdmin, SQL Server Management Studio) и смотрите таблицы _Reference123 и прочие.

Теперь работают обычные SELECT. Но есть три оговорки:

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

Прямые правки через SQL в рабочей клиент-серверной базе — запрещённый приём. Они ломают контроль целостности и блокируют поддержку. Читать можно, писать нельзя.

Что выбрать: сравнение способов

СпособКогда подходитРиск для базы
Консоль запросовбаза запускается, нужно посмотреть и сверить данныенет
Структура хранениянужно расшифровать имена _Reference…нет
Tool_1CDбаза не стартует, нужен аварийный доступнизкий, если работать с копией
Выгрузка .dt и СУБДнужен полноценный SQL и большие выборкинет для оригинала

Если вы просто хотите увидеть список документов или остатки — берите консоль. Остальное нужно в редких случаях.

Подберите способ под свою ситуацию:

Какой у вас случай?

Практический пример: найти, где хранятся остатки по складу

Допустим, нужно понять, откуда отчёт берёт остатки товаров. Идите от метаданных к таблице.

  1. В Конфигураторе раскройте ветку регистров накопления и найдите регистр с названием вроде «Товары на складах».
  2. Получите структуру хранения и отфильтруйте её по имени этого регистра. Увидите таблицу _AccumRgNNN и поля _Period, _Recorder, _RecordKind.
  3. В консоли запросов выберите из регистра остатков и оборотов только нужный склад и период.
  4. Сверьте итог с отчётом «Ведомость по товарам на складах». Расхождение почти всегда значит, что отчёт отбирает данные по другому периоду или организации.

Такой путь занимает минут десять и избавляет от гаданий по _Fld-полям.

Ещё один приём: чтобы узнать, какие документы создали движения, смотрите поле _Recorder. Оно хранит ссылку на документ-регистратор. В запросе 1С к этому полю обращаются как к Регистратор, и платформа сама подставит документ.

Если нужна быстрая проверка размера таблиц, в структуре хранения смотрите число записей по крупным регистрам. Обычно именно регистры накопления и сведений занимают большую часть файла 1Cv8.1CD.

Права и безопасность: кто может смотреть таблицы

Просмотр данных в обход интерфейса обходит и права пользователей. Консоль запросов видит всё, что видит администратор базы. Файл 1Cv8.1CD читается вообще без проверки прав.

Поэтому:

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

Типичные ошибки и меры предосторожности

Обычно проблемы создают не сами способы, а спешка.

  • ❌ Открыли оригинал 1Cv8.1CD сторонней программой. Решение: всегда работайте с копией, и копируйте при закрытых сеансах.
  • ❌ Пытались подключить базу по ODBC. Для файлового режима 8.3 такого драйвера нет — тратить время не стоит.
  • ❌ Правили данные в Tool_1CD. Даже если программа позволяет записать значение, платформа может не принять такую запись при следующем запуске.
  • ❌ Перепутали номера таблиц между базами. У одинаковых справочников номера разные в разных конфигурациях и даже в разных копиях. Расшифровку берите из своей базы.
  • ❌ Забыли про размер. Запрос на миллионы строк в консоли может «повесить» клиент. Ограничивайте выборку через ПЕРВЫЕ и отбор по периоду.

Если ничего не помогло и база не открывается ни платформой, ни утилитой, остаётся тестирование и исправление: в Конфигураторе «Администрирование» → «Тестирование и исправление». Перед ним снова нужна копия.

Перед просмотром таблиц
Выполнено: 0 / 4

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

Можно ли открыть файл 1Cv8.1CD в Excel или Access?
Нет. Это собственный формат платформы. Данные выгружают из 1С в Excel через консоль запросов или отчёты.
Подойдёт ли DBF Viewer для базы 1С 8.3?
Нет. DBF использовала 1С 7.7. В 8.3 нет отдельных файлов-таблиц, всё лежит внутри одного 1Cv8.1CD.
Можно ли посмотреть таблицы без доступа к Конфигуратору?
Можно через консоль запросов в режиме Предприятия, если у вас есть право запускать внешние обработки. Для чтения файла напрямую Конфигуратор не нужен, но нужен доступ к папке базы.
Чем отличаются имена таблиц в файловой и клиент-серверной базе?
Принцип одинаков: _Reference, _Document, _InfoRg. Различаются типы данных и способ хранения, но расшифровка через структуру хранения подходит обоим вариантам.
Безопасно ли смотреть базу консолью запросов при работающих пользователях?
Да, запрос на чтение не блокирует работу. Тяжёлые выборки лучше запускать в нерабочее время.