Чистка и ускорение базы 1С:Розница: что удалять, что сжимать и в каком порядке

· 9 мин

Содержание

Чтобы почистить 1С:Розница и ускорить работу, обычно хватает четырёх действий: сократить журнал регистрации, удалить старые версии объектов (историю изменений), сбросить кэш клиента и сжать таблицы базы через Конфигуратор → Администрирование → Тестирование и исправление. Для клиент-серверной базы последний шаг заменяют обслуживанием СУБД: перестройкой индексов и обновлением статистики.

Какой способ даст больше, зависит от симптома. Если «тормозит» только один кассовый компьютер, виноват кэш. Если раздулся сам файл 1Cv8.1CD или каталог базы весит десятки гигабайт, ищите причину в журнале регистрации, истории версий и регистрации изменений для обмена.

СпособКогда помогаетНужен монопольный доступРиск
Сокращение журнала регистрацииКаталог 1Cv8Log весит гигабайтыНетТеряется история действий пользователей
Удаление устаревших версий объектовВключена история изменений, база растёт без причиныНетНельзя посмотреть старые версии документов
Очистка кэша клиентаМедленный запуск, ошибки форм на одном ПКНет, но 1С на этом ПК закрытьМинимальный
Тестирование и исправление со сжатиемФайловая база, большой 1Cv8.1CDДаСредний, только с резервной копией
Выгрузка и загрузка .dtФайловая база после массовых удаленийДаСредний, только с резервной копией
Обслуживание индексов СУБДКлиент-серверная база, медленные отчётыНет (для онлайн-перестройки)Нагрузка на сервер во время работ

Подготовка к чистке базы 1С Розница

Любая чистка меняет данные. Поэтому сначала копия, потом всё остальное.

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

Порядок подготовки:

  1. Договоритесь о времени. Для монопольных операций всем пользователям, включая кассы, нужно выйти из базы. В магазине это время после закрытия смены.
  2. Закройте кассовые смены на всех рабочих местах. Незакрытая смена после восстановления из копии создаёт путаницу с чеками.
  3. Если Розница обменивается данными с центральной базой (например, с 1С:Управление торговлей), выполните обмен до начала работ. Так в регистрации изменений не останется «хвоста».
  4. Сделайте выгрузку: Конфигуратор → Администрирование → Выгрузить информационную базу. Получится файл .dt.
  5. Для файловой базы дополнительно скопируйте весь каталог базы целиком, пока 1С закрыта.
  6. Запишите исходные цифры: размер файла 1Cv8.1CD, размер каталога 1Cv8Log, время открытия типового отчёта. Без них не поймёте, что именно помогло.

Выгрузку .dt удобно проверить: загрузите её в пустую тестовую базу. Если загрузка прошла без ошибок, копия рабочая.

Перед чисткой базы
Выполнено: 0 / 5

Как удалить историю изменений и очистить журнал регистрации

Это два разных механизма, и путают их часто.

📒 Журнал регистрации — платформенный лог: кто входил, что записывал, какие были ошибки. Хранится в подкаталоге 1Cv8Log рядом с файлом базы (для серверной базы — в каталоге кластера на сервере 1С).

📂 История изменений (версионирование объектов) — механизм конфигурации. Он сохраняет копию документа или справочника при каждой записи. Данные лежат внутри самой базы, поэтому раздувают её.

Сокращение журнала регистрации

Через Конфигуратор:

  1. Откройте Администрирование → Журнал регистрации.
  2. Нажмите кнопку сокращения журнала (Сократить…).
  3. Укажите дату: все записи раньше неё удалятся. Можно сохранить удаляемые записи в отдельный файл — на случай разбора старого инцидента.

В пользовательском режиме журнал смотрят в разделе Администрирование → Обслуживание. Там его удобно фильтровать, но сокращать надёжнее через Конфигуратор.

Чтобы журнал не рос снова, настройте его: Конфигуратор → Администрирование → Настройка журнала регистрации.

  • 🔹 Уровень регистрации. Для магазина обычно хватает уровня «Ошибки» или «Предупреждения». Уровень «Регистрировать всё» на кассе с сотнями чеков в день быстро даёт гигабайты.
  • 🔹 Разделение по периодам. Включите разделение журнала (по дням или месяцам). Тогда старые файлы можно просто архивировать.

Уровень «Не регистрировать» не выбирайте. Без журнала потом не выяснить, кто удалил чек или изменил цену.

Удаление старых версий объектов

В Рознице, как и в других конфигурациях на БСП, история изменений включается в Администрирование → Общие настройки. Там же задаётся, какие объекты версионировать и сколько хранить версии.

Что сделать:

  1. Проверьте, для каких объектов включено хранение версий. Версионирование чеков ККМ почти никогда не нужно, а именно чеков в Рознице больше всего.
  2. Задайте срок хранения устаревших версий (например, 3 месяца).
  3. Выполните очистку устаревших версий командой в той же группе настроек или дождитесь регламентного задания.

После удаления версий место внутри файла освобождается, но сам файл 1Cv8.1CD не уменьшится. Для этого нужен шаг со сжатием таблиц.

Как почистить кэш 1С и временные файлы

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

Перед удалением кэша полностью закройте 1С на этом компьютере, иначе часть файлов останется заблокированной.

Способ 1. Параметр запуска

  1. В окне запуска выберите базу и нажмите Изменить.
  2. Пройдите до последней страницы мастера.
  3. В поле дополнительных параметров запуска впишите /ClearCache.
  4. Запустите базу один раз, затем удалите параметр, иначе кэш будет сбрасываться при каждом входе и запуск станет медленнее.

Способ 2. Удаление каталогов вручную

Кэш лежит в двух местах профиля пользователя Windows:

%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8

Внутри — папки с длинными именами вида a1b2c3d4-... (идентификаторы баз). Их можно удалить. Не трогайте файлы ibases.v8i и 1cestart.cfg в %APPDATA%\1C\1CEStart: в них список баз.

Пакетный файл для кассового компьютера:

@echo off
rem Закройте 1С перед запуском
for /d %%D in ("%APPDATA%\1C\1cv8\*-*") do rd /s /q "%%D"
for /d %%D in ("%LOCALAPPDATA%\1C\1cv8\*-*") do rd /s /q "%%D"
del /q /f "%TEMP%\*.*" 2>nul
echo Кэш 1С очищен

Маска *-* выбирает только папки с идентификаторами баз. Служебные файлы в корне каталога останутся на месте.

Временные файлы на сервере

Для клиент-серверной Розницы есть ещё серверный кэш в каталоге кластера (папки вида snccntx…). Его чистят только при остановленной службе агента сервера 1С.

Остановка службы сервера 1С обрывает сеансы всех пользователей, включая кассы. Делайте это вне рабочего времени магазина.

Тестирование, исправление и сжатие таблиц базы

Для файловой базы это главный инструмент, который реально уменьшает размер. Нужен монопольный доступ.

  1. Откройте Конфигуратор → Администрирование → Тестирование и исправление.
  2. Отметьте нужные проверки:
    • Реиндексация таблиц информационной базы — перестраивает индексы, ускоряет поиск и отборы;
    • Проверка логической целостности — находит повреждённые записи;
    • Пересчёт итогов — помогает, если остатки товаров в отчётах «плывут»;
    • Сжатие таблиц информационной базы — убирает пустое место после удалений.
  3. Выберите режим «Тестирование и исправление», а не только «Тестирование».
  4. Для битых ссылок выберите вариант «Не изменять» при первом проходе. Сначала посмотрите отчёт о проблемах, потом решайте, создавать объекты или удалять ссылки.
  5. Нажмите Выполнить. На базе 10–20 ГБ это может занять от получаса до нескольких часов.

Приём: выгрузка и загрузка .dt

Если после массового удаления документов файл всё равно большой, выгрузите базу в .dt и загрузите обратно (Администрирование → Загрузить информационную базу). Платформа соберёт файл заново, без пустых страниц. Часто размер уменьшается заметнее, чем после сжатия.

Утилита chdbfl.exe

В каталоге платформы (C:\Program Files\1cv8\<версия>\bin) лежит chdbfl.exe. Она проверяет физическую целостность файла 1Cv8.1CD, когда база не открывается. Для регулярной чистки она не нужна, это средство на случай аварии.

Обслуживание индексов и сжатие в MS SQL и PostgreSQL

Если Розница работает в клиент-серверном варианте (обычно это центральная база сети магазинов), команды Конфигуратора неэффективны. Работает регулярное обслуживание самой СУБД.

ОперацияMS SQL ServerPostgreSQL
Обновление статистикиUPDATE STATISTICS или задача плана обслуживанияANALYZE
Перестройка индексовALTER INDEX ... REBUILD / REORGANIZEREINDEX
Возврат пустого местаDBCC SHRINKFILE (осторожно)VACUUM
ЧастотаСтатистика — ежедневно, индексы — еженедельноANALYZE и VACUUM — ежедневно

Пример для MS SQL: обновление статистики по всей базе.

USE [roznica];
EXEC sp_updatestats;

Для PostgreSQL:

VACUUM ANALYZE;

Что учесть:

  • 🔸 Модель восстановления. Если в MS SQL выбрана модель Full, а резервное копирование журнала транзакций не настроено, файл .ldf растёт бесконечно. Либо настройте бэкап журнала, либо переведите базу на модель Simple, если точечное восстановление по времени не требуется.
  • 🔸 Сжатие файлов. SHRINKFILE фрагментирует индексы. После него обязательно перестройте индексы. Регулярно сжимать базу не нужно.
  • 🔸 Окно работ. Перестройка индексов нагружает диск. Запускайте её ночью, когда обмен с магазинами не идёт.

Встроенные обработки обслуживания в 1С:Розница

Часть мусора видна только изнутри конфигурации. В разделе Администрирование → Обслуживание собраны штатные инструменты.

Удаление помеченных объектов

Помеченные на удаление документы и товары продолжают лежать в базе. Команда Удаление помеченных объектов проверяет ссылки и удаляет то, на что ничто не ссылается. Если удаление блокируется, обработка покажет, какие объекты мешают.

Управление итогами

Для регистров с большим числом движений (остатки товаров, денежные средства) помогает установка периода рассчитанных итогов и пересчёт. Это ускоряет отчёты об остатках, но на объём базы почти не влияет.

Регистрация изменений для обмена

Частая скрытая причина роста базы в Рознице. Каждое изменение регистрируется для отправки в центральную базу или другие магазины. Если узел обмена больше не используется (магазин закрыт, касса заменена), а узел остался, изменения копятся для него месяцами.

Что сделать:

  1. Найдите в настройках синхронизации данных список узлов обмена.
  2. Удалите узлы, с которыми обмен больше не ведётся. Вместе с узлом удалится и накопленная для него регистрация.
  3. Для действующих узлов убедитесь, что обмен проходит без ошибок: ошибка обмена означает, что регистрация не очищается.

Регламентные задания

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

Диагностика: выберите симптом

Профилактика: как не дать базе Розницы снова разрастись

Разовая чистка без настройки даёт эффект на пару месяцев. Ниже — что настроить один раз.

  • ✅ Журнал регистрации: уровень «Ошибки» или «Предупреждения», разделение по периодам, архивирование старых файлов раз в квартал.
  • ✅ История изменений: только для справочников и документов, где она действительно нужна (цены, договоры), с ограниченным сроком хранения.
  • ✅ Обмен: удалять узлы закрытых магазинов и заменённых касс сразу, а не «потом».
  • ✅ Помеченные объекты: удалять раз в месяц, после закрытия периода.
  • ✅ СУБД: план обслуживания со статистикой каждую ночь и перестройкой индексов раз в неделю.
  • ✅ Файловая база: сжатие таблиц раз в квартал или после крупных удалений.
  • ✅ Диск: файловую базу держать на SSD. Перенос с HDD на SSD часто ускоряет работу сильнее, чем любая чистка.

Если файловая база Розницы перевалила за 20–30 ГБ и в ней работают несколько касс одновременно, чистка лишь отсрочит проблему. Пора думать о переходе на клиент-серверный вариант с PostgreSQL или MS SQL.

Частые вопросы о чистке 1С Розница

Можно ли просто удалить папку 1Cv8Log?
Технически да, если база закрыта: платформа создаст журнал заново. Но вы потеряете всю историю действий. Надёжнее сократить журнал через Конфигуратор с сохранением старых записей в файл.
Почему после удаления документов размер базы не изменился?
Платформа помечает освободившееся место как свободное, но не возвращает его диску. Уменьшить файл помогает сжатие таблиц или выгрузка и загрузка .dt.
Удаляются ли продажи при сокращении журнала регистрации?
Нет. Журнал хранит только записи о действиях пользователей. Чеки, отчёты о розничных продажах и остатки остаются на месте.
Нужно ли чистить кэш после каждого обновления Розницы?
Не обязательно. Сбрасывайте его, если после обновления появились ошибки форм, зависания при запуске или старый интерфейс на отдельных компьютерах.
Можно ли чистить базу, пока кассы работают?
Сокращение журнала, очистку версий и чистку кэша на отдельном ПК — можно. Тестирование и исправление, сжатие таблиц, загрузку .dt — только когда все пользователи вышли.