Администрирование · 10 мин
Как хранятся данные в 1С:Предприятии
Как хранятся данные в 1С:Предприятии — файловый и клиент-серверный режимы, структура таблиц, кэш, журналы регистрации и практические советы по администрированию баз.
Любая информационная база 1С — это не просто набор документов и справочников, а строго организованная структура данных, которую платформа хранит одним из двух способов: в одном файле с расширением .1CD или в базе данных на сервере СУБД. Понимание того, где физически лежат данные, нужно при настройке резервного копирования, переезде на другой сервер, диагностике медленной работы и восстановлении после сбоев.
Платформа 1С:Предприятие сама управляет структурой хранения: разработчик описывает объекты конфигурации (справочники, документы, регистры), а платформа создаёт для них физические таблицы. Прямой доступ к этим таблицам в обход платформы не предусмотрен лицензионной политикой и на практике опасен: связи между таблицами сложны, а служебные поля недокументированы.
Выбор режима хранения определяется при создании информационной базы, но его можно изменить позже через выгрузку и загрузку данных. Ниже разобраны оба режима, внутреннее устройство файла 1CD, роль кэша и журналов, а также практические правила обслуживания.
Два режима хранения: файловый и клиент-серверный
В файловом режиме вся информационная база — это один файл 1Cv8.1CD, лежащий в каталоге базы. Рядом могут находиться служебные файлы и папки, но именно 1CD содержит конфигурацию, данные, пользователей и настройки. Такой файл можно скопировать как обычный документ — это самый простой способ переноса и архивации базы, но делать копию нужно только при закрытых сеансах пользователей.
В клиент-серверном режиме данные хранятся в базе данных под управлением СУБД: Microsoft SQL Server, PostgreSQL (включая сборки, адаптированные для 1С), Oracle Database или IBM Db2. Файл 1CD в этом случае отсутствует — в каталоге базы лежит лишь небольшой служебный набор, а вся информация распределена по таблицам СУБД. Резервное копирование здесь выполняется штатными средствами СУБД, а не копированием файлов.
Файловый режим подходит для небольших баз и ограниченного числа одновременно работающих пользователей. При росте числа пользователей и объёма данных возникают блокировки и замедление — это сигнал к переходу на клиент-серверный вариант, где конкурентный доступ обрабатывает СУБД.
Сравнение режимов хранения
Простое копирование и перенос, не требует отдельного сервера. Ограничение: слабо переносит интенсивную одновременную работу многих пользователей и большие объёмы.
Устойчив к нагрузкам, поддерживает регламентные задания на сервере и полноценные средства резервирования СУБД. Ограничение: требует администрирования сервера и лицензий.
Что находится внутри файла 1Cv8.1CD
Файл 1CD — это контейнер собственного формата, внутри которого данные организованы в таблицы с блочной структурой. Каждому объекту конфигурации соответствует одна или несколько таблиц: у справочника — таблица элементов, у документа — таблица шапок и отдельные таблицы табличных частей, у регистра накопления — таблица движений и таблица итогов.
Кроме пользовательских данных, в файле хранятся сама конфигурация, конфигурация базы данных, список пользователей с хэшами паролей, настройки и служебные таблицы. Поэтому файл 1CD нельзя открыть сторонними программами осмысленно — для работы с ним существуют только штатные механизмы платформы и утилита восстановления.
Файл устроен так, что удалённые записи не всегда освобождают место физически: страницы помечаются свободными и переиспользуются позже. Из-за этого база может «раздуваться» даже при активном удалении данных. Вернуть место помогает тестирование и исправление с режимом сжатия таблиц.
Как конфигурация отображается на физические таблицы
При обновлении конфигурации базы данных платформа выполняет реструктуризацию: создаёт новые таблицы, добавляет поля, переносит данные из старых структур в новые. Именно поэтому обновление крупной базы может занимать длительное время — физически копируются миллионы записей.
Имена физических таблиц генерируются платформой и выглядят как служебные идентификаторы, например _Reference123 для справочника или _Document456 для документа. Соответствие между объектами метаданных и таблицами можно получить штатной функцией «ПолучитьСтруктуруХраненияБазыДанных» — она выводит таблицу соответствия имён.
Для регистров платформа хранит не только сами движения, но и предрассчитанные итоги: например, для регистра накопления типа «Остатки» существует отдельная таблица итогов по периодам. Благодаря этому отчёты по остаткам выполняются быстро, но при сбоях итоги могут рассинхронизироваться с движениями — тогда помогает пересчёт итогов в режиме тестирования и исправления.
ТаблицаХранения = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТаблицаХранения Цикл
Сообщить(Строка.ИмяТаблицыХранения + " <- " + Строка.ИмяТаблицы);
КонецЦикла;Журнал регистрации, кэш и временные данные
Помимо основной базы, платформа ведёт журнал регистрации — отдельное хранилище событий: входы пользователей, ошибки, изменения данных, если это включено в настройках. В файловом режиме журнал лежит в подкаталоге базы, в клиент-серверном — в каталоге сервера 1С. Без контроля журнал может разрастись до значительных размеров, поэтому его периодически сокращают через настройку «Сократить» в конфигураторе.
Кэш метаданных — ещё один слой хранения, о котором полезно знать администратору. Платформа кэширует описание конфигурации на клиентских компьютерах и на сервере, чтобы ускорить запуск. При повреждении кэша возникают странные ошибки: «Ошибка формата потока», несоответствие поведения базы актуальной конфигурации. Лечится очисткой каталога кэша.
Также существуют временные таблицы и хранилища настроек: пользовательские настройки отчётов, варианты, история ввода. Они находятся внутри той же базы, но в системных таблицах, и при переносе данных через выгрузку в DT переносятся вместе с основными данными.
- 1Завершите все сеансы 1С на компьютере пользователя.
- 2Откройте каталог с данными приложений: %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
- 3Найдите папки с длинными именами-идентификаторами, соответствующими базам, и удалите их (или удалите базу из списка и добавьте заново).
- 4Запустите 1С и проверьте, что ошибка исчезла, а база открывается с актуальной конфигурацией.
Резервное копирование и перенос базы
Для файловой базы допустимы два способа копирования: выгрузка в файл DT через конфигуратор или простое копирование файла 1CD. Выгрузка в DT надёжнее: она проверяет целостность данных в процессе и создаёт переносимый архив, который загружается в базу любого режима. Копирование файла быстрее, но требует, чтобы ни один сеанс не был открыт, иначе копия окажется в несогласованном состоянии.
В клиент-серверном режиме копирование выполняется средствами СУБД: полные и разностные бэкапы, копии журналов транзакций. Выгрузка в DT здесь тоже работает, но для больших баз занимает много времени, поэтому её используют для миграций и передачи копий, а не для ежедневного резервирования.
Перенос базы между режимами делается только через DT: выгрузили из файловой базы, создали пустую клиент-серверную базу, загрузили. Прямого «подключения» файла 1CD к SQL-серверу не существует.
Диагностика проблем и обслуживание базы
Типичные признаки проблем с хранением: база открывается с ошибкой «Файл базы данных повреждён», отчёты показывают неверные итоги, резко вырос размер файла, сеансы зависают на блокировках. Для файловых баз первый инструмент — «Тестирование и исправление» в конфигураторе с выбором нужных проверок: референтная целостность, пересчёт итогов, сжатие таблиц.
Если штатное тестирование не справляется, существует отдельная утилита проверки физической целостности файла 1CD, входящая в поставку платформы. Она работает на уровне страниц файла и позволяет диагностировать повреждения, недоступные конфигуратору. Запускать её нужно на копии файла.
Регулярное обслуживание включает: контроль свободного места на диске, сокращение журнала регистрации, периодическое сжатие таблиц файловой базы, а для клиент-серверных баз — обновление статистики и перестроение индексов средствами СУБД. Эти операции заметно влияют на скорость работы.
Как проверить состояние базы
База открывается без ошибок, итоги сходятся с документами
Ошибки формата потока, расхождение итогов с движениями
Размер растёт плавно, запас места на диске есть
Резкие скачки размера, диск заполнен почти полностью
Журнал открывается быстро, события записываются
Журнал огромен, открывается долго, диск переполняется
FAQ: частые вопросы о хранении данных в 1С
Можно ли открыть файл 1Cv8.1CD без платформы 1С?
Осмысленно — нет. Формат внутренний и недокументированный, данные в нём сжаты и структурированы по страницам. Существуют сторонние утилиты для аварийного извлечения данных из повреждённых файлов, но для штатной работы нужна платформа, а для диагностики — её собственные средства тестирования.
Где физически лежат данные при клиент-серверном режиме?
В файлах данных СУБД на сервере: для MS SQL это файлы MDF и LDF, для PostgreSQL — каталог данных кластера. Точное расположение задаётся при создании базы в консоли администрирования сервера 1С и настройках самой СУБД.
Почему база не уменьшается после удаления документов?
Освобождённые страницы внутри файла 1CD помечаются свободными и используются повторно, но файл не сжимается автоматически. Чтобы вернуть место системе, выполните тестирование и исправление с включённым сжатием таблиц при отсутствии активных сеансов.
Чем выгрузка в DT отличается от копирования файла базы?
Выгрузка DT — логическая копия: платформа читает данные и проверяет их целостность, результат можно загрузить в базу любого режима. Копирование файла — физическая копия, которая быстрее, но требует закрытых сеансов и не подходит для смены режима хранения.
Безопасно ли чистить кэш 1С?
Да, кэш — это временные копии метаданных, платформа пересоздаст его при следующем запуске. Удаление каталогов кэша не затрагивает данные базы. Единственное условие — все сеансы на этом компьютере должны быть закрыты.
Как понять, что пора переходить с файлового режима на клиент-серверный?
Сигналы: частые ошибки блокировок при одновременной работе, заметное замедление при росте объёма, необходимость регламентных заданий на сервере и требования к отказоустойчивости. Переход выполняется через выгрузку DT и загрузку в новую клиент-серверную базу.
Что важно запомнить
Данные 1С хранятся либо в едином файле 1Cv8.1CD, либо в базе на SQL-сервере; структуру таблиц всегда создаёт платформа. Копируйте файловую базу только при закрытых сеансах, не правьте таблицы напрямую, периодически сжимайте таблицы, сокращайте журнал регистрации и проверяйте целостность штатными средствами.