Как проверить размер таблиц в файловой базе данных 1С и что делать при разрастании файла 1Cv8.1CD?

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

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

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

Анализируем размер таблиц с помощью утилиты Tool_1CD

Проанализируем структуру файловой базы 1С. Штатные средства платформы в режиме «Предприятие» или «Конфигуратор» не предоставляют детализированного отчета по занимаемому объему каждой конкретной таблицы. Для решения этой задачи применяется сторонний специализированный инструмент — Tool_1CD.

Эта утилита предназначенa для прямого чтения файла 1Cv8.1CD без необходимости запуска платформы 1С. Процесс анализа выглядит следующим образом:

  1. Останавливаем работу пользователей и завершаем все сеансы работы с информационной базой.
  2. Запускаем утилиту Tool_1CD и открываем основной файл базы данных 1Cv8.1CD.
  3. Переходим во вкладку просмотра таблиц, где отображается полный список таблиц базы данных с указанием их наименований в терминах 1С и физических объемов.

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

Разберем внутреннее устройство файла 1Cv8.1CD и ограничения формата

Выясним причину, почему базы размером от 4 до 8 ГБ вызывают опасения. Каждая таблица внутри файла 1Cv8.1CD физически состоит из четырех внутренних составляющих:

  1. Файл описания структуры таблицы.
  2. Файл записей (непосредственные данные таблицы).
  3. Файл индексов (имеет расширение .cdx внутри хранилища).
  4. Файл полей неограниченной длины (BLOB-данные: строки неограниченной длины, прикрепленные файлы, печатные формы).

Важно понимать: классическое ограничение файлового режима 1С в 4 ГБ относится не ко всему файлу 1Cv8.1CD целиком, а к каждому из четырех внутренних файлов конкретной таблицы по отдельности. Например, если сама таблица данных занимает 2 ГБ, но файл ее индексов или неограниченных длин разрастается до 4 ГБ, база данных прекращает работу с ошибкой превышения допустимого размера.

Начиная с версии платформы 1С:Предприятие 8.3.8, формат файловых баз был модернизирован. При использовании нового формата с увеличенным размером страницы (8, 16, 32 или 64 Кб) максимальный предел каждого внутреннего файла таблицы возрастает до 6 ГБ, а общий потенциальный объем базы данных может достигать нескольких терабайт.

Изменяем размер страницы базы через консольную утилиту cnvdbfl.exe

Если файловая база приближается к критическому размеру, а перевод на клиент-серверный режим пока не запланирован, выполним конвертацию формата базы данных. В каталоге установки платформы 1С (папка bin) находится штатная утилита cnvdbfl.exe.

Посмотрим на пример команды для конвертации базы данных в формат 8.3.8 с максимальным размером страницы 64 Кб:

cnvdbfl.exe -c -f 8.3.8 -p 64k "C:\Bases\UT103\1Cv8.1CD"

Разберем параметры запуска данной команды:

  1. -c — запуск режима конвертации файла.
  2. -f 8.3.8 — целевой формат базы данных.
  3. -p 64k — установка размера страницы 64 килобайта (обеспечивает максимальную емкость таблиц).
  4. Далее в кавычках указывается полный путь к файлу 1Cv8.1CD.

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

Проводим профилактическое обслуживание и дефрагментацию

Частой причиной необоснованного разрастания файла 1Cv8.1CD является физическая фрагментация. При удалении документов или очистке регистров освободившееся место внутри файла не возвращается операционной системе автоматически, образуя незанятые блоки («дыры»).

Для оптимизации физической структуры базы выполним последовательные шаги:

  1. Проверка целостности: в папке bin платформы 1С найдем и запустим утилиту chdbfl.exe. Проведем физическую проверку файла базы для выявления и исправления поврежденных блоков.
  2. Сжатие таблиц: откроем базу в режиме «Конфигуратор», перейдем в меню Администрирование — Тестирование и исправление.... Выберем пункт Сжатие таблиц информационной базы. Данная процедура выполняет дефрагментацию физического файла 1Cv8.1CD и физически удаляет очищенные записи, существенно уменьшая размер базы на диске.
  3. Очистка узлов обмена: проанализируем таблицы регистрации изменений. Если в базе настроена синхронизация данных, неиспользуемые или зависшие узлы планов обмена могут накапливать миллионы записей, раздувая таблицы.

Альтернативные решения и риски работы с большими файловыми базами

Проанализируем риски, с которыми можно столкнуться при эксплуатации файловой базы объемом более 7–8 ГБ:

  1. Ограничения выгрузки в `.dt`: штатный механизм выгрузки информационной базы в файл .dt предназначен для переноса конфигурации и данных, но не подходит для роли единственного средства бэкапа. При восстановлении крупных баз из .dt 32-разрядный клиент 1С часто завершает работу с ошибкой нехватки памяти (Out of Memory). Основным надежным способом бэкапа файловой базы является прямое копирование файла 1Cv8.1CD при остановленных службах и сеансах.
  2. Табличные блокировки: в файловом режиме запись любого документа блокирует целые таблицы. При одновременно работе нескольких пользователей это приводит к замедлению системы и постоянным ожиданиям блокировок.
  3. Ограничения файловой системы: убедитесь, что диск, на котором хранится база данных, отформатирован в файловой системе NTFS, ReFS или ext4. Использование устаревшей системы FAT32 не позволит файлу 1Cv8.1CD превысить размер 4 ГБ на уровне операционной системы.

Если база данных стабильно растет и превышает объем 10 ГБ, наиболее правильным инженерным решением является переход на клиент-серверный режим работы (использование сервера 1С:Предприятие и СУБД, например, PostgreSQL), либо проведение процедуры свертки информационной базы с переносом входящих остатков на начало текущего года.

← На главную