Администрирование · 8 мин
Как узнать объем базы 1С: все рабочие способы
Как узнать размер базы 1С: проверка файловой базы 1Cv8.1CD, запросы для SQL Server и PostgreSQL, оценка через конфигуратор и типичные ошибки.
Объем информационной базы 1С нужно знать при планировании дискового пространства, выборе тарифа хостинга, подготовке к миграции или диагностике замедления работы. Способ проверки зависит от того, как развернута база: в файловом варианте достаточно посмотреть размер одного файла, а в клиент-серверном — придется смотреть данные на стороне СУБД.
Важно понимать, что «размер базы» — не однозначная величина. Размер файла на диске, объем фактических данных, место с учетом журнала транзакций и размер выгрузки в dt — это разные цифры, которые могут отличаться в разы. Ниже разобрано, как получить каждое из этих значений и как интерпретировать результат.
Определяем тип базы: файловая или клиент-серверная
Прежде чем измерять объем, нужно понять, где физически хранятся данные. Откройте список информационных баз в окне запуска 1С, выделите нужную базу и нажмите «Изменить». На втором шаге мастера будет указан тип расположения: «На данном компьютере или на компьютере в локальной сети» — файловый вариант, «На сервере 1С:Предприятия» — клиент-серверный.
Для файловой базы в свойствах подключения указан путь к каталогу, для серверной — имя сервера и имя базы в кластере. Если база опубликована на веб-сервере и вы подключаетесь по тонкому клиенту через HTTP, за веб-сервером почти всегда скрывается серверная СУБД, и объем придется смотреть у администратора сервера.
Как выбрать способ проверки
Как узнать размер файловой базы
Файловая база хранится в одном основном файле — 1Cv8.1CD. Откройте каталог базы в проводнике Windows, найдите этот файл и посмотрите его размер в свойствах (правый клик → «Свойства»). Это и есть объем базы на диске, включая служебные структуры и свободное место внутри файла.
Учтите, что в каталоге лежат и другие файлы: журнал регистрации (1Cv8.lgd), временные и служебные файлы. Журнал регистрации при длительной работе без сокращения может занимать заметный объем — иногда сопоставимо с самой базой. Если считаете полное место, занимаемое базой, смотрите размер всего каталога.
Если файловая база приблизилась к нескольким гигабайтам, это повод задуматься о переходе на клиент-серверный вариант: файловый режим имеет ограничения по одновременной работе и устойчивости к сбоям, а большой монолитный файл сложнее резервировать.
Как узнать объем базы в MS SQL Server
В клиент-серверном варианте данные лежат в базе СУБД, и файл 1Cv8.1CD отсутствует. Самый простой способ для MS SQL Server — открыть SQL Server Management Studio (SSMS), подключиться к серверу, найти нужную базу в списке и посмотреть ее свойства: на вкладке General указан размер. Точнее — отчет «Disk Usage by Table», который показывает объем по таблицам.
Альтернатива — выполнить запрос. Системная процедура sp_spaceused возвращает общий размер базы и объем незанятого места, а функции представления позволяют посчитать данные отдельно от индексов. Запрос выполняется в контексте нужной базы.
USE [ИмяБазы];
GO
EXEC sp_spaceused;
GO
-- Размер файлов данных и журнала:
SELECT name, size * 8 / 1024 AS size_mb, type_desc
FROM sys.database_files;Обратите внимание на строку журнала транзакций (тип LOG): при полной модели восстановления без регулярного бэкапа журнала он может вырасти до размеров, превышающих сами данные. Если журнал аномально большой, это отдельная задача администрирования, а не признак «тяжелой» базы.
Как узнать объем базы в PostgreSQL
Для PostgreSQL удобнее всего использовать функцию pg_database_size(), которая возвращает полный размер базы на диске. Дополнительно функция pg_total_relation_size() покажет объем конкретной таблицы с индексами — это полезно, когда нужно найти самые тяжелые таблицы (обычно это регистры накопления и сведений).
-- Общий размер базы:
SELECT pg_size_pretty(pg_database_size('имя_базы'));
-- Топ-10 таблиц по объему:
SELECT relname, pg_size_pretty(pg_total_relation_size(relid))
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC
LIMIT 10;Те же сведения доступны в графическом клиенте pgAdmin: в свойствах базы на вкладке статистики отображается размер. Помните, что в PostgreSQL после массового удаления данных место на диске не возвращается автоматически — для физического освобождения требуется VACUUM FULL или аналогичные операции, которые блокируют таблицы.
Оценка объема через конфигуратор и выгрузку
Если доступа к СУБД нет, грубо оценить объем можно через выгрузку информационной базы: Конфигуратор → Администрирование → Выгрузить информационную базу. Полученный файл .dt обычно заметно меньше реальной базы, потому что данные в нем сжаты, а индексы и журналы СУБД не входят. Ориентировочно dt может составлять от трети до двух третей объема данных, но точной пропорции нет.
Другой косвенный признак — технологический журнал и статистика в консоли кластера сервера 1С, но полного размера базы они не показывают. Для точных цифр в клиент-серверном варианте без доступа к СУБД не обойтись.
Что делать, если база занимает слишком много места
Если объем оказался критичным, действия зависят от источника роста. Проверьте сначала журнал регистрации и журнал транзакций — их сокращение часто дает быстрый эффект без риска для данных. Затем проанализируйте самые большие таблицы: типичные кандидаты — регистры, версии объектов, хранилища вложений и история изменений.
Для сжатия файловой базы используйте «Тестирование и исправление» с отмеченной опцией сжатия таблиц, предварительно сделав резервную копию и убедившись, что в базе никто не работает. Для серверной базы сжатие (shrink) в SQL Server выполняйте осознанно: частое сжатие фрагментирует индексы и ухудшает производительность.
Как проверить результат
После любых операций по сокращению объема перепроверьте цифры тем же способом, которым измеряли изначально: размер файла, sp_spaceused или pg_database_size. Сравнение «до/после» должно делаться одним методом — иначе вы сравниваете разные сущности.
Как проверить результат
Объем уменьшился, база открывается, данные на месте
Размер не изменился или база не открывается — откатывайтесь на копию
Доля журнала умеренная относительно данных
LOG-файл больше файла данных — нужна настройка бэкапа журнала
Остается запас под рост базы и временные файлы
Диск почти заполнен — риск остановки работы и порчи данных
Что важно запомнить
Файловую базу измеряем по 1Cv8.1CD, серверную — средствами СУБД (sp_spaceused, pg_database_size). Размер выгрузки dt не равен размеру базы. Учитывайте журналы регистрации и транзакций, а перед сжатием всегда делайте резервную копию.
Частые вопросы
Почему размер выгрузки .dt сильно меньше размера базы?
Файл выгрузки содержит данные в сжатом виде и не включает индексы, журналы СУБД и свободное место внутри файлов базы. Поэтому .dt — это нижняя оценка, а не точный объем.
Удалили много документов, а база не уменьшилась. Это нормально?
Да. Удаленные данные оставляют свободное место внутри файлов базы, которое будет переиспользовано новыми записями. Чтобы вернуть место операционной системе, нужно сжатие таблиц (для файловой базы) или shrink/vacuum на стороне СУБД.
Можно ли узнать размер базы, не имея доступа к SQL-серверу?
Точно — нет. Косвенно можно оценить объем по размеру выгрузки .dt или запросить отчет у администратора СУБД. Платформа 1С сама по себе полный размер серверной базы не показывает.
Какая таблица обычно занимает больше всего места?
Чаще всего это регистры накопления и сведений с большим числом записей, а также таблицы хранения версий объектов и вложений. Найти их помогает отчет Disk Usage by Table в SSMS или запрос по pg_total_relation_size в PostgreSQL.
Опасно ли смотреть размер базы во время работы пользователей?
Нет, просмотр размера файла, отчеты SSMS и запросы вроде sp_spaceused или pg_database_size безопасны и не блокируют работу. Блокирующими являются только операции сжатия и тестирования с исправлением.
Как часто нужно контролировать объем базы?
Для активно растущих баз разумно отслеживать объем регулярно — например, раз в месяц, а также настраивать мониторинг свободного места на дисках сервера. Резкий скачок роста — повод разобраться в причине до исчерпания диска.