Почему выгрузка .dt весит в разы меньше файла .1CD и как правильно обслуживать файловую базу 1С

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При администрировании баз данных 1С:Предприятие 8.3 пользователи часто сталкиваются с парадоксальной ситуацией: рабочая база в формате .1CD занимает 10–12 Гб, но после выгрузки в файл резервной копии .dt объем сокращается до 1.5–2 Гб. Разница в 4–6 раз может вызвать подозрения в целостности данных или натолкнуть на мысли о наличии «мусора» в базе. В данной статье мы разберем внутреннее устройство файловой базы, выясним причины такого сжатия и определим, когда стоит начинать беспокоиться о лимитах 1С.

Техническая природа файла .dt и его отличия от .1CD

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

Рассмотрим основные причины разницы в объеме:

  1. Отсутствие индексов в .dt. Это самый важный фактор. В рабочей базе .1CD значительную часть места занимают индексы — специальные структуры, которые позволяют 1С мгновенно находить нужные данные, не перебирая все таблицы целиком. Индексы могут занимать от 30% до 70% объема всей базы. При выгрузке в .dt индексы не сохраняются, так как они могут быть автоматически перестроены при загрузке базы.
  2. Сжатие данных. Платформа 1С при создании .dt использует внутренние алгоритмы компрессии. Все текстовые и бинарные данные упаковываются аналогично обычным ZIP-архивам. Рабочий файл .1CD не сжат, так как это замедлило бы операции чтения и записи.
  3. Фрагментация и «хвосты». В процессе работы базы данные постоянно записываются и удаляются. Файловая система 1С не всегда возвращает освободившееся место операционной системе немедленно. Внутри .1CD могут оставаться пустые страницы, которые физически занимают место на диске. При выгрузке в .dt попадают только актуальные, «живые» записи.
  4. Конфигурация. Хотя в обсуждениях иногда встречается мнение, что .dt не содержит конфигурацию, это не так. И .1CD, и .dt содержат конфигурацию программы, но в .dt она хранится в сжатом виде.

Лимиты файлового режима: правило 4 Гигабайт

Основной страх администраторов файловых баз — достижение предела размера. Разберем ситуацию подробнее. Файл .1CD внутри себя разделен на логические таблицы. Каждая таблица (например, _InfoReg123 или _Document456) состоит из трех основных частей:

Исторически в 1С существовало жесткое ограничение: каждая из этих трех составляющих одной таблицы не может превышать 4 Гб. Таким образом, сама база может весить и 20, и 40 Гб, но если размер индексов одного конкретного регистра сведений достигнет 4 Гб, база выдаст ошибку «Превышен максимальный размер таблицы». Мы можем сделать вывод: если ваша база весит 11 Гб, это еще не повод для паники, если данные распределены по таблицам равномерно.

Как проверить размер конкретных таблиц

Чтобы понять, насколько вы близки к критической отметке, необходимо проанализировать состав .1CD. Выясним причину разрастания с помощью специализированных средств. Проанализируем два способа:

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

Если мы видим, что какая-то таблица приближается к 3–3.5 Гб, это сигнал к активным действиям.

Современные методы расширения лимитов (8.3.8 и 8.3.15)

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

Изменение размера страницы

Начиная с версии платформы 8.3.8, появилась возможность изменять размер страницы данных. По умолчанию он составляет 4096 байт (4 Кб). Увеличив его до 65536 байт (64 Кб), можно не только повысить производительность на больших объемах, но и в ряде случаев решить проблему с хранением крупных объектов. Однако стоит учитывать, что это может привести к физическому «раздуванию» файла .1CD.

Поддержка 64-битных смещений (Платформа 8.3.15+)

Это самое важное обновление для файловых баз. В платформе 8.3.15 и выше появилась возможность использовать формат базы с 64-битными смещениями. Это практически снимает старый лимит в 4 Гб на одну таблицу. Теперь внутренние структуры могут расти до размеров, ограничиваемых только возможностями вашей файловой системы (например, лимитами NTFS).

Для перехода на этот формат выполним следующие шаги в режиме Конфигуратора:

  1. Перейдем в меню Администрирование — Параметры информационной базы...
  2. В поле Формат файловой базы выберем значение «8.3.8» (это включает поддержку расширенных возможностей).
  3. Установим размер страницы (рекомендуется 8192 или 16384 для крупных баз).
  4. Нажмем «ОК» и дождемся завершения конвертации. Внимание: перед этой операцией обязательно создайте резервную копию!

Стратегии оптимизации: Свертка и Тестирование

Если база разрослась, а переходить на SQL-вариант пока нет возможности или желания, разберем методы очистки данных.

ТиИ (Тестирование и исправление)

Рассмотрим процедуру сжатия таблиц. При удалении объектов в 1С (через «Удаление помеченных») данные не исчезают из файла физически. Они просто помечаются как свободные. Чтобы физически уменьшить размер файла .1CD, необходимо запустить ТиИ с включенной опцией «Сжатие таблиц». Платформа пересоберет файл, исключив из него пустоты.

Свертка базы данных

Проанализируем ситуацию, когда база ведется много лет. Свертка позволяет обрезать данные до определенной даты (например, оставить только последние 3 года), заменив старые документы на документы ввода остатков. Посмотрим на типичные проблемы свертки, упомянутые в обсуждении, например, расхождение сальдо на счете 50.01 и появление сумм на счете 000. Это происходит из-за неверной последовательности проведения документов или наличия ручных корректировок. При выполнении свертки всегда:

Хранение файлов вне базы

Часто основной объем занимают не проводки, а прикрепленные сканы договоров и PDF-счета. Если ваша конфигурация построена на БСП (Библиотека стандартных подсистем), переведите хранение файлов из базы в тома на диске. Это позволит:

  1. Мгновенно уменьшить размер .1CD на объем всех картинок и документов.
  2. Ускорить создание бэкапов (копировать файлы можно отдельно).
  3. Снизить риск повреждения базы при сбоях.

Переход на другие форматы (SQL и Облако)

Если база достигла 15–20 Гб и работает медленно, никакие оптимизации не заменят клиент-серверный режим. Посмотрим на альтернативы:

Резюме

Разница в размере между .dt и .1CD — это нормальное явление, обусловленное индексацией и отсутствием сжатия в рабочей базе. Для современной платформы 8.3.15+ размер базы в 7–10 Гб не является критическим при правильной настройке формата базы. Тем не менее, регулярное проведение ТиИ, настройка журнала регистрации и контроль за ростом таблиц — необходимые задачи для стабильной работы системы.

← На главную