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

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

Как устроена база данных 1С: структура и принципы хранения

Как устроена база данных 1С: файловый и клиент-серверный режимы, таблицы SQL, метаданные, кластер серверов. Разбираем структуру, ограничения и практические вопросы.

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

База 1С может существовать в двух принципиально разных форматах: файловом (отдельный файл 1Cv8.1CD) и клиент-серверном (база на СУБД — Microsoft SQL Server, PostgreSQL, Oracle или IBM DB2). Логическая модель данных в обоих случаях одинакова, но физическое устройство, ограничения и методы администрирования существенно различаются. Именно поэтому первая развилка при изучении устройства базы — определить, в каком режиме работает конкретная информационная база.

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

Из чего состоит информационная база

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

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

Важно понимать: одна и та же конфигурация (например, «Управление торговлей») может быть развёрнута и в файловом, и в клиент-серверном варианте без изменений. Платформа абстрагирует прикладной код от конкретного хранилища, поэтому запросы на встроенном языке работают одинаково в обоих режимах.

Файловый режим: база в одном файле 1Cv8.1CD

В файловом варианте вся база — конфигурация, данные, пользователи, настройки — хранится в одном файле с именем 1Cv8.1CD, который лежит в каталоге информационной базы. Рядом могут находиться служебные файлы и папки (например, журнал регистрации в подкаталоге), но основной объём данных сосредоточен именно в этом файле.

Внутри 1Cv8.1CD — контейнер собственного формата, по сути встроенная СУБД: страницы данных, индексы, таблицы. Платформа читает и пишет этот файл напрямую. При одновременной работе нескольких пользователей по сети доступ к файлу координируется через механизмы блокировок операционной системы, что накладывает серьёзные ограничения.

Ключевые ограничения файлового режима:

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

Клиент-серверный режим: СУБД, сервер 1С, тонкий клиент

В клиент-серверном варианте появляется трёхзвенная архитектура. Клиентское приложение (тонкий, толстый или веб-клиент) обращается не к данным напрямую, а к кластеру серверов 1С:Предприятия. Сервер 1С исполняет прикладной код, управляет транзакциями и блокировками, а за физическое хранение отвечает внешняя СУБД: Microsoft SQL Server, PostgreSQL (в том числе сборки Postgres Pro), Oracle или IBM DB2.

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

Такое разделение даёт практические преимущества: резервное копирование средствами СУБД без остановки работы, журналирование транзакций и восстановление на момент времени (для моделей восстановления full), развитые средства мониторинга, масштабирование на десятки и сотни одновременных пользователей. Цена вопроса — необходимость администрировать два продукта: и кластер 1С, и СУБД.

Файловый или клиент-серверный режим

Файловый (1Cv8.1CD)

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

Клиент-серверный (СУБД)

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

Как метаданные отображаются на таблицы СУБД

Откройте базу 1С в SQL Server Management Studio или pgAdmin — и вы увидите множество таблиц с техническими именами вида _Reference123, _Document456, _AccumRg789. Каждое имя состоит из префикса типа объекта и внутреннего номера, который платформа присваивает объекту метаданных. Соответствие номеров объектам хранится в служебных таблицах самой базы.

Типичные префиксы физических таблиц:

ПрефиксОбъект метаданныхЧто хранит
_ReferenceСправочникЭлементы справочника, реквизиты — в полях таблицы
_DocumentДокументШапки документов; табличные части — в отдельных таблицах
_InfoRgРегистр сведенийЗаписи регистра: измерения, ресурсы, период
_AccumRgРегистр накопленияДвижения; итоги — в отдельных таблицах итогов
_Enum / _ChrcПеречисление / план видов характеристикЗначения перечислений, предопределённые данные

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

Как платформа работает с данными: запросы, транзакции, блокировки

Прикладной код не пишет SQL напрямую (за редкими исключениями). Разработчик использует встроенный язык запросов 1С — декларативный язык, похожий на SQL, но оперирующий объектами метаданных: ВЫБРАТЬ Номенклатура.Наименование ИЗ Справочник.Номенклатура. Платформа транслирует такой запрос в диалект конкретной СУБД с учётом виртуальных таблиц, итогов и разрезов.

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

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

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

Резервное копирование и перенос базы

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

Для клиент-серверной базы основной способ — штатные средства СУБД: полные и разностные копии, копии журнала транзакций. Это позволяет делать бэкапы без остановки работы и восстанавливаться на произвольный момент времени. Выгрузка в dt здесь используется в основном для переноса базы между разными СУБД или для передачи копии разработчику.

При переносе базы между СУБД (например, с MS SQL на PostgreSQL) прямое копирование файлов данных невозможно — форматы несовместимы. Корректный путь: выгрузка в dt из исходной базы и загрузка в новую, созданную на целевой СУБД. Учтите, что для больших баз этот процесс занимает значительное время и требует свободного места.

Контрольные точки

Как проверить результат копирования

Открытие восстановленной копии
Норма

База открывается в режиме предприятия, типовые отчёты формируются без ошибок

Тревожный признак

Ошибки формата потока, сообщения о повреждении, пустые справочники

Сверка ключевых данных
Норма

Остатки и обороты в копии совпадают с рабочей базой на дату копии

Тревожный признак

Расхождения в итогах регистров или отсутствие части документов

Где искать данные и как диагностировать проблемы

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

Для диагностики производительности в клиент-серверном режиме применяют технологический журнал кластера 1С (фиксирует длительные запросы, блокировки, ошибки) и средства самой СУБД: планы выполнения запросов, динамические административные представления в MS SQL, pg_stat_statements в PostgreSQL. Связка этих источников позволяет найти конкретный запрос прикладного кода, который нагружает сервер.

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

Перед любым обновлением конфигурации с реструктуризацией делайте выгрузку в dt, а не только бэкап средствами СУБД: dt позволяет быстро поднять копию на другом сервере или в файловом режиме для разбора проблемы, не трогая продуктивную среду.
ПЗ
Практическое замечание

Ограничения и границы самостоятельной работы

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

К специалистам стоит обращаться, когда требуется: восстановление повреждённой продуктивной базы без актуальной копии, миграция большой базы между СУБД, настройка отказоустойчивого кластера, разбор хронических взаимоблокировок. Ошибка в этих сценариях может привести к потере данных или длительному простою учётной системы.

Маршрут решения

Как выбрать действие

Нужно просто посмотреть, где лежат данные объектаИспользуйте ПолучитьСтруктуруХраненияБазыДанных() и консоль запросов — без доступа к СУБД
Нужна копия файловой базы прямо сейчасЗавершите все сеансы и скопируйте 1Cv8.1CD либо сделайте выгрузку в dt
База на СУБД, нужен бэкап без остановки работыНастройте регламентное резервное копирование средствами СУБД
Файловая база не открывается после сбояСделайте копию файла и запустите chdbfl.exe с проверкой физической целостности

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

Можно ли открыть файл 1Cv8.1CD без платформы 1С?

Штатных сторонних средств для полноценного чтения формата нет — это закрытый внутренний формат платформы. Для работы с данными установите платформу и подключите базу через список информационных баз. Попытки открыть файл hex-редакторами или сторонними утилитами дают лишь фрагментарный результат и рискуют повредить данные.

Чем выгрузка в dt отличается от копирования файла базы?

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

Почему в SQL-базе 1С таблицы имеют непонятные имена?

Платформа генерирует физические имена автоматически по шаблону «префикс типа объекта + внутренний номер». Это позволяет переименовывать объекты метаданных без пересоздания таблиц. Соответствие имён объектам смотрите через функцию ПолучитьСтруктуруХраненияБазыДанных() в конфигураторе или консоли кода.

Можно ли подключить стороннюю аналитику напрямую к SQL-базе 1С?

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

Что происходит с базой при обновлении конфигурации?

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

Как узнать, в каком режиме работает база?

В окне запуска 1С выделите базу: внизу отображается строка подключения. Если это путь к каталогу — режим файловый, если указан сервер 1С и имя базы в кластере — клиент-серверный. Ту же информацию видно в разделе «О программе» в режиме предприятия.

Итог

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

База 1С — это метаданные плюс данные, хранимые либо в файле 1Cv8.1CD, либо в базе внешней СУБД через сервер 1С. Физические таблицы создаёт платформа, прямая правка данных в обход неё запрещена. Резервные копии делайте штатными средствами: копированием файла при закрытых сеансах, выгрузкой в dt или бэкапами СУБД.