Часто системные администраторы и разработчики 1С сталкиваются с проблемой аномального роста размера информационной базы. Особенно это критично для файловых баз (формат .1CD), где размер файла ограничен техническими особенностями файловой системы и самой платформы. В данной статье мы разберем ситуацию на примере конфигурации «Управление торговлей», проанализируем причины роста регистра Обновление ключей доступа и изучим методы оптимизации объема базы.
Прежде чем приступать к удалению данных, нам необходимо точно определить, какие именно таблицы занимают основной объем. Рассмотрим стандартный алгоритм действий:
Tool_1CD для детального изучения внутренних таблиц. Это поможет понять, занимает место сама информация или индексы.Проанализируем ситуацию: если мы видим, что регистр Обновление ключей доступа (или связанные с ним таблицы Ключи доступа) занимает более 40-50% объема базы, значит, проблема кроется в настройках прав доступа на уровне записей (RLS).
Система разграничения прав доступа на уровне записей (Record Level Security — RLS) позволяет ограничить видимость конкретных документов или элементов справочников для определенных пользователей. Для ускорения работы этой системы в современных версиях «1С:Предприятия» используется специальный механизм кэширования прав.
Выясним причину роста: система генерирует специальные «ключи доступа», которые заранее рассчитывают, какой пользователь имеет право видеть тот или иной объект. Эти данные хранятся в соответствующих регистрах. Если в базе часто меняются настройки прав, добавляются новые группы доступа или пересчитываются права для тысяч документов, объем регистра Обновление ключей доступа начинает расти в геометрической прогрессии.
Существует два основных режима работы механизма ограничений. Рассмотрим их подробнее, так как выбор режима напрямую влияет на размер файла .1CD:
Чтобы переключить режим и уменьшить размер базы, выполним следующие шаги:
Важно: После смены режима на стандартный, накопленные ранее ключи в регистре Обновление ключей доступа становятся неактуальными, и их можно (и нужно) очистить.
Простое удаление записей из регистра в 1С не приводит к немедленному уменьшению размера файла на диске. Рассмотрим правильную последовательность действий по очистке:
Во-первых, после переключения режима в интерфейсе, воспользуемся штатной кнопкой «Очистить неактуальные ключи доступа» (если она предусмотрена в вашей версии конфигурации). Если же вы решили очищать регистр программно или через удаление записей, помните, что это лишь помечает место как «свободное» внутри файла базы.
Во-вторых, выполним физическое сжатие. Разберем по шагам работу в Конфигураторе:
.dt).После этой процедуры платформа пересоберет файл базы, удалив из него пустоты, оставшиеся после очистки регистра. Как показывает практика, база может «похудеть» с 18 ГБ до 7-8 ГБ за один цикл такой оптимизации.
Если очистка ключей доступа не дала желаемого результата, проанализируем другие области, которые часто переполняются в типовых решениях (УТ, ERP, КА):
Регистр сведений Хранимые версии объектов (или StoredVersions) сохраняет историю каждого изменения документа. Если версионирование включено для всех документов и срок хранения не ограничен, этот регистр может занимать до 70% всей базы. Проверим настройки в разделе Администрирование -> Общие настройки -> История изменений. Рекомендуется настроить очистку версий старше 6 месяцев.
Посмотрим на регистры, связанные с оценкой производительности (например, Замеры времени). Если включен автоматический сбор статистики, система фиксирует каждое действие пользователя. Для файловой базы это излишняя нагрузка. Эти регистры можно смело очищать в режиме 1С:Предприятие через форму «Оценка производительности».
В современных конфигурациях обмен с государственными информационными системами генерирует огромное количество логов и служебных сообщений. Проанализируем наличие регламентных заданий по очистке этих данных. Часто они бывают выключены, что приводит к накоплению миллионов записей в технических регистрах сведений.
Если пользователи прикрепляют сканы документов или PDF-счета непосредственно в базу, файл .1CD будет расти очень быстро. Разберем способ оптимизации:
Это позволит хранить тяжелые данные вне основного файла .1CD, что сделает базу более стабильной и облегчит процесс создания бэкапов.
Важно помнить, что в файловой базе 1С существует ограничение: любая внутренняя таблица не может превышать 4 ГБ. Если регистр ключей доступа или любой другой объект приблизится к этому порогу, база выдаст критическую ошибку и перестанет работать на запись.
Проанализируем ситуацию в сообщении №10 из темы: «После удаления регистра база стала весит 40 ГБ». Это происходит из-за особенностей работы файловой СУБД 1С. При массовом удалении через Тестирование и исправление или при неудачном прерывании процесса индексы могут перестраиваться некорректно, временно увеличивая файл. В таких случаях помогает только полная выгрузка базы в формат .dt и последующая загрузка в новую пустую папку. При загрузке .dt файл .1CD создается с нуля и содержит только полезные данные без фрагментации.
Подведем итоги. Для эффективного управления размером базы УТ необходимо:
Если даже после всех манипуляций размер базы превышает 15-20 ГБ, настоятельно рекомендуем рассмотреть переход на клиент-серверный вариант работы (SQL), так как это обеспечит надежность данных и снимет ограничения на размер таблиц.