Чистка информационной базы 1С от мусора, дублей и кэша
Содержание
Пользователи жалуются: «1С тормозит, открытие документа занимает полминуты, список контрагентов листается рывками». Первая мысль, что виновата база. Часто так и есть. За несколько лет в ней копятся помеченные на удаление объекты, дубли справочников, битые ссылки, гигабайты журнала регистрации. Плюс на каждом компьютере лежит клиентский кэш, который тоже умеет ломать работу.
Чтобы почистить базу данных 1С, действуйте по порядку: сделайте копию, сбросьте кэш, запустите тестирование и исправление, удалите помеченное и найдите дубли, затем уберите лишнее из журналов и оптимизируйте СУБД. Ниже каждый шаг с путями и предупреждениями, что можно делать на рабочей базе, а что только на копии.
Что сделать до любой очистки
Чистка меняет данные. Часть операций необратима, например удаление объектов и сжатие таблиц. Поэтому начинайте с подготовки.
Резервная копия и тестовая база
- Завершите работу всех пользователей. Список сеансов смотрите в разделе администрирования или в консоли кластера серверов.
- Выгрузите базу в файл
.dt: Конфигуратор → меню «Администрирование» → «Выгрузить информационную базу». - Проверьте, что файл открывается: разверните его в отдельную пустую базу.
- Рабочие эксперименты (свёртка, массовое удаление) сначала прогоните на этой копии.
Файловую базу достаточно скопировать целиком: каталог с файлом 1Cv8.1CD, пока в ней никто не работает
. Для серверной базы нужна выгрузка .dt или резервная копия средствами СУБД.
Копия, лежащая на том же диске и в той же папке, что и рабочая база, копией не считается. Диск выйдет из строя, пропадут обе.
Замерьте исходное состояние
Запишите размер файла базы (или размер БД на сервере), размер каталога журнала регистрации и время, за которое открывается тяжёлая форма, например список документов за год. После чистки вы увидите, что реально дал каждый шаг.
Очистка клиентского кэша 1С и временных файлов
Кэш лежит на компьютере пользователя, а не в базе. Он хранит списки баз, настройки форм, копии конфигураций и расширений, полученные с сервера. Если после обновления форма выглядит старой, пропали новые поля или всплыла «странная» ошибка только у одного пользователя, начните с кэша.
Быстрый способ: ключ командной строки
В свойствах ярлыка запуска добавьте в строку параметр /ClearCache. Один запуск с ним очищает кэш информационной базы. Потом ключ можно убрать.
Ручное удаление папок
Закройте все окна 1С, затем удалите содержимое каталогов:
%APPDATA%\1C\1cv8(локальные настройки и списки баз);%LOCALAPPDATA%\1C\1cv8(кэш данных);%LOCALAPPDATA%\1C\1cv8\ExtCompT(кэш расширений, если он есть).
Внутри лежат папки с именами вида 8a0b0d3e-.... Это идентификаторы баз. Можно удалить только папки нужной базы, но проще очистить всё: 1С создаст их заново при следующем входе.
Файл ibases.v8i в %APPDATA%\1C\1CEstart хранит список баз в окне запуска. Его не трогайте, иначе придётся добавлять базы заново.
Ещё в %TEMP% копятся файлы с расширением .tmp и папки, созданные 1С при печати и выгрузке. Удаляйте их вместе с остальным мусором, когда все окна закрыты.
Тестирование и исправление информационной базы
Это встроенный механизм платформы. Он проверяет структуру файла базы и приводит её в порядок. Его можно запускать регулярно, например раз в квартал.
Запуск: Конфигуратор → «Администрирование» → «Тестирование и исправление информационной базы». База должна быть открыта в монопольном режиме. Если пользователи ещё в базе, Конфигуратор откажется запускаться.
Какие галочки ставить
| Действие | Что делает | Когда нужно |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Тормозит поиск и открытие списков |
| Проверка логической целостности | Находит нарушения структуры данных | После сбоев питания и «падений» |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | Появились «Объект не найден» и пустые значения в полях |
| Пересчёт итогов | Заново считает регистры накопления и бухгалтерии | Отчёты показывают остатки, не сходящиеся с документами |
| Сжатие таблиц | Уплотняет данные | После массового удаления, для уменьшения файла |
Для режима «Тестирование и исправление» выбирайте исправление, а не только проверку, когда есть свежая копия. Если проверка показала много ошибок, не запускайте исправление вслепую. Сначала сохраните отчёт и скопируйте базу ещё раз.
Что делать с битыми ссылками
В блоке ссылочной целостности платформа предлагает три варианта: ничего не менять, создавать недостающие объекты или очищать ссылки. Обычно подходит очистка: нерабочие ссылки заменяются пустыми значениями.
Если «битая» ссылка появилась в документе, который уже проведён и входит в сданную отчётность, после очистки проверьте этот документ. Пустое поле может изменить результат проведения.
Удаление помеченных объектов и дублей
Здесь чистка идёт на уровне данных, которыми пользуются люди. Это самый заметный шаг, но и самый опасный.
Как удалять помеченное на удаление
Пометка на удаление ничего не удаляет физически. Объект остаётся в базе и участвует в связях. Реальное удаление делается отдельной обработкой.
- Откройте раздел «Администрирование» → «Обслуживание» → «Удаление помеченных объектов» (в разных конфигурациях раздел может называться чуть иначе, ищите по слову «помеченных» в поиске по меню).
- Выберите режим: «Полное удаление» или «Выборочное».
- Нажмите «Удалить» и дождитесь итога.
Программа сама проверяет, ссылается ли на объект что-то ещё. Те, на которые есть ссылки, останутся, а система покажет, где они используются. Это защита от потери данных, а не ошибка.
Что можно разобрать вручную: старые документы с пометкой, ненужные номенклатурные группы, контрагентов из прошлых лет без движений.
Поиск и слияние дублей
Типичная картина: «ООО Ромашка» трижды, один контрагент с ИНН и два без. В регистре расчётов остатки разбросаны по всем трём. Отчёты врут, сверки не сходятся.
Обработка поиска дублей есть в большинстве типовых конфигураций на базе БСП. Найти её можно по поиску в меню по слову «дубли» («Администрирование» → «Обслуживание» → «Поиск и удаление дублей»).
Порядок работы:
- Выберите справочник: контрагенты, номенклатура, физические лица.
- Задайте правило поиска: для контрагентов это ИНН и КПП, для номенклатуры наименование и артикул.
- Просмотрите группы найденных дублей. Отметьте, какой элемент оставить как основной.
- Запустите замену: программа переставит ссылки во всех документах на основной элемент и пометит остальные на удаление.
- После замены отдельно запустите удаление помеченных объектов.
Замена ссылок необратима. Делайте её только на базе, у которой есть свежая копия.
Если дубли одного контрагента имеют разные банковские счета, договоры и КПП, не сливайте их автоматически. Проверьте сначала, не относятся ли они к разным обособленным подразделениям или филиалам.
Очистка журнала регистрации и таблиц регистрации изменений
Журнал регистрации хранит записи о действиях пользователей и системных событиях. Для файловой базы он лежит в подкаталоге 1Cv8Log рядом с базой, для серверной в каталоге кластера. За несколько лет легко набегает несколько гигабайт, а вместе с ним растёт нагрузка на диск.
Журнал регистрации
Пути:
- «Администрирование» → «Поддержка и обслуживание» → «Журнал регистрации» (через интерфейс, если такая настройка включена в конфигурации);
- Конфигуратор → «Администрирование» → «Журнал регистрации» → кнопка «Сократить» в окне настройки.
В диалоге сокращения указывают дату: записи старше неё удаляются. Для типичной организации достаточно хранить год-два.
Чтобы журнал не рос бесконтрольно, в параметрах журнала задайте период разделения (месяц) и включите автоматическое сокращение. Тогда старые данные не накапливаются.
Регистрация изменений для обменов
Если база участвует в обмене с другой (РИБ, обмен с «Зарплата и кадры», обмен с розницей), 1С хранит записи о каждом изменённом объекте, пока он не выгружен. Если обмен настроен, но давно не запускался, таблица регистрации изменений разрастается.
Что делать:
- Откройте план обмена в разделе настройки синхронизации данных.
- Посмотрите, у каких узлов накопились необработанные изменения.
- Для живых узлов запустите обмен и убедитесь, что регистрация очистилась.
- Для мёртвых узлов (старой базы, которой уже не пользуются) отключите или удалите узел обмена. Вместе с ним уйдёт и регистрация изменений.
Не удаляйте узел плана обмена, пока не убедитесь, что он действительно никому не нужен. Восстановить настройки обмена непросто.
Регламентные операции и специальные обработки
Помимо встроенных механизмов, в типовых конфигурациях есть регламентные задания: они выполняются автоматически в фоновом режиме. Проверьте, что они не отключены.
На что смотреть
- Пересчёт итогов регистров накопления. Если он давно не запускался, отчёты строятся медленнее.
- Обновление индекса полнотекстового поиска . Работает фоном, но на слабом сервере съедает ресурсы: настройте расписание на ночь.
- Очистка устаревших данных в регистрах сведений («Свёртка» версий объектов, история изменений).
Путь для просмотра: «Администрирование» → «Регламентные и фоновые задания». Откройте список и посмотрите на столбцы «Последний запуск» и «Состояние». Если задание завершается ошибкой, причина видна в карточке.
Версионирование объектов
Включённое версионирование хранит каждую версию каждого документа. Это полезно при контроле правок, но база растёт. В настройках версионирования можно ограничить срок хранения версий и очистить накопленные.
Свёртка базы
Свёртка (сворачивание) удаляет старые движения и заменяет их остатками. Она используется, когда базе несколько лет и размер мешает работать. Это тяжёлая операция, её делают только на копии и после согласования с главным бухгалтером. Типовую обработку можно найти в поддерживаемой конфигурации, а ИТС описывает порядок отдельно по каждой программе. В обычной ситуации до неё не доходит.
Оптимизация СУБД после очистки данных
Удаление записей само по себе не уменьшает размер файла базы. Освободившееся место остаётся внутри и используется для новых данных. Чтобы база «похудела», нужны дополнительные действия.
Файловая база
- Сделайте выгрузку в
.dt(Конфигуратор → «Администрирование» → «Выгрузить информационную базу»). - Создайте новую пустую базу.
- Загрузите в неё
.dt. - Сравните размеры: нередко новая база меньше на 20-40 процентов, особенно если до этого массово удаляли данные.
Выгрузка и загрузка заодно перестраивают индексы и убирают фрагментацию.
Клиент-серверная база на MS SQL
Работы выполняет администратор СУБД. Типовой набор:
- план обслуживания с еженедельной перестройкой индексов;
- обновление статистики после массовых изменений;
- резервное копирование журнала транзакций, иначе он растёт без остановки;
- сжатие файлов только в разовых случаях, постоянное сжатие вредит производительности.
В PostgreSQL аналог: регулярный VACUUM и ANALYZE, при тяжёлом раздутии таблиц VACUUM FULL в окно без пользователей.
Настроить автоматическое обслуживание лучше раз и навсегда, чем вспоминать о нём при каждом замедлении. Тогда ручная чистка потребуется не чаще раза в год.
Что проверить после очистки
Частые вопросы
Можно ли чистить базу, когда в ней работают пользователи?
Сколько времени займёт чистка?
.dt на таком объёме обычно занимает 1-3 часа. Серверная база на мощном железе справляется быстрее.Почему после удаления помеченных объектов размер базы не уменьшился?
.dt либо сжатие таблиц.Безопасно ли удалять каталог 1Cv8Log?
Как часто нужно чистить базу?
Что делать, если база не открывается после чистки?
.dt.