Что делать, если база 1С весит слишком много и как очистить регистр «Обновление ключей доступа»?

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

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

Анализ структуры базы и выявление «пожирателей» места

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

  1. Использование специализированных обработок: В типовых конфигурациях или на ресурсах сообщества можно найти обработки «Размер таблиц базы данных». Они позволяют увидеть размер каждого регистра и справочника в мегабайтах.
  2. Анализ файловой структуры: Если база файловая, можно воспользоваться утилитой Tool_1CD для детального изучения внутренних таблиц. Это поможет понять, занимает место сама информация или индексы.
  3. Типовой отчет: В некоторых редакциях в разделе «Обслуживание» доступен отчет «Статистика данных», который также дает представление о распределении веса по объектам метаданных.

Проанализируем ситуацию: если мы видим, что регистр Обновление ключей доступа (или связанные с ним таблицы Ключи доступа) занимает более 40-50% объема базы, значит, проблема кроется в настройках прав доступа на уровне записей (RLS).

Разбираемся в механизме работы RLS и «Обновления ключей доступа»

Система разграничения прав доступа на уровне записей (Record Level Security — RLS) позволяет ограничить видимость конкретных документов или элементов справочников для определенных пользователей. Для ускорения работы этой системы в современных версиях «1С:Предприятия» используется специальный механизм кэширования прав.

Выясним причину роста: система генерирует специальные «ключи доступа», которые заранее рассчитывают, какой пользователь имеет право видеть тот или иной объект. Эти данные хранятся в соответствующих регистрах. Если в базе часто меняются настройки прав, добавляются новые группы доступа или пересчитываются права для тысяч документов, объем регистра Обновление ключей доступа начинает расти в геометрической прогрессии.

Смена режима работы ограничений прав доступа

Существует два основных режима работы механизма ограничений. Рассмотрим их подробнее, так как выбор режима напрямую влияет на размер файла .1CD:

Чтобы переключить режим и уменьшить размер базы, выполним следующие шаги:

  1. Перейдем в раздел НСИ и администрирование -> Настройки пользователей и прав.
  2. Найдем подраздел Управление доступом.
  3. Изменим вариант работы с «Производительного» на «Стандартный».

Важно: После смены режима на стандартный, накопленные ранее ключи в регистре Обновление ключей доступа становятся неактуальными, и их можно (и нужно) очистить.

Очистка регистров и сжатие базы

Простое удаление записей из регистра в 1С не приводит к немедленному уменьшению размера файла на диске. Рассмотрим правильную последовательность действий по очистке:

Во-первых, после переключения режима в интерфейсе, воспользуемся штатной кнопкой «Очистить неактуальные ключи доступа» (если она предусмотрена в вашей версии конфигурации). Если же вы решили очищать регистр программно или через удаление записей, помните, что это лишь помечает место как «свободное» внутри файла базы.

Во-вторых, выполним физическое сжатие. Разберем по шагам работу в Конфигураторе:

  1. Запустим 1С в режиме Конфигуратор.
  2. Обязательно создадим резервную копию (выгрузка .dt).
  3. Перейдем в меню Администрирование -> Тестирование и исправление.
  4. Выберем пункт Сжатие таблиц информационной базы.
  5. Нажмем «Выполнить».

После этой процедуры платформа пересоберет файл базы, удалив из него пустоты, оставшиеся после очистки регистра. Как показывает практика, база может «похудеть» с 18 ГБ до 7-8 ГБ за один цикл такой оптимизации.

Другие скрытые причины роста базы

Если очистка ключей доступа не дала желаемого результата, проанализируем другие области, которые часто переполняются в типовых решениях (УТ, ERP, КА):

Версионирование объектов

Регистр сведений Хранимые версии объектов (или StoredVersions) сохраняет историю каждого изменения документа. Если версионирование включено для всех документов и срок хранения не ограничен, этот регистр может занимать до 70% всей базы. Проверим настройки в разделе Администрирование -> Общие настройки -> История изменений. Рекомендуется настроить очистку версий старше 6 месяцев.

Замеры времени и логирование

Посмотрим на регистры, связанные с оценкой производительности (например, Замеры времени). Если включен автоматический сбор статистики, система фиксирует каждое действие пользователя. Для файловой базы это излишняя нагрузка. Эти регистры можно смело очищать в режиме 1С:Предприятие через форму «Оценка производительности».

Данные ВетИС и Честный Знак

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

Присоединенные файлы

Если пользователи прикрепляют сканы документов или PDF-счета непосредственно в базу, файл .1CD будет расти очень быстро. Разберем способ оптимизации:

  1. Перейдем в Администрирование -> Настройки работы с файлами.
  2. Настроим Хранение файлов в томах на диске.
  3. Создадим том (папку на сервере или компьютере).
  4. Запустим обработку по переносу уже существующих файлов из базы в тома.

Это позволит хранить тяжелые данные вне основного файла .1CD, что сделает базу более стабильной и облегчит процесс создания бэкапов.

Технический предел файлового режима

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

Проанализируем ситуацию в сообщении №10 из темы: «После удаления регистра база стала весит 40 ГБ». Это происходит из-за особенностей работы файловой СУБД 1С. При массовом удалении через Тестирование и исправление или при неудачном прерывании процесса индексы могут перестраиваться некорректно, временно увеличивая файл. В таких случаях помогает только полная выгрузка базы в формат .dt и последующая загрузка в новую пустую папку. При загрузке .dt файл .1CD создается с нуля и содержит только полезные данные без фрагментации.

Заключение

Подведем итоги. Для эффективного управления размером базы УТ необходимо:

Если даже после всех манипуляций размер базы превышает 15-20 ГБ, настоятельно рекомендуем рассмотреть переход на клиент-серверный вариант работы (SQL), так как это обеспечит надежность данных и снимет ограничения на размер таблиц.

← На главную