Заглянуть внутрь файловой базы 1С: где лежат таблицы и чем их открыть
Содержание
Таблицы файловой базы 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С — об этом следующий раздел.
Получить структуру хранения базы данных
Это штатная функция платформы: она выдаёт список таблиц, их внутренние имена и поля с соответствием метаданным.
Порядок такой:
- Откройте базу в режиме Конфигуратора.
- Найдите в меню администрирования пункт получения структуры хранения базы данных. Если не нашли, поищите по слову «структура» в справке Конфигуратора.
- Дождитесь результата — он откроется как табличный документ.
- Сохраните его в файл, например в
.mxlили.xlsx.
Тот же результат даёт встроенный метод в коде обработки:
Структура = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
// Структура — таблица значений:
// ИмяТаблицы, ИмяТаблицыХранения, Метаданные, Назначение и поля
Параметр Истина включает имена полей в метаданных, а не только таблиц. Результат удобно выгрузить в Excel и держать рядом при работе с внешними инструментами.
Сохраните структуру один раз после каждого обновления конфигурации. Номера объектов могут поменяться, и старая расшифровка уже не подойдёт.
Способ первый: консоль запросов — безопасный просмотр изнутри
Это основной способ для бухгалтера и 1С-ника. Вы пишете запрос на языке 1С и видите данные так, как их видит платформа. Базу вы при этом не трогаете.
Консоль запросов — внешняя обработка. Она есть на диске ИТС, её свободно скачивают в нескольких вариантах. Откройте её через «Файл» → «Открыть» в режиме Предприятия. Если запуск внешних обработок запрещён, нужно право администратора.
Пример: посмотреть первые 100 контрагентов с ИНН.
ВЫБРАТЬ ПЕРВЫЕ 100
Контрагенты.Наименование,
Контрагенты.ИНН
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
НЕ Контрагенты.ПометкаУдаления
Запрос обращается к объектам метаданных, а не к _Reference123. Это удобно: внутренние имена знать не нужно.
Если всё же нужна «настоящая» таблица, в консоли есть переключатель на режим работы с таблицами базы. Он показывает имя хранения и поля, но запрос в нём пишется на языке 1С, а не на SQL.
Плюсы способа:
- ✅ база не изменяется, можно работать при пользователях;
- ✅ читаемые имена и значения вместо
_Fld1234; - ✅ выгрузка результата в табличный документ и Excel.
Минус один: нужна работающая платформа и база, которая запускается.
Способ второй: Tool_1CD — чтение файла 1CD напрямую
Когда база не открывается, консоль не поможет. Тут выручает Tool_1CD — бесплатная программа с открытым кодом, которая понимает структуру 1Cv8.1CD. Она не запускает платформу и читает файл как контейнер таблиц.
Что она умеет:
- показать список всех таблиц и их поля;
- открыть любую таблицу и просмотреть строки;
- выгрузить таблицу в файл (CSV) или экспортировать содержимое;
- проверить целостность базы и найти повреждённые страницы.
Как работать:
- Закройте все сеансы 1С и сделайте копию
1Cv8.1CDв другую папку. - Откройте копию в программе: «Файл» → «Открыть».
- Раскройте список таблиц слева и выберите нужную.
- Для расшифровки имён сверяйтесь с выгруженной структурой хранения.
Работайте только с копией, не с оригиналом. Программа в основном читает, но любая ошибка сторонней утилиты при записи может сделать базу нечитаемой.
Версии платформы обновляются, формат файла меняется. Старая сборка программы может не открыть базу на свежей платформе — тогда ищите обновление утилиты.
Способ третий: выгрузка и SQL-запросы по-настоящему
В файловой базе нет сервера СУБД. ODBC-драйвера для 1Cv8.1CD у 1С нет, подключиться к
ней как к SQLite или Access нельзя. Многие статьи обещают такое подключение — для файловой базы 8.3 это не работает
.
Если нужен именно SQL, путь такой: перенести данные в настоящую СУБД и смотреть их там.
- В Конфигураторе выберите «Администрирование» → «Выгрузить информационную базу» и получите файл
.dt. - Разверните сервер PostgreSQL или MS SQL, поставьте серверную часть 1С.
- Создайте пустую клиент-серверную базу
и загрузите в неё
.dt. - Подключитесь к СУБД обычным клиентом (pgAdmin, SQL Server Management Studio) и смотрите таблицы
_Reference123и прочие.
Теперь работают обычные SELECT. Но есть три оговорки:
- имена столбцов и таблиц те же служебные, расшифровка нужна;
- ссылки хранятся двоичными значениями, их сравнение и вывод требует преобразования;
- данные в этой копии — тестовые, а правки в ней оригинал не увидит.
Прямые правки через SQL в рабочей клиент-серверной базе — запрещённый приём. Они ломают контроль целостности и блокируют поддержку. Читать можно, писать нельзя.
Что выбрать: сравнение способов
| Способ | Когда подходит | Риск для базы |
|---|---|---|
| Консоль запросов | база запускается, нужно посмотреть и сверить данные | нет |
| Структура хранения | нужно расшифровать имена _Reference… | нет |
| Tool_1CD | база не стартует, нужен аварийный доступ | низкий, если работать с копией |
Выгрузка .dt и СУБД | нужен полноценный SQL и большие выборки | нет для оригинала |
Если вы просто хотите увидеть список документов или остатки — берите консоль. Остальное нужно в редких случаях.
Подберите способ под свою ситуацию:
1Cv8.1CD и откройте копию в Tool_1CD. Для выгрузки данных этого обычно достаточно..dt, загрузите в клиент-серверный вариант на PostgreSQL или MS SQL и читайте таблицы SQL-клиентом.Практический пример: найти, где хранятся остатки по складу
Допустим, нужно понять, откуда отчёт берёт остатки товаров. Идите от метаданных к таблице.
- В Конфигураторе раскройте ветку регистров накопления и найдите регистр с названием вроде «Товары на складах».
- Получите структуру хранения и отфильтруйте её по имени этого регистра. Увидите таблицу
_AccumRgNNNи поля_Period,_Recorder,_RecordKind. - В консоли запросов выберите из регистра остатков и оборотов только нужный склад и период.
- Сверьте итог с отчётом «Ведомость по товарам на складах». Расхождение почти всегда значит, что отчёт отбирает данные по другому периоду или организации.
Такой путь занимает минут десять и избавляет от гаданий по _Fld-полям.
Ещё один приём: чтобы узнать, какие документы создали движения, смотрите поле _Recorder. Оно хранит ссылку на документ-регистратор. В запросе 1С к этому полю обращаются как к Регистратор, и платформа сама подставит документ.
Если нужна быстрая проверка размера таблиц, в структуре хранения смотрите число записей по крупным регистрам. Обычно именно регистры накопления и сведений занимают большую часть файла 1Cv8.1CD.
Права и безопасность: кто может смотреть таблицы
Просмотр данных в обход интерфейса обходит и права пользователей. Консоль запросов видит всё, что видит администратор базы. Файл 1Cv8.1CD читается вообще без проверки прав.
Поэтому:
- ограничьте доступ к папке базы на уровне Windows — только администраторы и служба резервного копирования;
- не давайте консоль запросов обычным пользователям;
- не передавайте файл базы подрядчикам без договора о неразглашении: внутри персональные данные сотрудников, банковские реквизиты, цены;
- перед отправкой базы на анализ очистите чувствительные данные или обезличьте её.
Типичные ошибки и меры предосторожности
Обычно проблемы создают не сами способы, а спешка.
- ❌ Открыли оригинал
1Cv8.1CDсторонней программой. Решение: всегда работайте с копией, и копируйте при закрытых сеансах. - ❌ Пытались подключить базу по ODBC. Для файлового режима 8.3 такого драйвера нет — тратить время не стоит.
- ❌ Правили данные в Tool_1CD. Даже если программа позволяет записать значение, платформа может не принять такую запись при следующем запуске.
- ❌ Перепутали номера таблиц между базами. У одинаковых справочников номера разные в разных конфигурациях и даже в разных копиях. Расшифровку берите из своей базы.
- ❌ Забыли про размер. Запрос на миллионы строк в консоли может «повесить» клиент. Ограничивайте выборку через
ПЕРВЫЕи отбор по периоду.
Если ничего не помогло и база не открывается ни платформой, ни утилитой, остаётся тестирование и исправление: в Конфигураторе «Администрирование» → «Тестирование и исправление». Перед ним снова нужна копия.
Частые вопросы
Можно ли открыть файл 1Cv8.1CD в Excel или Access?
Подойдёт ли DBF Viewer для базы 1С 8.3?
1Cv8.1CD.Можно ли посмотреть таблицы без доступа к Конфигуратору?
Чем отличаются имена таблиц в файловой и клиент-серверной базе?
_Reference, _Document, _InfoRg. Различаются типы данных и способ хранения, но расшифровка через структуру хранения подходит обоим вариантам.