Администрирование · 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С, и СУБД.
Файловый или клиент-серверный режим
Подходит для небольших команд и локальной работы. Простое копирование файла, минимум администрирования. Ограничение — конфликты блокировок при росте числа пользователей и риск повреждения при сбоях.
Подходит для многопользовательской работы и больших объёмов. Горячие бэкапы, отказоустойчивость, мониторинг. Ограничение — требует лицензий на сервер 1С и СУБД, а также квалифицированного администрирования.
Как метаданные отображаются на таблицы СУБД
Откройте базу 1С в SQL Server Management Studio или pgAdmin — и вы увидите множество таблиц с техническими именами вида _Reference123, _Document456, _AccumRg789. Каждое имя состоит из префикса типа объекта и внутреннего номера, который платформа присваивает объекту метаданных. Соответствие номеров объектам хранится в служебных таблицах самой базы.
Типичные префиксы физических таблиц:
| Префикс | Объект метаданных | Что хранит |
|---|---|---|
| _Reference | Справочник | Элементы справочника, реквизиты — в полях таблицы |
| _Document | Документ | Шапки документов; табличные части — в отдельных таблицах |
| _InfoRg | Регистр сведений | Записи регистра: измерения, ресурсы, период |
| _AccumRg | Регистр накопления | Движения; итоги — в отдельных таблицах итогов |
| _Enum / _Chrc | Перечисление / план видов характеристик | Значения перечислений, предопределённые данные |
Узнать, какой таблице соответствует конкретный объект, можно через функцию встроенного языка ПолучитьСтруктуруХраненияБазыДанных() — она возвращает таблицу соответствия объектов метаданных и физических имён. Это штатный и безопасный способ, в отличие от попыток угадать назначение таблицы по номеру.
Как платформа работает с данными: запросы, транзакции, блокировки
Прикладной код не пишет SQL напрямую (за редкими исключениями). Разработчик использует встроенный язык запросов 1С — декларативный язык, похожий на SQL, но оперирующий объектами метаданных: ВЫБРАТЬ Номенклатура.Наименование ИЗ Справочник.Номенклатура. Платформа транслирует такой запрос в диалект конкретной СУБД с учётом виртуальных таблиц, итогов и разрезов.
Виртуальные таблицы — важная особенность. Например, РегистрНакопления.Остатки.Остатки физически не существует как одна таблица: платформа собирает результат из таблицы итогов и таблицы движений. Поэтому прямой запрос к физическим таблицам для получения остатков сложнее, чем кажется, — проще использовать штатные механизмы.
Транзакционность обеспечивается на двух уровнях: управляемые блокировки платформы (на уровне сервера 1С) и блокировки СУБД. В современных конфигурациях преобладает управляемый режим: платформа явно указывает, какие данные блокируются при записи, что снижает взаимные блокировки при параллельной работе. Понимание этого механизма критично при диагностике ошибок «конфликт блокировки при выполнении транзакции».
Резервное копирование и перенос базы
Способ резервного копирования зависит от режима работы. Для файловой базы доступны два пути: копирование файла 1Cv8.1CD при полностью завершённых сеансах либо выгрузка в файл .dt через конфигуратор (меню «Администрирование — Выгрузить информационную базу»). Выгрузка в dt безопаснее: платформа формирует консистентный снимок и проверяет структуру при загрузке.
Для клиент-серверной базы основной способ — штатные средства СУБД: полные и разностные копии, копии журнала транзакций. Это позволяет делать бэкапы без остановки работы и восстанавливаться на произвольный момент времени. Выгрузка в dt здесь используется в основном для переноса базы между разными СУБД или для передачи копии разработчику.
При переносе базы между СУБД (например, с MS SQL на PostgreSQL) прямое копирование файлов данных невозможно — форматы несовместимы. Корректный путь: выгрузка в dt из исходной базы и загрузка в новую, созданную на целевой СУБД. Учтите, что для больших баз этот процесс занимает значительное время и требует свободного места.
Как проверить результат копирования
База открывается в режиме предприятия, типовые отчёты формируются без ошибок
Ошибки формата потока, сообщения о повреждении, пустые справочники
Остатки и обороты в копии совпадают с рабочей базой на дату копии
Расхождения в итогах регистров или отсутствие части документов
Где искать данные и как диагностировать проблемы
Для поиска конкретных данных внутри базы используйте штатные инструменты: универсальные отчёты и подборы в режиме предприятия, консоль запросов во внешних обработках, функцию ПолучитьСтруктуруХраненияБазыДанных() для сопоставления объектов и таблиц. Эти способы не требуют прямого доступа к СУБД и не несут риска повреждения.
Для диагностики производительности в клиент-серверном режиме применяют технологический журнал кластера 1С (фиксирует длительные запросы, блокировки, ошибки) и средства самой СУБД: планы выполнения запросов, динамические административные представления в MS SQL, pg_stat_statements в PostgreSQL. Связка этих источников позволяет найти конкретный запрос прикладного кода, который нагружает сервер.
Если файл файловой базы повреждён, первый шаг — утилита chdbfl.exe из каталога установки платформы с режимом проверки физической целостности. Она работает только с файловыми базами и только при отсутствии открытых сеансов. Перед запуском обязательно сделайте копию файла — утилита изменяет базу при исправлении ошибок.
Перед любым обновлением конфигурации с реструктуризацией делайте выгрузку в dt, а не только бэкап средствами СУБД: dt позволяет быстро поднять копию на другом сервере или в файловом режиме для разбора проблемы, не трогая продуктивную среду.
Ограничения и границы самостоятельной работы
Самостоятельно и безопасно можно: изучать структуру хранения через штатные функции, делать выгрузки и копии, читать технологический журнал, восстанавливать тестовые копии. Эти действия не меняют рабочую базу и обратимы.
К специалистам стоит обращаться, когда требуется: восстановление повреждённой продуктивной базы без актуальной копии, миграция большой базы между СУБД, настройка отказоустойчивого кластера, разбор хронических взаимоблокировок. Ошибка в этих сценариях может привести к потере данных или длительному простою учётной системы.
Как выбрать действие
Частые вопросы
Можно ли открыть файл 1Cv8.1CD без платформы 1С?
Штатных сторонних средств для полноценного чтения формата нет — это закрытый внутренний формат платформы. Для работы с данными установите платформу и подключите базу через список информационных баз. Попытки открыть файл hex-редакторами или сторонними утилитами дают лишь фрагментарный результат и рискуют повредить данные.
Чем выгрузка в dt отличается от копирования файла базы?
Копирование файла — побайтовый снимок, который корректен только при закрытых сеансах и переносится только в файловый режим. Выгрузка в dt — логическая выгрузка через платформу: её можно загрузить в базу на другой СУБД, при загрузке выполняется проверка структуры. Для миграций и передачи копий предпочтителен dt.
Почему в SQL-базе 1С таблицы имеют непонятные имена?
Платформа генерирует физические имена автоматически по шаблону «префикс типа объекта + внутренний номер». Это позволяет переименовывать объекты метаданных без пересоздания таблиц. Соответствие имён объектам смотрите через функцию ПолучитьСтруктуруХраненияБазыДанных() в конфигураторе или консоли кода.
Можно ли подключить стороннюю аналитику напрямую к SQL-базе 1С?
Технически возможно для чтения: создайте отдельную учётную запись с правами только на чтение и стройте запросы по структуре хранения. Учитывайте, что итоги регистров и виртуальные таблицы придётся собирать вручную, а при обновлении конфигурации структура таблиц может измениться. Для регулярной аналитики надёжнее штатные механизмы обмена и выгрузки.
Что происходит с базой при обновлении конфигурации?
При изменении метаданных платформа выполняет реструктуризацию: добавляет и изменяет физические таблицы и поля, переносит данные в новые структуры. На больших базах это может занимать продолжительное время, поэтому обновления планируют в нерабочие часы и всегда после резервного копирования.
Как узнать, в каком режиме работает база?
В окне запуска 1С выделите базу: внизу отображается строка подключения. Если это путь к каталогу — режим файловый, если указан сервер 1С и имя базы в кластере — клиент-серверный. Ту же информацию видно в разделе «О программе» в режиме предприятия.
Что важно запомнить
База 1С — это метаданные плюс данные, хранимые либо в файле 1Cv8.1CD, либо в базе внешней СУБД через сервер 1С. Физические таблицы создаёт платформа, прямая правка данных в обход неё запрещена. Резервные копии делайте штатными средствами: копированием файла при закрытых сеансах, выгрузкой в dt или бэкапами СУБД.