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

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

Как хранятся данные в 1С:Предприятии

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

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

Платформа 1С:Предприятие сама управляет структурой хранения: разработчик описывает объекты конфигурации (справочники, документы, регистры), а платформа создаёт для них физические таблицы. Прямой доступ к этим таблицам в обход платформы не предусмотрен лицензионной политикой и на практике опасен: связи между таблицами сложны, а служебные поля недокументированы.

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

Два режима хранения: файловый и клиент-серверный

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

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

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

Сравнение режимов хранения

Файловый режим (1Cv8.1CD)

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

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

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

Что находится внутри файла 1Cv8.1CD

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

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

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

Как конфигурация отображается на физические таблицы

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

Имена физических таблиц генерируются платформой и выглядят как служебные идентификаторы, например _Reference123 для справочника или _Document456 для документа. Соответствие между объектами метаданных и таблицами можно получить штатной функцией «ПолучитьСтруктуруХраненияБазыДанных» — она выводит таблицу соответствия имён.

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

bsl
ТаблицаХранения = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТаблицаХранения Цикл
    Сообщить(Строка.ИмяТаблицыХранения + " <- " + Строка.ИмяТаблицы);
КонецЦикла;

Журнал регистрации, кэш и временные данные

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

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

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

Как очистить кэш метаданных на клиенте
  1. 1
    Завершите все сеансы 1С на компьютере пользователя.
  2. 2
    Откройте каталог с данными приложений: %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
  3. 3
    Найдите папки с длинными именами-идентификаторами, соответствующими базам, и удалите их (или удалите базу из списка и добавьте заново).
  4. 4
    Запустите 1С и проверьте, что ошибка исчезла, а база открывается с актуальной конфигурацией.

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

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

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

Перенос базы между режимами делается только через DT: выгрузили из файловой базы, создали пустую клиент-серверную базу, загрузили. Прямого «подключения» файла 1CD к SQL-серверу не существует.

Диагностика проблем и обслуживание базы

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

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

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

Типичные ошибки
01
Копирование 1CD при открытых сеансах — копия получается битой и не открывается при восстановлении.
02
Прямые UPDATE и DELETE в таблицах SQL — нарушают связи и итоги, поддержка такой базы невозможна.
03
Отсутствие контроля размера журнала регистрации — диск переполняется, сервер останавливается.
04
Считать, что удаление документов уменьшит файл — без сжатия таблиц размер не изменится.
Контрольные точки

Как проверить состояние базы

Открытие базы и запуск отчётов
Норма

База открывается без ошибок, итоги сходятся с документами

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

Ошибки формата потока, расхождение итогов с движениями

Размер файла 1CD и свободное место
Норма

Размер растёт плавно, запас места на диске есть

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

Резкие скачки размера, диск заполнен почти полностью

Журнал регистрации
Норма

Журнал открывается быстро, события записываются

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

Журнал огромен, открывается долго, диск переполняется

FAQ: частые вопросы о хранении данных в 1С

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

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

Где физически лежат данные при клиент-серверном режиме?

В файлах данных СУБД на сервере: для MS SQL это файлы MDF и LDF, для PostgreSQL — каталог данных кластера. Точное расположение задаётся при создании базы в консоли администрирования сервера 1С и настройках самой СУБД.

Почему база не уменьшается после удаления документов?

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

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

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

Безопасно ли чистить кэш 1С?

Да, кэш — это временные копии метаданных, платформа пересоздаст его при следующем запуске. Удаление каталогов кэша не затрагивает данные базы. Единственное условие — все сеансы на этом компьютере должны быть закрыты.

Как понять, что пора переходить с файлового режима на клиент-серверный?

Сигналы: частые ошибки блокировок при одновременной работе, заметное замедление при росте объёма, необходимость регламентных заданий на сервере и требования к отказоустойчивости. Переход выполняется через выгрузку DT и загрузку в новую клиент-серверную базу.

Итог

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

Данные 1С хранятся либо в едином файле 1Cv8.1CD, либо в базе на SQL-сервере; структуру таблиц всегда создаёт платформа. Копируйте файловую базу только при закрытых сеансах, не правьте таблицы напрямую, периодически сжимайте таблицы, сокращайте журнал регистрации и проверяйте целостность штатными средствами.